Servlet jsp四大作用域对象解析
2015-03-06 10:02:36  By: dwtedx

Servlet三大域对象解析、相信大家对Servlet的三大域都不陌生、它们分别是request、session、Application(ServletContext)、那么这些域作用是什么、在javaweb开发中Servlet三大域对象的应用(request、session、application(ServletContext))是必须要掌握的


1、pageContext

pageContent是PageContext类的实例、它提供了如下两个方法来访问page、request、session、application范围的变量

用处:与getAttribute()方法相对应、PageContext也提供了2个对应的setAttribute()方法、用于将指定变量放入page、request、session、application范围内

常用方法


getAttribute(String name);//取得page范围内的name属性  
getAttribute(String name,int scope);//取得指定范围内的name属性


其中scope可以是如下4个值

PageContext.PAGE_SCOPE://对应于page范围

PageContext.REQUEST_SCOPE://对应于request范围

PageContext.SESSION_SCOPE://对应于session范围

PageContext.APPLICATION_SCOPE://对应于application范围


2、request

request是表示一个请求、只要发出一个请求就会创建一个request、它的作用域:仅在当前请求中有效

用处:常用于服务器间同一请求不同页面之间的参数传递、常应用于表单的控件值传递

常用方法

request.setAttribute();
request.getAttribute();
request.removeAttribute();
request.getParameter();


3、session

服务器会为每个会话创建一个session对象、所以session中的数据可供当前会话中所有servlet共享

会话:用户打开浏览器会话开始、知道关闭浏览器会话才会结束、一次会话期间只会创建一个session对象

用处:常用于web开发中的登陆验证界面(当用户登录成功后浏览器分配其一个session键值对)

常用方法

session.setAttribute();
session.getAttribute();
session.removeAttribute();


获得session对象方法:

(1)在Servlet中:HttpSession session = request.getSession();

(2)由于session属于jsp九大内置对象之一、当然可以直接使用、例如:<%session.serAttribute("name","admin")%>

备注: session是服务器端对象、保存在服务器端、并且服务器可以将创建session后产生的sessionid通过一个cookie返回给客户端、以便下次验证、(session底层依赖于cookie)


4、Application(ServletContext)

作用范围:所有的用户都可以取得此信息、此信息在整个服务器上被保留、Application属性范围值、只要设置一次、则所有的网页窗口都可以取得数据、ServletContext在服务器启动时创建、在服务器关闭时销毁、一个JavaWeb应用只创建一个ServletContext对象

获取Application对象方法(Servlet中):

ServletContext app01 = this.getServletContext();
app01.setAttribute("name", "kaixuan");    //设置一个值进去
ServletContext app02 = this.getServletContext();
app02.getAttribute("name");    //获取键值对 


ServletContext同属于JSP九大内置对象之一、故可以直接使用

备注:服务器只会创建一个ServletContext 对象、所以app01就是app02、通过app01设置的值当然可以通过app02获取

好了、关于Servlet三大域就讨论到这里、希望对大家有用

若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+