对于session的“CRUD”

会话迁移

别忘了HttpSessionBindingListener

Listener示例

1、session的“增”与“删”——session的创建和撤销的调用主体是服务端。

2、session的“改”——由各个servlet执行

3、那么session的“查找”呢?——依赖于客户端发来的JSESSIONID,以及服务端调用getSession()

4、会话迁移

  1. 很重要的一句话——“HttpSession只有一个!”不论有多少个VM。
  2. 迁移的发生:负载平衡服务器接到一个会话id为1的请求,把它交给容器1,结果容器1发现会话id为1的那个session在容器2中,迁移就开始了...
  3. 迁移的意味:在起点vm上“钝化”,在终点vm上激活。

具体方法暂略。

5、别忘了HttpSessionBindingListener

6、Listener示例

跟踪Web应用中的活动会话个数。

package com.example;

import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener; public class BeerSessionCounter implements HttpSessionListener { static private int activeSessions; public static int getActiveSessions() { // 其它servlet、辅助类可以访问!
return activeSessions;
} @Override
public void sessionCreated(HttpSessionEvent httpSessionEvent) {
++activeSessions;
} @Override
public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
--activeSessions;
}
}
<?xml version="1.0" encoding="ISO-8859-1" ?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4"> <servlet>
<servlet-name>Ch3 Beer</servlet-name>
<servlet-class>com.example.web.BeerSelect</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>Ch3 Beer</servlet-name>
<url-pattern>/SelectBeer.do</url-pattern>
</servlet-mapping> <listener>
<listener-class>
com.example.BeerSessionCounter
</listener-class>
</listener> </web-app>

最新文章

  1. oracle函数大全(转载)
  2. poj2186Popular Cows(Kosaraju算法--有向图的强连通分量的分解)
  3. Lua基础之Function
  4. Hadoop集群系类文章
  5. Page类成员
  6. Android的图片压缩类ThumbnailUtils
  7. Android Handler Leak
  8. zoj2760(最大流)
  9. [DP优化方法之斜率DP]
  10. Docker + Jenkins 持续部署 ASP.NET Core 项目
  11. CentOS Too Many Open Files 解决
  12. Python内存释放
  13. JavaScript学习-5——异步同步、回调函数
  14. 算法练习LeetCode初级算法之动态规划
  15. Spring学习记录
  16. 百度地图API如何给自定义覆盖物添加事件
  17. [LeetCode] 559. Maximum Depth of N-ary Tree_Easy tag: DFS
  18. xgboost原理及应用--转
  19. 2018.12.31 bzoj3992: [SDOI2015]序列统计(生成函数+ntt+快速幂)
  20. 一张图学dockerfile

热门文章

  1. servelet 连接mysql
  2. java后台如何根据表单中input的顺序获取value值
  3. 用记事本写的java程序引用jar文件
  4. OpenGL ES andoid学习————2
  5. C++ 虚析构(virtual destructor)原理
  6. Laravel5.1 模型 --软删除
  7. Android开发:《Gradle Recipes for Android》阅读笔记(翻译)3.4——Flavor Dimensions
  8. 在Visual Studio 2015的Cordova项目中使用Gulp
  9. sqlserver 脚本和批处理指令小结
  10. jQuery之获取select选中的值