四种方式实现数据共享

1.ServletContext接口

它有一个属性 arrtibute-currentHashmap。

使用规则:可以被当前网站中所有的Servlet使用

生命周期:在http服务器启动时就会创建一个实现类对象,并且规定在运行时必须有且只能有一个实现类对象。在服务器将要关闭时,就会销毁它。

别名叫全局作用域对象。

使用方法:

先提供请求对象request索要全局作用域对象,再将共享数据存储在共享平台中,它相当于一个共享平台的管理员。再另一个Servlet索要全局作用域对象,得到平台存放的数据,以此来实现数据共享。

优缺点:优点是可以被当前网站所有的Servlet对象来访问数据,但是因为map会自动扩容,所以会越来越占内存,数据也不安全,不建议使用,

2.httpServletRequest(推荐使用的) 请求对象/作用域对象

使用规则:处于同一次请求中转发过程中的servlet可以使用来实现数据共享

原理:请求转发。 request.getDidpatcher("/aaa.html").forward(request,response)

生命周期:在本次请求结束后就会被销毁

优缺点:占用内存小,不易发生数据感染,存在事件也较短。

3.cookie

类似于用户的会员卡,在每次请求结束后,会把cookie放在相应包中的响应头中存到浏览器的内存中,页可以设置存在硬盘中,且可以设置事件。

要注意cookie中的key和vaklue只能是字符串。

使用规则:只要是先后为同一个用户同一个浏览器服务的servlet就可以借助cookie实现数据共享

4.HttpSession接口(会话作用域对象)

arrtibute-concurrentHashmap

使用规则:只有为用户服务过的Servlet才有资格使用,当前用户的私人储物柜实现数据共享。

推送过程中不会显示cookie中的具体数据,显示(JSESession ,编号)这样就提高了安全性。

令牌机制也是用它完成的。

生命周期:默认情况下JSESession 是存在浏览器的内存中的,每创建一个session对象就会设置一个最大空闲时间,从使用完成开始计时,为30min。超过这个事件以后才会销毁   

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
多线程同步的四种方式是: 1. 互斥锁(Mutex):通过对共享资源加锁,保证在同一时刻只有一个线程可以访问该资源,其他线程需要等待锁释放后才能访问。这种方式可以避免多个线程同时修改共享资源导致的数据不一致问题。 2. 信号量(Semaphore):通过设置一个计数器,控制同时访问共享资源的线程数量。当计数器不为零时,线程可以访问资源;当计数器为零时,线程需要等待其他线程释放资源后才能访问。信号量可以用于控制线程的并发数量。 3. 事件(Event):通过一个或多个标志来通知线程是否可以继续执行。线程可以等待事件的触发,一旦触发,线程就可以继续执行。事件可以用于线程之间的通信和同步。 4. 条件变量(Condition Variable):用于线程之间的通信和同步,一个线程等待某个条件满足时可以阻塞自己,直到其他线程通知该条件已经满足,然后线程可以继续执行。条件变量通常和互斥锁一起使用,以实现线程之间的同步和协作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [线程同步的四种方式](https://blog.csdn.net/chanlp129/article/details/125357577)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [[面试]进程同步的四种方法](https://blog.csdn.net/wuhuagu_wuhuaguo/article/details/78591330)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值