JavaWeb开发技术学习笔记(十)——Session绑定解绑,活化钝化

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>

猜你喜欢

转载自blog.csdn.net/MACRosshaha/article/details/105871138
今日推荐