实现HttpSessionBindingListener接口
实现此接口类的类,不必在web.xml中进行配置。
实现此接口的类,通常是一个JavaBean,一个JavaBean通过实现此接口,(
Javabean 就是一个类,这个类就定义一系列 get<Name> 和 set<Name> 方法。
Javabean 就是为了和 jsp 页面传数据化简交互过程而产生的。
)可以感知自己是否添加到了Session中。或是感知自己是否从Session中移除。package com.bhkj.ListenerDemo.listener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;
public class User implements HttpSessionBindingListener{
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassowrd() {
return password;
}
public void setPassowrd(String passowrd) {
this.password = passowrd;
}
@Override
public String toString() {
return "User [username=" + username + ", passowrd=" + password + "]";
}
/*
* 绑定和解绑
*/
@Override
public void valueBound(HttpSessionBindingEvent event) {
System.out.println("放到session中了");
}
@Override
public void valueUnbound(HttpSessionBindingEvent event) {
System.out.println("从session中移除了");
}
}
通过valueBound()和valueUnbound()感知session是否存在。然后创建一个servlet容器
package com.bhkj.ListenerDemo.listener.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.bhkj.ListenerDemo.listener.User;
public class HttpSessionBindingListenerServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
User user = new User();
HttpSession session = request.getSession();
session.setAttribute("user", user);
//session.removeAttribute("user");
out.flush();
out.close();
}
}
创建一个session,通过浏览器访问创建好servlet,然后我们就可以在控制台看到输出语句
然后移除session后观察
老师说这让他联想到了机器人,有了人类的感知。。。。。。<-------明明是代码------>