随笔都是学习笔记
随笔仅供参考,为避免笔记中可能出现的错误误导他人,请勿转载。
posts - 398,comments - 0,views - 13万

简介:

当javaBean实现了HttpSessionBindingListener接口后,就能自动感知自己是否被添加到session中。并且这个实现不需要在webx.xml中进行注册。

代码实现:

创建User类实现HttpSessionBindingListener接口:

复制代码
package demoListener;

import java.util.Objects;

import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;

public class User implements HttpSessionBindingListener {
    private String username;
    private String passwoed;
    public User() {
        super();
    }
    public User(String username, String passwoed) {
        super();
        this.username = username;
        this.passwoed = passwoed;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPasswoed() {
        return passwoed;
    }
    public void setPasswoed(String passwoed) {
        this.passwoed = passwoed;
    }
    @Override
    public int hashCode() {
        return Objects.hash(passwoed, username);
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        User other = (User) obj;
        return Objects.equals(passwoed, other.passwoed) && Objects.equals(username, other.username);
    }
    @Override
    public String toString() {
        return "User [username=" + username + ", passwoed=" + passwoed + "]";
    }
    @Override
    public void valueBound(HttpSessionBindingEvent event) {
        System.out.println("已绑定!!");
    }
    @Override
    public void valueUnbound(HttpSessionBindingEvent event) {
        System.out.println("已解绑!!");
    }
    
}
复制代码

创建两个JSP页面,一个添加session,一个移除session:

addSession.jsp:

复制代码
<%@page import="demoListener.User"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>title</title>
</head>
<body>
<%
    User user = new User();
    session.setAttribute("user", user);
%>
<h1>添加session的JSP</h1>
</body>
</html>
复制代码

 

removeSession:

复制代码
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>title</title>
</head>
<body>
<%
    session.removeAttribute("user");
%>
<h1>移除session的JSP</h1>
</body>
</html>
复制代码

启动服务器 -- 浏览器先访问addSession,jsp:

 

然后访问removeSession.jsp :

 

查看控制台输出内容:

 

 明显这些内容是javaBean中重写的方法中输出的,那么得以验证,javaBean在实现HttpSessionBindingListener接口后可以自己感知是否被添加进Session中了。

posted on   时间完全不够用啊  阅读(128)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示