Вопрос

Я пытаюсь использовать HTTPSESSELLISTENER, чтобы проверить наличие файла cookie и получить IP-адрес запроса.

Однако у меня нет доступа к 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, и я пытаюсь решить его в слушатель, а не фильтр, так как я только хочу, чтобы его называли один раз на сеанс, чтобы уменьшить накладные расходы. Или я не должен беспокоиться о накладных расходах и придерживаться метода в фильтр ??

Это было полезно?

Решение

Не беспокойтесь о накладных расходах фильтра нет. Это незначительно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top