JSP的八个内置对象-学习笔记

来源:互联网 发布:amd表面格式优化 编辑:程序博客网 时间:2024/04/30 11:30

一,request对象:

客户端的请求信息被封装在request对象中,通过它才能了解到用户的需求,然后做出响应。它是HttpServletRequest类的实例。request对象具有请求域,即完成客户端的请求之前,该对象一直有效。常用方法如下:

(1)String getParameter(String name) 返回name指定参数的参数值
(2)String[] getParameterValues(String name) 返回包含参数name的所有值的数组
(3)void setAttribute(String, Object) 存储此请中的属性
(4)object getAttribute(String, Object) 返回指定属性的属性值
(5)String getContentType() 得到请求体的MIME类型
(6)String getProtocol() 返回请求用的协议类型及版本号
(7)String getServerName() 返回接受请求的服务器主机名
(8)void  setCharacterEncoding(String)  设置客户端页面显示编码格式


例如request.setCharacterEncoding("utf-8")可将编码格式设置为“utf-8”,但是该方法无法解决使用URL方式传参数的编码格式。例如<a href="req.jsp?username=李四">测试URL传参数</a>,此时request.setCharacterEncoding("utf-8")无法解决使用URL方式传参数时的中文乱码问题,只能解决用表单传递参数出现中文乱码的问题。

解决方法:在tomcat的server.xml中的修改端口号的标签的最后加上URIEncoding="utf-8"可以解决url传参的中文乱码问题

server.xml 文件:

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8"/>                             //修改URIEncoding
再重启tomcat即可。

二,response对象:
response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。response对象具有页面作用域,即访问一个页面时,该页面内的response对象只能对这次访问有效,其他页面的response对象对当前页面无效。常用方法如下:
(1)String getCharacterEncoding() 返回相应用的是何种字符编码
(2)void setContentType(String type) 设置响应的MIME类型
(3)PrintWriter getWriter() 返回可以向客户端输出字符的一个对象
(注意比较:PrintWriter与内置out对象的区别)
(4)void sendRedirect(java.lang.String location) 重新定向客户端的请求

例:response.setContentType("text/html;charactor=utf-8");//设置响应的MIME类型、

PrintWriter outer=response.getWriter();//获取输出流对象 。注:PrintWriter对象在进行输出时,总是提前与out对象
解决方法:在使用out对象之后,使用out.flush();//清空缓冲区 方法进行强制输出
response.sendRedirect("reg.jsp");//请求重定向方法,将页面跳转到reg.jsp页面


三,请求转发与请求重定向:
请求重定向:客户端行为,respon.sendRedirect(),从本质上讲等同于两次请求,前一次请求的对象不会保存,地址URL会改变;
请求转发:服务器行为,request.getRequestDispatcher().foward(req,resq);是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变;

四,session对象:

1,常用方法:

(1)long getCreationTime():返回SESSION创建时间

(2)public String getId():返回SESSION创建时JSP引擎为它设的唯一ID号
(3)public Object setAttribute(String name, Object value):使用指定名称将对象绑定到此会话
(4)public Object getAttribute(String name):返回与此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null

(5)String[] getValueNames():返回一个包含此SESSION种所有可用属性的数组

(6)int getMaxInactiveInterval():返回两次请求间隔多长时间此SESSION被取消(单位秒)

2,session的生命周期 活动:
某次会话当中通过超链接打开的新页面属于同一次会话只要当前会话页面没有全部关闭,重新打开新的浏览器窗口访问同意项目资源时属于同一次会话。除非本次会话的所有页面都关闭后再重新访问某个新的jsp或者servlet将会创建新的会话。
注意事项:
注意原有的会话还存在,只是这个旧的sessionId仍然存在于服务器端,只不过再也没有客户端会携带它然后交予服务器端校验


3,session销毁的三种方式:

(1)调用session.invalidate()方法
(2)session过期(超时)
(3)服务器重新启动


4,设置session超时的两种方式:

