Listener监听器
监听器是servlet规范的一员,和filter一样
它是给予我们java程序员的特殊时机,如果要执行这段代码,你需要想到使用对应的监听器
有servletContext,ContextAttribute,request,requestAttribute等
session和sessionAttribute
监听器都需要webListener注解
attribute监听的是域中数据的变化,只要数据变化,就会执行对应的方法
sessionBinding监听器不需要webListener进行注解,它是给我们的类用于实现的
假设一个类实现了该监听器,那么这个对象在被放入或是取出域的时候都会执行方法
bind绑定和unbind解绑
Listener监听器
监听器是servlet规范的一员,和filter一样
它是给予我们java程序员的特殊时机,如果要执行这段代码,你需要想到使用对应的监听器
有servletContext,ContextAttribute,request,requestAttribute等
session和sessionAttribute
监听器都需要webListener注解
attribute监听的是域中数据的变化,只要数据变化,就会执行对应的方法
sessionBinding监听器不需要webListener进行注解,它是给我们的类用于实现的
假设一个类实现了该监听器,那么这个对象在被放入或是取出域的时候都会执行方法
bind绑定和unbind解绑
package com.bjpowernode.oa.listener;
import com.bjpowernode.oa.Pojo.User;
import com.bjpowernode.oa.Pojo.User1;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import java.io.IOException;
@WebServlet("/session/bind")
public class HttpSessionBindingListener extends HttpServlet
{
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取session对象
HttpSession session = request.getSession();
//准备个对象
User user = new User("1","jack","123");
User1 user1 = new User1("2","rose","123");
session.setAttribute("user",user);
session.setAttribute("user1",user1);
}
}
package com.bjpowernode.oa.listener;
import com.bjpowernode.oa.Pojo.User;
import com.bjpowernode.oa.Pojo.User1;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import java.io.IOException;
@WebServlet("/session/bind")
public class HttpSessionBindingListener extends HttpServlet
{
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取session对象
HttpSession session = request.getSession();
//准备个对象
User user = new User("1","jack","123");
User1 user1 = new User1("2","rose","123");
session.setAttribute("user",user);
session.setAttribute("user1",user1);
}
}
package com.bjpowernode.oa.listener;
import jakarta.servlet.annotation.WebListener;
import jakarta.servlet.http.HttpSessionAttributeListener;
import jakarta.servlet.http.HttpSessionBindingEvent;
@WebListener
public class MyHttpAttListener implements HttpSessionAttributeListener
{
@Override
public void attributeAdded(HttpSessionBindingEvent se) {
System.out.println("session存档");
}
@Override
public void attributeRemoved(HttpSessionBindingEvent se) {
System.out.println("session移除");
}
@Override
public void attributeReplaced(HttpSessionBindingEvent se) {
System.out.println("session替换");
}
}
package com.bjpowernode.oa.listener;
import jakarta.servlet.annotation.WebListener;
import jakarta.servlet.http.HttpSessionAttributeListener;
import jakarta.servlet.http.HttpSessionBindingEvent;
@WebListener
public class MyHttpAttListener implements HttpSessionAttributeListener
{
@Override
public void attributeAdded(HttpSessionBindingEvent se) {
System.out.println("session存档");
}
@Override
public void attributeRemoved(HttpSessionBindingEvent se) {
System.out.println("session移除");
}
@Override
public void attributeReplaced(HttpSessionBindingEvent se) {
System.out.println("session替换");
}
}
package com.bjpowernode.oa.listener;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import java.io.IOException;
@WebServlet("/L/L")
public class SessionC extends HttpServlet
{
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession(false);
session.setAttribute("123","123");
session.setAttribute("123","123");
session.removeAttribute("123");
}
}
package com.bjpowernode.oa.listener;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import java.io.IOException;
@WebServlet("/L/L")
public class SessionC extends HttpServlet
{
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession(false);
session.setAttribute("123","123");
session.setAttribute("123","123");
session.removeAttribute("123");
}
}
package com.bjpowernode.oa.Pojo;
import jakarta.servlet.http.HttpSessionBindingEvent;
import jakarta.servlet.http.HttpSessionBindingListener;
public class User implements HttpSessionBindingListener
{
private String usercode;
private String username;
private String password;
@Override
public void valueBound(HttpSessionBindingEvent event) {
System.out.println("数据绑定");
}
@Override
public void valueUnbound(HttpSessionBindingEvent event) {
System.out.println("数据解绑");
}
public String getUsercode() {
return usercode;
}
public void setUsercode(String usercode) {
this.usercode = usercode;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public User() {
}
public User(String usercode, String username, String password) {
this.usercode = usercode;
this.username = username;
this.password = password;
}
}
package com.bjpowernode.oa.Pojo;
import jakarta.servlet.http.HttpSessionBindingEvent;
import jakarta.servlet.http.HttpSessionBindingListener;
public class User implements HttpSessionBindingListener
{
private String usercode;
private String username;
private String password;
@Override
public void valueBound(HttpSessionBindingEvent event) {
System.out.println("数据绑定");
}
@Override
public void valueUnbound(HttpSessionBindingEvent event) {
System.out.println("数据解绑");
}
public String getUsercode() {
return usercode;
}
public void setUsercode(String usercode) {
this.usercode = usercode;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public User() {
}
public User(String usercode, String username, String password) {
this.usercode = usercode;
this.username = username;
this.password = password;
}
}
package com.bjpowernode.oa.Pojo;
public class User1
{
private String usercode;
private String username;
private String password;
public String getUsercode() {
return usercode;
}
public void setUsercode(String usercode) {
this.usercode = usercode;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public User1() {
}
public User1(String usercode, String username, String password) {
this.usercode = usercode;
this.username = username;
this.password = password;
}
}
package com.bjpowernode.oa.Pojo;
public class User1
{
private String usercode;
private String username;
private String password;
public String getUsercode() {
return usercode;
}
public void setUsercode(String usercode) {
this.usercode = usercode;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public User1() {
}
public User1(String usercode, String username, String password) {
this.usercode = usercode;
this.username = username;
this.password = password;
}
}