标签:
JSP九大内置对象:
a、JSP内置对象是Web容器创建的一组对象,【不使用new关键字】就可以使用的内置对象。例如:out
b、JSP九大内置对象:
五大常用对象: out,request,response,session,application
其余四大对象: Page,pageContext,exception,config
1.out内置对象:
2.request内置对象,常用方法如下:
request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,
主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。
request对象的作用域为一次请求。
a. <%request.setCharacterEncoding("utf-8"); %>//解决中文乱码,但不能解决URL传递中文出现的乱码
【<a href="request.jsp?username=李四">测试url传参数</a>】
其解决方法为:在server.xml中修改Connector,在里面添加:URIEncoding="utf-8"
b. String getParameter(String xxx) 返回xxx指定参数的参数值
c. String[] getParameterValues(String xxx) 返回包含参数xxx的所有值的数组
d. void setAttribute(String,Object);存储此请求中的属性
e. int getServerPort();//返回服务器接受此请求所用的端口号
f. String getCharacterEncoding();//返回字符编码方式
g. void setCharacterEncodinng();//设置请求的字符编码方式
h. int getContentLength();//返回请求体的长途(以字节数)
i. String getRemoteAddr();//返回发送此请求的客户端IP地址
j. String getRealPath(String path);//返回虚拟路径的真实路径
k. String request.getContextPath();//返回上下文路径
3.response内置对象
response 代表的是对客户端的响应,它是HttpServletResponse类的实例。
主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。
response对象具有页面作用域,即访问一个页面时,该页面内的response对象只能对这次访问有效,其它页面的response对象对当前页面无效。
常用方法如下:
a. String getCharacterEncoding();返回响应用是何种字符编码
b. void setContentType(String type);设置响应的MIME类型
c. PrintWriter getWriter();返回可以向客户端输出字符的一个对象
d. response.sendRedirect("xxx.jsp"); 请求客户端重定向:如定向到xxx.jsp页面
注意:通过response.getWriter()获取的PrintWriter对象,在打印输出时【提前】于内置的out对象。
不过在写好out.println()之后,可以通过flush()方法将缓冲区内容强制写出,这样就会把文字在前面显示。
4.session内置对象(存在服务器内存中):
什么是session:HttpSession类的实例,从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。
当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,
服务器应当通过某种办法知道这是同一个客户,这就需要session对象。
session对象的ID:当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个session对象,同时分配一个String类型的ID号,
JSP引擎同时将这个ID号发送到客户端,存放在Cookie中,这样session对象和客户之间就建立了一一对应的关系。
当客户再访问连接该服务器的其他页面时,不再分配给客户新的session对象,
直到客户关闭浏览器后,服务器端该客户的session对象才取消,并且和客户的会话对应关系消失。
当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。
session对象存在一定时间过期问题,所以存在session中的名值对会在一定时间后失去,可以通过更改session有效时间来避免这种情况。
同时编程时尽量避免将大量有效信息存储在session中,request是一个不错的替代对象。
session内置对象常用方法:
a.long getCreationTime();//返回session创建时间
b.public String getId();//返回session创建时JSP引擎为它设的唯一ID号
c.public Object setAttribute(String name,Object value);//使用指定名称将对象绑定到此会话
d.public Object getAttribute(String name);//返回此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null
e.String[] getVauleNames();//返回一个包含session中所有可用属性的数组
f.int getMaxInactiveInterval();//返回两次请求间隔多长时间此session被取消(单位秒)
session生命周期:分为三步,一:创建 二:活动 三:销毁
一.创建session的过程其实就是上文中介绍sessionID的过程。
二. 活动:
①某次会话当中通过超链接打开的新页面属于同一次会话
②只要当前会话页面没有全部关闭,重新打开的浏览器窗口访问同一个项目资源时属于同一次会话
③除非本次会话的所有页面都关闭后在重新访问某个JSP或者servlet将会创建新的会话
注意:注意此时原有会话还存在,只是这个旧的Session仍然存在于服务端,只不过再也没有客户端会携带它然后交给服务端校验
三. 销毁:session的销毁只有三种方式
①调用session.invalidate()方法
②Session过期(超时),Tomcat默认设置时间为30分钟,可以通过session.setMaxInactiveInterval(时间);单位是秒,来设置session的时长。
③服务器重新启动
在web.xml文件中配置超时会话销毁也可以
<!-- 设置会话一分钟后过期,注意此处的单位为分钟-->
<session-config>
<session-timeout>1</session-timeout>
</session-config>
5.Application内置对象
a、实现了用户间数据的共享,可存放全局变量。(类似静态对象)
b、开始于服务器启动,终止于服务器的关闭(生命周期)
c、在用户的前后连接或不同用户之间的连接中,可以对application对象的同一属性进行操作
d、在任何地方对application对象属性进行操作,都将影响到其他用户对此的访问
e、application对象是ServletContext类的实例
Application对象常用方法:
a.pblic void setAttribute(String name,Object value);使用指定名称将对象绑定到此会话
b.public Object getAttribute(String name);返回与此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null.
c.Enumeration getAttributeNames();返回所有可用属性那个名的枚举
d.String getServerInfo();返回JSP(SERVER)引擎及版本号6:page内置对象
page对象就是指向当前JSP页面本身,有点像类中的this指针,它是java.lang.Object类的实例。常用方法如下:
a. class getClass(); //返回此Object类
b. int hashCode(); //返回此Object的hash码
c. boolean equals(Object obj); //判断此Object是否与指定的Object对象相等
d. void copy(Object obj); //把此Object复制到指定的Object对象中
e. Object clone(); //克隆此Object对象
f. String toString(); //把此Object对象转换为String类的对象
g. void notify(); //唤醒一个等待的线程
h. void notyfyAll(); //唤醒所有等待的线程
i. void wait(int timeout); //使一个线程处于等待直到timeout结束或被唤醒
j. void wait(); //使一个线程处于等待直到被唤醒
7.pageContext内置对象
* pageContext对象提供了对JSP页面内所有的对象及名字空间的访问
* pageContext对象可以访问到本页所在的session,也可以本页所在的application的某一属性值
* pageContext对象相当于页面中所有功能的集大成者
* pageContext对象的本类名也叫pageContext
*JspWriter getOut(); 返回当前客户端响应被使用的JspWriter流(out)
*HttpSession getSession(); 返回当前页面中HttpSession对象(session)
*Object getPage(); 返回当前页面的Object对象(Object)
*ServeletRequest getRequest(); 返回当前页面的ServletRequest对象(request)
*ServeletResponse getResponse(); 返回当前页面的ServletResponse对象(response)
*void setAttribute(String name,Object attribute); 设置属性及属性值
*void getAttribute(String name,int scope); 在指定范围内取属性的值
*int getAttributeScope(String name); 返回某属性的作用范围
*void forward(String relativeUrlPath); 使当前页面重导到另一页面
*void include(String relativeUrlPath); 在当前位置包含另一文件
8.config内置对象
config对象是在一个servlet初始化时,JSP引擎向它传递信息用的,
此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)
常用方法:
a.ServletContext getServletContext();返回含有服务器相关信息的ServletContext对象
b.String getInitParameter(String name);返回初始化参数的值
c.Enumeration getInitParameterNames();返回Servlet初始化所需所有参数的枚举
9.Execption对象
exception对象是一个异常对象,当一个页面在运行过程中规发生了异常,就会产生这个对象。
如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。
实际上是java.lang.Throwable的对象,常用方法如下:
a. String getMessage();返回描述异常的消息
b. String toString();返回关于异常的简短描述消息
c. void printStackTrace();显示异常及其栈轨迹
d. Throwable FillInStackTrace();重写异常的执行栈轨迹
使用方法:
a. 在可能会抛出异常的页面page指令里,设置errorPage="xxx.jsp",表示出现异常将抛给xxx页面去处理
b. 在xxx页面里,要使用Exception对象,需要把page指令里的isErrorPage属性设置为true。
标签:
原文地址:http://www.cnblogs.com/zhangygl/p/4298387.html