tomcat默认session超时时间为30分钟
(1)session.setMaxInactiveInterval(时间);//单位是秒
(2)在web.xml配置
<session-config>
<session-timeout>
10
<session-timeout>
<session-config> //单位是分钟

五,application对象:
1,application介绍

(1)实现了用户间数据的共享,可存放全局变量。(类似静态对象)

(2)开始于服务器启动,终止于服务器的关闭(生命周期)

(3)在用户的前后连接或不同用户之间的连接中,可以对application对象的同一属性进行操作
(4)在任何地方对application对象属性进行操作,都将影响到其他用户对此的访问

(5)application对象是ServletContext类的实例


2,application对象常用方法:
(1)void setAttribute(String name,Object value);//使用指定名称将对象绑定到此会话
(2)Object getAttribute(String name);//返回与此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null.
(3)Enumeration getAttributeNames();//返回所有可用属性那个名的枚举
(4)String getServerInfo();//返回JSP(SERVER)引擎及版本号

六,page对象:
page对象就是指向当前JSP页面本身,有点像类中的this指针,它是java.lang.Object类的实例。常用方法如下:
(1)class getClass();//返回此Object类
(2)int hashCode();//返回此Object的hash码
(3)boolean equals(Object obj);//判断此Object是否与指定的Object对象相等
(4)void copy(Object obj);//把此Object复制到指定的Object对象中
(5)Object clone();//克隆此Object对象
(6)String toString();//把此Object对象转换为String类的对象
(7)void notify();//唤醒一个等待的线程
(8)void notyfyAll();//唤醒所有等待的线程
(9)void wait(int timeout);//使一个线程处于等待直到timeout结束或被唤醒
(10)void wait();//使一个线程处于等待直到被唤醒

七,pageContext对象:
pageContext对象是pageContext类的实例,相当于页面功能的集大成者。pageContext对象提供了对JSP页面内所有的对象及名称空间的访问;pageContext对象可以访问本页所在的session,也可以获取本页所在的application的某一属性值常用方法如下:
(1)JspWritergetOut(); //返回当前客户端响应被使用的JspWriter流(out)
(2)HttpSession getSession(); //返回当前页面中HttpSession对象(session)
(3)Object getPage(); //返回当前页面的Object对象(Object)
(4)ServeletRequestgetRequest(); //返回当前页面的ServletRequest对象(request)
(5)ServeletResponse getResponse();//返回当前页面的ServletResponse对象(response)
(6)void setAttribute(String name,Object attribute);//设置属性及属性值
(7)void getAttribute(String name,int scope);//在指定范围内取属性的值
(8)int getAttributeScope(String name);//返回某属性的作用范围
(9)void forward(String relativeUrlPath);//使当前页面重导到另一页面
(10)void include(String relativeUrlPath);//在当前位置包含另一文件

八,Config对象:
config对象是一个Servlet超初始化是,Jsp引擎向他传递信息用的,Servlet初始化是所要用到的参数(通常属性名和属性构成)以及服务器有关的信息(通常传递一个ServletContext对象),常用方法如下:
(!)ServletContext getServletContext()返回一个含有服务器有关Servlet有关信息的ServletContext对象
(2)String getInitParameter(String name)返回初始化参数的值
(3)Enumeration getInitParameterNames()返回Servlet初始化所需要参数的枚举

九,Execption对象:
exception对象是一个异常对象,当一个页面在运行过程中规发生了异常,就会产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象,常用方法如下:
(1)String getMessage();//返回描述异常的消息
(2)String toString();//返回关于异常的简短描述消息
(3)void printStackTrace();//显示异常及其栈轨迹
(4)Throwable FillInStackTrace();//重写异常的执行栈轨迹
使用方法:
(1)在可能会抛出异常的页面page指令里,设置errorPage="xxx.jsp",表示出现异常将抛给xxx页面去处理
(2)在xxx页面里,要使用Exception对象,需要把page指令里的isErrorPage属性设置为true。
0 0
原创粉丝点击