0
HttpSessionListenerを使用してCookieをチェックし、要求のIPアドレスを取得しようとしています。Java WebアプリケーションHttpSessionListenerの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ページに含めたスクリプトレットにするために使用し、私は唯一のそれになりたいので、むしろフィルタよりも、リスナーにそれをリファクタリングしようとしていますオーバーヘッドを減らすためにセッションごとに1回呼び出されます。または、オーバーヘッドについて心配する必要はありませんし、フィルターにメソッドを固執する必要がありますか?
SessionListenerは間違った場所です。それをフィルターに入れてください。フィルターは、HttpServeletRequestの処理に直接影響を与えることができます。 – DwB