简介:
当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中了。
分类:
JavaWeb-Listener
标签:
javaWeb-Listener
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)