JSP页面中作用域及request的使用

一、jsp 的四个作用域 :page、request、session和application

1、page:用户请求的当前页面;指当前页面。在一个jsp页面里有效
2、request :指从http请求到服务器处理结束,返回响应的整个过程。在这个过程中使用forward方式跳转多个jsp。在这些页面里你都可以使用这个变量。
3、Session:同一个http会话中的web组件共享它;有效范围当前会话,从浏览器打开到浏览器关闭这个过程。
4、application:整个web应用的所用web组件共享它;它的有效范围是整个应用。
作用域里的变量,它们的存活时间是最长的,如果不进行手工删除,它们就一直可以使用

page里的变量没法从index.jsp传递到test.jsp。只要页面跳转了,它们就不见了。
request里的变量可以跨越forward前后的两页。但是只要刷新页面,它们就重新计算了。
session和application里的变量一直在累加,开始还看不出区别,只要关闭浏览器,再次重启浏览器访问这页,session里的变量就重新计算了。
application里的变量一直在累加,除非你重启tomcat,否则它会一直变大。

二、s:property 标签——value属性使用事项
1)涉及问题:取值时什么时候该加#,什么时候不加?

获取值时,一般有两种情况:

①在获取request/session/application/attr/parameters这五个范围时,需要明确指定范围,比如:

<s:property value="#request.属性名" />  

范围前面需要带#号才能正确获取属性值。

②如果取ValueStack中的值时,是不需要带#的,可以直接取。
比如Action实例的属性值是存储在ValueStack中的,所以取Action中的属性是不需要带#号的。

参考资料:
jsp 的四个作用域 :page、request、session和application的区别 .
记录:s:property 标签——value属性使用事项

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页