jsp中的作用域有:1、pageContext(页面作用域);2、request(请求作用域);3、session(会话作用域);4、application(应用程序作用域)。pageContext对象的作用范围仅限于用户请求的当前页面。
1、pageContext(页面作用域)
page对象的作用范围仅限于用户请求的当前页面。如果把变量放到pageContext里,就说明它的作用域page,它的有效范围只在当前jsp页面里。它的主要功能有:
- 域对象功能,当前页面和当前页面中的标签共享数据
- 代理其他域对象功能
- 获取其他内置对象
pageContext的域对象功能:
pageContext也是域对象,它的范围是当前页面。它的范围也是四个域对象中最小的。
- void setAttribute(String name, Object value);
- Object getAttrbiute(String name, Object value);
- void removeAttribute(String name, Object value);
2、request(请求作用域)
request里的变量可以跨越forward前后的两页。但是只要刷新页面,它们就重新计算了。如果把变量放到request里,就说明它的作用域是request,它的有效范围是当前请求周期。因为请求对象对于每一个客户请求都是不同的,所以对于每一个新的请求,都要重新创建和删除这个范围内的对象。主要用于一次请求在不同页面间的操作及参数传递,如表单的参数传递。
request的生命周期:
- 创建:浏览器给服务器发送请求后,tomcat创建request对象封装请求数据;
- 销毁:服务器给浏览器响应信息结束后销毁。
request域对象:
request域对象,一个存储数据的区域对象,是把request当成一个容器来存储数据,request域存储数据主要是用于在两个servlet之间传递数据。request作为域对象,常用的方法如下:
- void setAttribute(String name, Object o) :往request域中设置值
- Object getAttribute(String name) :从request域中取值
- void removeAttribute(String name) :从request域中移除值
3、session(会话作用域)
如果把变量放到session里,就说明它的作用域是session,它的有效范围是当前会话,即从用户打开浏览器开始,到用户关闭浏览器这中间的过程。session的生命周期是在服务器正常的情况下,在名列前茅次调用request.getSession()方法时到程序调用HttpSession.invalidate()销毁该session时结束。当然你也可以在网页F12控制台删除session。主要是网站用户的信息。
Session生命周期:
- 创建:当客户端名列前茅次访问某个servlet的时候,服务器会为当前会话创建一个SessionID,每次客户端向服务器发送请求时,都会将此sessionID携带过去,服务端会对此sessionID进行校验。
- 参与活动:该次会话中,只要当前页面未全部关闭,再次打开不同浏览器会访问同一项目资源时属于同一次会话,只有此次会话全部关闭创建新的会话时才会变化。
- 销毁:可调用销毁方法destroy()。
Session常用方法:
- setAttribute(String key,Object value) :以key/value的形式保存对象的值
- getAttribute(String key) :通过key获得对象值
- removeAttribute(String key) :从session中删除指定key所对应的对象
4、application(应用程序作用域)
application即是ServeltContext,它的有效范围是整个应用,即整个web适用。ServletContext生命周期在服务器启动时创建,在服务器关闭时销毁。主要用于每个用户都可以访问的数据或多个客户端共享的数据。Application作用域就是服务器从启动到关闭的整段时间,在这个作用域内设置的信息可以被所有应用程序使用,application作用域上的信息传递是通过ServletContext实现的。
application常用方法:
- getAttribute(String name):从application中获取信息
- setAttribute(String name, Object value):在application作用域中设置信息
延伸阅读
jsp中的作用域从小到大排序
- PageContext(jsp页面)
- ServletRequest(一次请求)
- HttpSession(一次会话)
- ServletContext(整个web应用)
文章标题:jsp中的作用域有哪些,发布者:Z, ZLW,转载请注明出处:https://worktile.com/kb/p/35590