【Head First Servlets and JSP】笔记14:session再探 & Listener示例
2024-09-19 07:14:18
1、session的“增”与“删”——session的创建和撤销的调用主体是服务端。
2、session的“改”——由各个servlet执行
3、那么session的“查找”呢?——依赖于客户端发来的JSESSIONID,以及服务端调用getSession()
4、会话迁移
- 很重要的一句话——“HttpSession只有一个!”不论有多少个VM。
- 迁移的发生:负载平衡服务器接到一个会话id为1的请求,把它交给容器1,结果容器1发现会话id为1的那个session在容器2中,迁移就开始了...
- 迁移的意味:在起点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>
最新文章
- oracle函数大全(转载)
- poj2186Popular Cows(Kosaraju算法--有向图的强连通分量的分解)
- Lua基础之Function
- Hadoop集群系类文章
- Page类成员
- Android的图片压缩类ThumbnailUtils
- Android Handler Leak
- zoj2760(最大流)
- [DP优化方法之斜率DP]
- Docker + Jenkins 持续部署 ASP.NET Core 项目
- CentOS Too Many Open Files 解决
- Python内存释放
- JavaScript学习-5——异步同步、回调函数
- 算法练习LeetCode初级算法之动态规划
- Spring学习记录
- 百度地图API如何给自定义覆盖物添加事件
- [LeetCode] 559. Maximum Depth of N-ary Tree_Easy tag: DFS
- xgboost原理及应用--转
- 2018.12.31 bzoj3992: [SDOI2015]序列统计(生成函数+ntt+快速幂)
- 一张图学dockerfile
热门文章
- servelet 连接mysql
- java后台如何根据表单中input的顺序获取value值
- 用记事本写的java程序引用jar文件
- OpenGL ES andoid学习————2
- C++ 虚析构(virtual destructor)原理
- Laravel5.1 模型 --软删除
- Android开发:《Gradle Recipes for Android》阅读笔记(翻译)3.4——Flavor Dimensions
- 在Visual Studio 2015的Cordova项目中使用Gulp
- sqlserver 脚本和批处理指令小结
- jQuery之获取select选中的值