0
我试图使用HttpSessionListener来检查cookie并获取请求的IP地址。HttpSessionListener中的Java Web应用程序HttpServletRequest
但是,我无法访问侦听器中的HttpServletRequest以传递给STKUserCookie或获取IP。
public STKUserCookie(HttpServletRequest request)
public void sessionCreated(HttpSessionEvent se) {
HttpSession httpSes = se.getSession();
if (se.getSession().getAttribute("STKUserSession") == null) {
STKUserCookie userCookie = new STKUserCookie(request); <------- ERROR on this line "request" not available
String userBadge = userCookie.getUserID();
STKUserDAO userDAO = new STKUserDAO();
STKUser user = userDAO.getUser(userBadge);
if (user != null) {
user.setIpAddress(se.getRemoteAddr()); <------- ERROR on this line "getRemoteAddr" not a method of se
userDAO.updateLogin(user);
httpSes.setMaxInactiveInterval(36000); //set to 10 hours
httpSes.setAttribute("STKUserSession", user);
}
}
}
以上曾经是我,包括我所有的JSP页面的小脚本,我试图将它重构为一个倾听者,而不是一个过滤器,因为我只希望它是每个会话调用一次以减少开销。或者我应该不担心开销并将方法粘贴到过滤器中?
SessionListener是错误的地方。把它放在一个过滤器中。该过滤器可以直接影响HttpServeletRequest的处理。 – DwB 2010-12-10 21:52:30