session对象的四种状态
监听 session对象的绑定、解绑
HttpsessionbindinGlistener不需要配置web.xml
session. setAttribute( a, xxx) 对象a【绑定】到 session中
b. session. removeAttribute(“a”)将对象a从 session中【解绑】
监听 session对象的钝化、活化
HttpsessionactivaTionlistener不需要配置web.xml
C.钝化
d.活化
如何钝化、活化:配置 tomcat安装目录/conf/ context.xml
钝化、活化本质就是序列化、反序列化:序列化、反序列化需要实现 Serializable
总结:钝化、活化实际执行是通过 context.xml中进行配置而进行。
活化: session中获取某一个对象时,如果该对象在内存中不存在,则直接尝试从之前顿化的文件中去获取(活化)
HttpsessionactivaTionlistener只是负责在 sesssion钝化和活化时予以监听。
需要实现 Serializable
session保存目录:D:\Users\MACROSS\IdeaProjects\apache-tomcat\conf\session
BeanListener
package org.student.listener;
import javax.servlet.http.HttpSessionActivationListener;
import javax.servlet.http.HttpSessionEvent;
import java.io.Serializable;
//监听对象的钝化、活化
public class BeanListener implements HttpSessionActivationListener, Serializable {
private int num;
private String user;
public int getNum() {
return num;
}
public String getUser() {
return user;
}
public void setNum(int num) {
this.num = num;
}
public void setUser(String user) {
this.user = user;
}
@Override
public void sessionWillPassivate(HttpSessionEvent httpSessionEvent) {
System.out.println("BeanListener被钝化了");
}
@Override
public void sessionDidActivate(HttpSessionEvent httpSessionEvent) {
System.out.println("BeanListener被活化化了");
}
}
context.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/">
<Manager className="org.apache.catalina.session.PersistentManager" maxIdleSwap="5">
<Store className="org.apache.catalina.session.FileStore" directory="D:\Users\MACROSS\IdeaProjects\apache-tomcat\conf\session" />
</Manager>
</Context>