web应用中三种数据共享方式:request,session,application

在web应用中,多个web组件通过彼此关联来实现协作,共同完成客户端请求的任务。在这个过程中,常常会涉及到数据在多个web组件之间的共享。典型的方法数据共享方式有三种,和当前的web组件共享同一请求的其他web组件。

1.基于请求的共享

基于请求的共享适用于应用在实现单个请求动作的跟踪上。一个典型的应用实例是搜索引擎对某个用户的搜索请求的跟踪。一个用户通过提交搜索表单发出请求后,搜索表单中包含的用户请求数据会被搜索引擎的数据库和搜索结果显示页面所共享。当搜索结果显示页面返回给客户端后,共享就结束了。

实际上在事例中,数据库根据共享的数据请求实现了对搜索条件的跟踪,以确保搜索结果的正确;搜索结果显示页面则根据共享的请求数据实现了对发出该请求的客户端的跟踪识别,以确保搜索结果显示页面会被正确返回给正确的客户端。

服务器响应完用户的请求后,相应的Request对象的生命也会结束其生命周期,Request 对象占用的内存空间也会被回收。因此,基于请求的数据共享的效率是比较高的。

2.基于会话的共享

基于会话的共享就是在同一个http会话中的 web组件间共享数据。一个http会话启动时开始共享, http会话结束时结束该共享。基于会话的数据共享的时效就是整个http会话的生命周期。会话范围内的共享数据实际上就存放在httpsession对象中。

基于会话的数据共享适宜应用在维护客户端与服务器之间的会话状态上。当客户端第一次访问某个支持会话的web站点时,客户端与web就会开始一个新的http会话,servlet容器为这个会话创建一个 httpsession对象。接下来,客户端与服务器也始终处于同一会话中。在整个会话过程中,保存在httpsession对象中的共享数据会在参与会话的web组件之间实现共享。

显然基于会话的数据共享的时效和范围要远远大于基于请求的数据共享,实际上可以看作是在一系列持续的http请求和响应动作之间共享数据。

会话拥有特定的生命周期。会话的 生命周期结束后,servlet 容器会将http会话所占用的资源收回。

3.基于应用的共享就是在同一个web应用间共享数据。web应用中所有的web组件都能共享该范围内的共享数据。共享时效就是整个web应用的生命周期。共享数据实际上就存放在ServletContext对象中。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值