首页 > 代码库 > JSP九大隐式对象
JSP九大隐式对象
1.jsp的九大隐式对象
request HttpServletRequest
response HttpServletResponse
session HttpSession
application ServletcContext
config ServletConfig
exception (特殊情况下使用)
page this(本JSP页面)
out JspWriter(带缓冲的PrintWriter)
pageContext(使普通Java类可访问WEB资源,自定义标签常用)
2.session
(1)访问jsp页面时,默认web服务器创建session
(2).访问servlet时,必须通过request.getSession()才能创建session
(3).在转发和重定向情况下,session域不会销毁
3.application=ServletContext对象
4.config
取得jsp映射在web.xml文件中的信息
5.page:表示当前jsp页面,只能在jsp标签只出错,表示当前域对象,在代码中,表示当前域对象只能用PageContext
6.out隐式对象
(1).out隐式对象用于向客户端发送文本数据。
(2).out对象是通过调用pageContext对象的getOut方法返回的,其作用和用法与ServletResponse.getWriter方法返回的PrintWriter对象非常相似。
(3).JSP页面中的out隐式对象的类型为JspWriter,JspWriter相当于一种带缓存功能的PrintWriter,设置JSP页面的page指令的buffer属性可以调整它的缓存大小,甚至关闭它的缓存。
(4).只有向out对象中写入了内容,且满足如下任何一个条件时,out对象才去调用ServletResponse.getWriter方法,并通过该方法返回的PrintWriter对象将out对象的缓冲区中的内容真正写入到Servlet引擎提供的缓冲区中:
(5).设置page指令的buffer属性关闭了out对象的缓存功能
out对象的缓冲区已满整个JSP页面结束
out的工作原理图:
7.exception:该对象只能在<%@isErroPage="true"%>的情况下,容器才会创建,否则容器不予创建
8.pageContext
(1).PageContext域对象仅限于当前jsp页面中,出了该jsp页面,原PageContext域对象销毁,如果取不到值,返回null
(2).PageContext域对象可以将对应的值保存在指定的四个域对象之一
pageContext.setAttribute("name","丝丝",PageContext.REQUEST_SCOPE);
(3)PageContext域对象可以将对应的值从指定的四个域对象之一取出
<%=pageContext.getAttribute("name",PageContext.APPLICATION_SCOPE) %>
(4).PageContext.findAttribute("name")
它会以name为key,依次去四个域对象中查询对应的值,找到即止,如果找不到,返回null
9.四大域对象
四个域对象的生命周期图:
四大域对象的包含图:
(1).pageContext jsp执行时创建pageContext,jsp页面结束时pageContext销毁
(2).request 客户请求服务器时创建,请求结束request销毁
(3).session 客户机请求服务器时,第一次getSession时,服务器创建session,session过xx多长时间没用了(或调用了session.invalidate方法),服务器销毁session
(4).application(servletContext) web应用启动时就创建,web应用停止就销毁
10.什么情况下用什么域的问题
(1).什么情况下用request域?如果在开发程序时,数据看完就没用了,那就应该把数据存在request域范围内。比如看新闻,新闻属于用户看完就没用的数据,这时servlet获得新闻数据,就应该存在request里面交给jsp显示。
(2).什么情况下用session域?如果在开发程序时,数据看完了用户等一会儿还要用,那就应该把数据存在session域范围内.例如购物,购买的商品是用户的数据,这个数据产生之后,用户等一会儿结帐还要用,那么程序就应该把数据存在用户的session中。
(3).什么情况下用application域?如果在开发程序,数据产生了,这个数据不仅等一会儿自己要用,还要给别人用,那就应该存在application域,例如web聊天室,用户的聊天数据,这个数据不仅用户等一会儿自己要看,还要给别人看。
JSP九大隐式对象