您可以添加过滤器来打印会话属性的列表,以Log4J的是这样的:
public class SessionAttributesLoggingFilter implements Filter {
private Logger log = Logger.getLogger(this.getClass());
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
if (request instanceof HttpServletRequest) {
HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpSession session = httpRequest.getSession();
Enumeration<String> sessionAttributeNames = session.getAttributeNames();
log.info("Session attributes before request ----------------------->");
while (sessionAttributeNames.hasMoreElements()) {
String attr = sessionAttributeNames.nextElement();
log.info(" "+attr + " = " + session.getAttribute(attr));
}
chain.doFilter(request, response);
sessionAttributeNames = session.getAttributeNames();
log.info("Session attributes after request ----------------------->");
while (sessionAttributeNames.hasMoreElements()) {
String attr = sessionAttributeNames.nextElement();
log.info(" "+attr + " = " + session.getAttribute(attr));
}
} else {
chain.doFilter(request, response);
}
}
public void init(FilterConfig arg0) throws ServletException {
log.info("Logging session attributes ...");
}
public void destroy() {}
}
不是添加映射到web.xml并重新启动应用程序:
<filter>
<filter-name>sessionLogging</filter-name>
<filter-class>PACKAGENAME.SessionAttributesLoggingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>sessionLogging</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>