码迷,mamicode.com
首页 > Web开发 > 详细

JSP九大隐式对象

时间:2014-08-23 20:24:31      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:jsp九大隐式对象   四大域对象   out   pagecontext   

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的工作原理图:

bubuko.com,布布扣

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.四大域对象

四个域对象的生命周期图:

bubuko.com,布布扣

四大域对象的包含图:
bubuko.com,布布扣


(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九大隐式对象

标签:jsp九大隐式对象   四大域对象   out   pagecontext   

原文地址:http://blog.csdn.net/u011662320/article/details/38780473

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!