JSP 九个隐含JSP对象http://www.cnblogs.com/bmbm/archive/2012/01/17/2342238.html
www.cnblogs.com/bmbm/archive/2012/01/17/2342238.html
一、request对象
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例
request常用方法方 法 说 明
1 object getAttribute(String name) 返回指定属性的属性值
(2 String getCharacterEncoding() 返回字符编码方式)
3 getRequestDispatcher转发request.getRequestDispatcher("t1.jsp").forward(request, response);
4 String getParameter(String name) 返回name指定参数的参数值
5 String[] getParameterValues(String name) 返回包含参数name的所有值的数组
(6 String getProtocol() 返回请求用的协议类型及版本号)
(7 String getServerName() 返回接受请求的服务器主机名)
(8 int getServerPort() 返回服务器接受此请求所用的端口号)
9 String getRemoteAddr() 返回发送此请求的客户端IP地址
(10 String getRemoteHost() 返回发送此请求的客户端主机名)
11 void setAttribute(String key,Object obj) 设置属性的属性值
(12 String getContentType() 得到请求体的MIME类型 )
欢迎:<%=request.getAttribute("name") %> 请求方式:<%=request.getMethod()%>
请求的资源:<%=request.getRequestURI()%>
请求用的协议:<%=request.getProtocol()%>
请求的文件名:<%=request.getServletPath()%>
请求的服务器的IP:<%=request.getServerName()%>
请求服务器的端口:<%=request.getServerPort()%>
客户端IP地址:<%=request.getRemoteAddr()%>
客户端主机名:<%=request.getRemoteHost()%>
二、response对象
处理 JSP 生成的响应
将响应发送给客户端,它是HttpServletResponse类的实例。
1 PrintWriter getWriter() 返回可以向客户端输出字符的一个对象
2 void setContentType(String type) 设置响应的MIME类型
3 sendRedirect(java.lang.String location) 重新定向客户端的请求
面试:sendRedirect和getRequestDispatcher(即转发和重定向的区别)
重定向response.sendRedirect("success.jsp");
转发:request.getRequestDispatcher("success.jsp").forward(request,response);
1转发:一次请求,一次响应。地址栏的url不会改变。在服务器端执行,所以必须在同一台服务器上。转发速度快。
可以通过request.getAttribute()获取request.setAttribute()中的值
2重定向:两次请求。地址栏的url会随之改变为定向后的那个url。在客户端执行,所以可以在不同的服务器上。重定向速度慢。不能通过request.getAttribute()获取request.setAttribute()中的值
三、out对象
out对象是JspWriter类的实例,是向客户端输出内容常用的对象
序号 方 法 说 明
(1 void clear() 清除缓冲区的内容)
(2 void clearBuffer() 清除缓冲区的当前内容)
3 void flush() 清空流
(4 int getBufferSize() 返回缓冲区以字节数的大小,如不设缓冲区则为0)
(5 int getRemaining() 返回缓冲区还剩余多少可用)
(6 boolean isAutoFlush() 返回缓冲区满时,是自动清空还是抛出异常)
7 void close() 关闭输出流
(8 print() 和println()输出信息)
四、session对象
指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。
注:它的生命周期为浏览器不关闭或时间没到(默认时间为30分钟)
常用方法:
1 session.setMaxInactiveInterval(2);//设置过期时间,单位为秒,默认是30分钟
2 void invalidate() 取消SESSION,使SESSION不可用
3boolean isNew() 返回服务器创建的一个SESSION,客户端是否已经加入(自:过期时间是否到)
(4 long getCreationTime() 返回SESSION创建时间)
(5 public String getId() 返回SESSION创建时JSP引擎为它设的惟一ID号)
(6 long getLastAccessedTime() 返回此SESSION里客户端最近一次请求时间)
(7 int getMaxInactiveInterval() 返回两次请求间隔多长时间此SESSION被取消(ms))
8 getAttribute(String name) 返回指定属性的属性值
9 void setAttribute(String key,Object obj) 设置属性的属性值
session是运行在服务器端案例,
注意:session的生命周期较长,一般开发中不宜使用过多存储
五、application对象
application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在
方 法 说 明,通常用于开发计算器
1 Object getAttribute(String name) 返回给定名的属性值
2 void setAttribute(String name,Object obj) 设定属性的属性值
(3 void removeAttribute(String name) 删除一属性及其属性值)
(4 String getServerInfo() 返回JSP(SERVLET)引擎名及版本号)
(5 String getRealPath(String path) 返回一虚拟路径的真实路径)
(6 ServletContext getContext(String uripath) 返回指定WebApplication的application对象)
(7 int getMajorVersion() 返回服务器支持的Servlet API的最大版本号)
(8 int getMinorVersion() 返回服务器支持的Servlet API的最大版本号)
(9 String getMimeType(String file) 返回指定文件的MIME类型)
(10 URL getResource(String path) 返回指定资源(文件及目录)的URL路径)
<%! int i=300000; %> <% application.setAttribute("num", i++); %> 目前你是第<%=application.getAttribute("num") %>位访问者
<% out.print(application.getResource("q4.jsp")); out.print("上下文路径:"+application.getContextPath()); out.print("服务器信息:"+application.getServerInfo()); %>
六、exception对象
exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象
1 String getMessage() 返回描述异常的消息
2 String toString() 返回关于异常的简短描述消息
3 void printStackTrace() 显示异常及其栈轨迹
4 Throwable FillInStackTrace() 重写异常的执行栈轨迹
1<%@ page language="java" contentType="text/html;charset=gb2312" import="java.util.*" isErrorPage="true"%><%=exception %>
2<%@ page language="java" contentType="text/html;charset=gb2312" errorPage="ExceptionDemo.jsp"%><%int[] arr = {1,2,4};out.println(arr[3]);%>
(自:出问题页面 第一行加errorPage="error.jsp" error.jsp页面 第一行加isErrorPage="true" 错误信息<%=exception%>)
七、page对象
page对象就是指向当前JSP页面本身,生存周期就是当前页,在实际开发中一般使用pageContext
八、pageContext对象
pageContext对象提供了对JSP页面内所有的对象及名字空间的访问
九、config对象
config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)
序号 方 法 说 明
1 ServletContext getServletContext() 返回含有服务器相关信息的ServletContext对象
2 String getInitParameter(String name) 返回初始化参数的值
隐式对象的作用域
page只能在本页有效,request本页或转发页有效,session只要浏览器不关都有效或在有效时间内都有效,application只要服务器不关机都有效,即范围大小为:
page<request<session<application
pageContext.setAttribute("num0", 18);//作用域:本页
request.setAttribute("num1",8);//作用域:本页+转发页
//session作用域:本页+任意打开的网页(只要浏览器不关闭或默认30分钟)
session.setAttribute("num2", 88);
//application作用域:本页+任意网页(只要服务不重启)
application.setAttribute("num3", 888);
<% out.print("page作用域:"+pageContext.getAttribute("num0")); out.print("
request作用域:"+request.getAttribute("num1")); out.print("
session作用域:"+session.getAttribute("num2")); out.print("
application作用域:"+application.getAttribute("num3")); %>
表单乱码new String(ss.getBytes("ISO-8859-1"), "utf-8")
网友评论