- jsp的9个内置对象
内置对象名 | 对象说明 | 作用域 | 内置对象名 | 对象说明 | 作用域 |
request | 请求对象 | Request | response | 响应对象 | Page |
session | 会话对象 | Session | application | 应用程序对象 | Application |
page | 页面对象 | Page | out | 输出对象 | Page |
config | 配置对象 | Page | exception | 例外对象 | Page |
pageContext | 页面上下文对象 | Page |
2.JSP的4个域对象
①pageContext,如果把变量放在pageContext里,就说明它的作用域是page,有效范围只在当前jsp页面中
②request,该对象中的数据的生命周期是一次请求的时间
③session,该对象中的数据的生命周期较长
④application,该对象中的数据的生命周期最长,从应用启动到应用结束。
现在,有两个客户分别通过各自的浏览器IE_1和IE_2访问服务器
服务器启动时,会自动在内存中创建一个apllication对象,为整个应用所共享,该对象一直存在,直到服务器关闭。
当用户首次访问JSP页面时,服务器会自动创建一个session对象,并为该session对象分配一个ID,同时将该sessionID号返回给客户,保存在客户机Cookies中。
客户在随后的访问中,浏览器会将该sessionID随请求一起带给服务器,服务器根据这个ID找到之前为该客户创建的session对象。
用户断开退出服务器时,session对象失效。有些服务器出于安全性考虑,如果超过一定的时间限制,session会自动失效。
当用户每次访问某个JSP页面时,服务器会为该请求创建一个请求对象request,用于存放这次访问的所有请求信息。
所以,需要根据需求合理使用这几个对象
例如,涉及全局的网站访问次数就应该由application对象来管理
用户名等涉及多个页面的用户个人信息应由session对象管理
只涉及到一次请求过程需要的信息用request对象管理
3.http协议是无状态的
协议对事务处理没有记忆能力
无状态意味着如果后续处理需要前面的信息,它必须重传。
JSP中是通过session对象来解决http应用程序的状态需求的。
4.out对象
out对象是javax.servlet.jsp.JspWriter类的实例,主要作用是用来向客户端输出内容,同时管理应用服务器输出缓冲区。
out对象有两个方法用于输出数据:print和println,该对象可以输出任何合法的Java表达式。
利用out对象在浏览器中输出服务器的系统时间
5.page对象
page对象代表JSP页面本身,或者说它代表了被转换后的Servlet
在JSP页面中,this关键字表示当前JSP页面这个对象。因此它可以调动任何被Servlet类所定义的方法。
page对象的基类是java.lang.Object类,可通过该对象调用Object类中的那些方法。
使用getServletInfo方法,获取当前页面的info属性
6.requset对象
客户每次向JSP服务器发送请求时,JSP引擎都会创建一个request对象。
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。
它是javax.servlet.http.HttpServletRequest类的实例。
7.response对象
response对象是javax.servlet.http.httpServletResponse接口的实例,是服务器对request对象请求的回应,负责向客户端发送数据。
通过调用response对象的方法还可以获得服务器端的相关信息,如状态行、head和信息体等
①sendRedirect()方法
可向服务器发送一个重定向的请求,用它转到另外一个页面时,相当于从客户端重新发了一个请求,浏览器地址栏上会出现重定向后页面的URL,这种跳转属于客户端跳转。
服务器会重新生成一个request对象,原来的request对象就失效了。
此语句之后的其它语句仍然会执行
控制台输出:
跳转之前
跳转之后
②setHeader()方法
利用response设置head信息,实现页面定时刷新的功能
利用response设置head信息,实现页面定时跳转的功能
利用response实现禁用浏览器缓存,使用浏览器“回退”按钮回到前一页,也必须重新从服务器上获取。
8.session对象
session对象是javax.servlet.http.HttpSession接口的实例对象
session对象是用户首次访问服务器时由服务器自动为其创建的。创建的同时,会为该session对象生成唯一的session id,该对象的其它属性只保存在服务器中,发到客户端的只有session id,当客户端再次发送请求的时候,会将这个session id带上,服务器会依据这个session id找到相应的session对象。
服务器会为session设置一个失效时间。
在JSP中通过HttpServletRequest的getSession(true)方法获得session对象。
9. application对象
application对象是在Web服务器启动时由服务器自动创建的,它的生命周期是JSP所有隐含对象中最长的,一旦创建了application对象,直到服务器关闭它才会销毁。
利用application对象实现网站计数器的功能
10.config对象
config对象中存储着一些servlet初始的数据结构。
config对象实现了javax.servlet.ServletConfig接口。
如果在web.xml文件中,针对某个Servlet文件或JSP文件设置了初始化参数,则可以通过config对象来获取这些初始化参数。
11.exception对象
当JSP页面发生错误时,会产生异常。exception对象就是用来针对异常作出相应处理的对象。
12.pageContext对象
pageContext能够存取其他内置对象,当内置对象包括属性时,pageContext也支持对这些属性的读取和写入。
JSP引擎在把JSP转换成Servlet时经常需要用到pageContext对象,但在普通的JSP开发中一般都很少直接用到该对象。