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