1 2 import java.io.IOException; 3 4 import javax.servlet.ServletException; 5 import javax.servlet.annotation.WebServlet; 6 import javax.servlet.http.HttpServlet; 7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.http.HttpServletResponse; 9 10 import javax.servlet.http.HttpSession; 11 import javax.servlet.http.HttpSessionAttributeListener; 12 import javax.servlet.http.HttpSessionBindingEvent; 13 import javax.servlet.http.HttpSessionEvent; 14 import javax.servlet.http.HttpSessionIdListener; 15 import javax.servlet.http.HttpSessionListener; 16 17 @WebServlet(urlPatterns = "/") 18 public class app extends HttpServlet implements 19 HttpSessionListener, 20 HttpSessionIdListener, 21 HttpSessionAttributeListener 22 { 23 private static String session_created = ""; 24 private static String session_destroyed = ""; 25 private static String session_id_changed = ""; 26 private static String attribute_added = ""; 27 private static String attribute_removed = ""; 28 private static String attribute_replaced = ""; 29 30 @Override sessionCreated(HttpSessionEvent se)31 public void sessionCreated(HttpSessionEvent se) 32 { 33 session_created += se.getSession().getId(); 34 } 35 36 @Override sessionDestroyed(HttpSessionEvent se)37 public void sessionDestroyed(HttpSessionEvent se) 38 { 39 session_destroyed += se.getSession().getId(); 40 } 41 42 @Override sessionIdChanged(HttpSessionEvent event, String oldId)43 public void sessionIdChanged(HttpSessionEvent event, String oldId) 44 { 45 session_id_changed += " " + oldId + "->" + event.getSession().getId(); 46 } 47 48 @Override attributeAdded(HttpSessionBindingEvent event)49 public void attributeAdded(HttpSessionBindingEvent event) 50 { 51 attribute_added += event.getName() + "=" + event.getValue(); 52 } 53 54 @Override attributeRemoved(HttpSessionBindingEvent event)55 public void attributeRemoved(HttpSessionBindingEvent event) 56 { 57 attribute_removed += event.getName() + "=" + event.getValue(); 58 } 59 60 @Override attributeReplaced(HttpSessionBindingEvent event)61 public void attributeReplaced(HttpSessionBindingEvent event) 62 { 63 attribute_replaced += event.getName() + "=" + event.getValue(); 64 } 65 66 @Override doGet(HttpServletRequest request, HttpServletResponse response)67 public void doGet(HttpServletRequest request, HttpServletResponse response) 68 throws IOException, ServletException 69 { 70 HttpSession s = request.getSession(); 71 s.setAttribute("var1", request.getParameter("var1")); 72 73 response.addHeader("X-Session-Id", s.getId()); 74 response.addHeader("X-Session-Created", session_created); 75 response.addHeader("X-Session-Destroyed", session_destroyed); 76 response.addHeader("X-Attr-Added", attribute_added); 77 response.addHeader("X-Attr-Removed", attribute_removed); 78 response.addHeader("X-Attr-Replaced", attribute_replaced); 79 } 80 } 81