Frage

Ich versuche, eine zu verwenden Httpsessionlistener für einen Cookie zu überprüfen und die IP-Adresse des Antrags erhalten.

Allerdings habe ich keinen Zugriff auf die HttpServletRequest in dem Hörer STKUserCookie zu passieren oder die IP zu erhalten.

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);
        }

    }
}

Die oben verwendete ein scriptlet zu sein, dass ich in allen meinen jsp Seiten wurde inklusive und ich versuche, es in einen Zuhörer, Refactoring, sondern als ein Filter, da ich es nur will aufgerufen werden einmal pro Sitzung Aufwand zu verringern. Oder sollte ich dir keine Sorgen über den Overhead und kleben Sie das Verfahren in einen Filter ??

War es hilfreich?

Lösung

Don't worry about the overhead of a no-op filter. It is negligible.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top