百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>html5教程> jsp四大作用域有什么
分享文章到:

jsp四大作用域有什么

发布时间:09/01 来源:未知 浏览: 关键词:
JSP内置对象作用域

application:在所有利用程序中有效,即只要这个网站运转着,这个作用域就有效,这个指的程序的运转历程。

session:在当前会话中有效,即从阅读器拜访效劳器开端,这个指的是会员的一个拜访历程,即这次会话的开端到完毕

request:在当前恳求中有效,负责多个servlet之间的信息同享,马上信息放入到request中,在整个恳求阶段都是有效的,即会员拜访的这个阶段都可以猎取到这个数据

page:在当前页面有效,即在一个jsp页面上是有效的。

第一要声明一点,所谓"作用域"就是"信息同享的范畴",也就是说一个信息能够在多大的范畴内有效。

Web交互的最根本单位为HTTP恳求。每个会员从进入网站到分开网站这段历程称为一个HTTP会话,一个效劳器的运转历程中会有多个会员拜访,就是多个HTTP会话。作用域说明如下。

application:效劳器启动到休止这段时间。

session:HTTP会话开端到完毕这段时间。

request:HTTP恳求开端到完毕这段时间。

page:当前页面从翻开到关闭这段时间。

1. application 作用域

application作用域就是效劳器启动到关闭的整段时间,在这个作用域内设定的信息可以被所有利用程序使用。application作用域上的信息传递是通过ServletContext实现的,它供给的主要办法如下所示:

Object getAttribute(String name):从application中猎取信息。

void setAttribute(String name, Object value):向application作用域中设定信息。

2. session作用域

session作用域比力容易懂得,统一阅读器对效劳器停止屡次拜访,在这屡次拜访之间传递信息,就是session作用域的表现。session是通过HttpSession接口实现的,它供给的主要办法如下所示。

Object HttpSession.getAttribute(String name):从session中猎取信息。

void HttpSession.setAttribute(String name, Object value):向session中留存信息。

HttpSession HttpServletRequest.getSession():猎取当前恳求所在的session的对象。

session的开端时刻比力容易推断,它从阅读器发出第一个HTTP恳求即可认为会话开端。但完毕时刻就不好推断了,由于阅读器关闭时并不会通知效劳器,所以只能通过如下这种办法推断:假如必然的时间内客户端没有反响,则认为会话完毕。Tomcat的默许值为120分钟,但这个值也可以通过HttpSession的setMaxInactiveInterval(int interval)办法来设定,假如想主动让会话完毕,例如会员单击"注销"按钮的时候,可以使用 HttpSession 的 invalidate()办法,用于强迫完毕当前session。

3. request作用域

一个HTTP恳求的处置大概需要多个Servlet合作,而这几个Servlet之间可以通过某种方式传递信息,但这个信息在恳求完毕后就无效了。

Servlet之间的信息同享是通过HttpServletRequest接口的两个办法来实现的。

void setAttribute(String name, Object value):将对象value以name为名称留存到request作用域中。

Object getAttribute(String name):从request作用域中取得指定名字的信息。

JSP中的doGet()、doPost()办法的第一个参数就是HttpServletRequest对象,使用这个对象的 setAttribute()办法即可传递信息。

那么在设定好信息之后,要通过何种方式将信息传给其他的Servlet呢?这就要用到RequestDispatcher接口的forward()办法,通过它将恳求转发给其他Servlet。

RequestDispatcher ServletContext.getRequestDispatcher(String path):取得Dispatcher以便转发。path为转发的目的Servlet。

void RequestDispatcher.forward(ServletRequest request, ServletResponse response):将request和response转发。

因此,只需要在当前Servlet中先通过setAttribute()办法设定响应的属性,然后使用forward()办法停止跳转,最后在跳转到的Servlet中通过使用getAttribute()办法即可实现信息传递。

PHP的程序员大概不太好懂得这一段,由于PHP中没有转发的概念,一个恳求只能由一个PHP文件来处置,所以PHP中基本没有request作用域的概念。而Servlet则不一样,恳求可以在利用程序中任意转发,所以用request作用域在不一样Servlet之间传递信息。

留意两点:

转发不是重定向,转发是在Web利用内部停止的。PHP支撑重定向但没有转发。

转发对阅读器是透亮的,也就是说,不管在效劳器上怎样转发,阅读器地址栏中显示的依然是最初阿谁Servlet的地址。重定向的阅读器地址是转变的。

4. page作用域

page对象的作用范畴仅限于会员恳求的当前页面,关于page对象的援用将在响应返回给客户端之后被开释,或者在恳求被转发到其他地方后被开释。对page对象的援用平常储备在pageContext对象中。

以上介绍的作用范畴越来越小,request和page的生命周期都是短暂的,它们之间的不同:一个request可以包括多个page页(include,forward及filter)。

以上就是jsp四大作用域有什么的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有150人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板