JSP中的作用域

作用域:

在web应用中 , JSP创建的对象有一定的生存周期 , 可以被其它组件或其它对象访问 , 对象的生存周期及可访问性称为作用域.

JSP有四大作用域 , 按照可以访问域的范围(从小到大)为 : page--> request --> session --> application

pageContext(页面域)

pageContext有效范围仅限于当前页面 , 可以近似理解为this对象 ,  在离开当前页面后 , 无论是request或redirect等方式离开的 , 当前页面的相关属性值都会丢失

request(请求域)

request表示一次请求 , 它的有效范围是当前请求周期 . 所谓请求周期 , 就是从http发送请求 , 到服务器接收并处理请 , 将结果返回到客户端响应 . 在这一过程中 , 可能使用forward跳转了多个jsp页面 , 而在这多个jsp页面中属性值都有效. 但如果是通过redirect方式进行跳转 , 则重新发送请求 , 这样属性值就会丢失

ps:forward()转发是服务器端的,地址栏的地址不会改变;redirect()是请求重新定向,是客户端的,地址栏的地址为重新定向的页面

session(会话域)

session有效范围是当前会话。当前会话表示浏览器打开到浏览器关闭这一过程。但这会出现这种情况,如果浏览器一直处于打开状态,这样session永远不会销毁,而且在浏览器关闭时并不会通知服务器,另外session是存放在服务器的内存上,这样对服务器是一种负担,所以通过这种方法来判断:如果一段时间内客户端没有响应,则认为会话结束。tomcat默认会话时长为120分钟,但可以通过HttpSession的setMaxInactiveInterval()方法来设置。

application(应用域)

application有效范围为整个应用,从应用开启到应用结束。在服务器停止之前,应用没有结束,application对象都有效,可以被所有会话共享。 application作用域的变量的存活时间是最长的,如果不手动删除就会一直存在。因为application的变量是共享的,如果甲修改了application的变量,那么,乙访问的是修改后的值。这在其它scope是不会发生的,因为page,request,session是完全隔离的,用户之间不会影响

 

session的删除:

1)  Session超时:在服务器设置的session超时的最大时间内,服务器没有收到session所对应的客户端的任何请求行为;

2)  程序调用HttpSession.invalidate()来进行删除 ;

3)  服务器关闭或服务停止(或者应用关闭)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值