码农往事
我的代码为什么这么丑?一定是因为我长的不好看
posts - 29,comments - 86,trackbacks - 0
JSP页面定义了如下几个作用域:
页面作用域(page scope)、请求作用域(request scope)、会话作用域(session scope)、应用程序作用域(application scope)
页面作用域中的对象仅在当前页面可用;请求作用域中的对象在所有处理同一请求的页面中都可用;会话作用域中的对象用于同一浏览器发出的所有请求;应用程序作用域中的对象被应用程序的所有用户共享。
通过设置<jsp:useBean>行为的scope属性,制定bean应该放在哪个作用域中,例如:
<jsp:useBean id="test" scope="request"  class="com.testBean" />
会话跟踪过程解释:由于HTTP是一种无状态协议,即服务器处理完浏览器的请求后将忘掉所发生的事务,当浏览器再次发出请求时,Web服务器并不知道新的请求与之前的请求有何关系。解决这个问题主要有两种方法:
1、服务器在应答中返回与该用户有关的所有信息,并让浏览器将其作为下一个请求的一部分发回去
2、在服务器的任何位置保存状态信息,并且发回一个标识符,浏览器在下一请求中返回该标识符,然后借由该标识符定位服务器上的状态信息
在这两种情况下,可以用以下三种方式将状态信息发送给浏览器:
1、作为cookie    
2、嵌入HTML表单作为隐藏字段
3、进行编码,编入应答主体的URL中,一般作为连接到其它应用程序的链接(也称作URL复写,URL rewriting)

在浏览器和服务器间来回发送所有状态信息的效率是极低的,所以大多数现代服务器都将信息保留在服务器上,只在浏览器和服务器间传递标识符,这就是会话跟踪(session tracking),JSP隐藏了cookie会话跟踪的所以细节,并实现了对URL复写的支持,此外,JSP规范允许使用安全套接字协议层(Secure Socket Layer,SSL)内置的会话机制。在会话的生命周期中,保存在会话作用域中的信息可被同一浏览器的所有页面所用。
在线购物(P179):
内存使用策略:
1、只把那些真正需要被每个会话单独拥有的对象放在会话作用域中
2、将会话的有效期设成比默认值更短
3、提供一种显示的结束会话的方法。一个好的示例就是注销功能,或者是当某件事务完成时,使会话失效。在servlet和其他自定义代码中,可以使用HttpSession invalidate()方法。
posted on 2012-05-21 00:35 Jimi 阅读(1841) 评论(1)  编辑  收藏 所属分类: JSP与servlet

FeedBack:
# re: 在JSP页面、请求和用户间共享数据(oreilly.JSP设计第二版 第十章 P160)
2012-05-24 21:27 | 天津别墅铜门
这个东西不错的  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: