Сохранение объектов сеанса в файлах cookie с помощью Struts2 - PullRequest
3 голосов
/ 28 июля 2011

Есть ли простой способ сохранить мои объекты сеанса в куки вместо этого в памяти с Struts2?

Спасибо

1 Ответ

2 голосов
/ 28 июля 2011

Вы можете попытаться установить нужное вам значение для файлов cookie, а затем прочитать его с помощью перехватчика или действия, в зависимости от того, что вам нужно.Вот как я устанавливаю куки в Struts2.

Метод setCookie, когда параметры передают ответ, имя куки, значение куки и период

ответ:

HttpServletResponse response = (HttpServletResponse) 
ActionContext.getContext().get(ServletActionContext.HTTP_RESPONSE);

и точка, что-то вроде этого: 60 * 60 * 24 * 365 (для года)

public static void setCookie(HttpServletResponse response, String name, String value, int period) {

    try {

        Cookie div = new Cookie(name, value);
        div.setMaxAge(60 * 60 * 24 * 365); // Make the cookie last a year
        response.addCookie(div);

    } catch (Exception e) {
        Logger.getLogger(StrutsUtils.class.getName()).log(Level.INFO, "message", e);
    }
}

Метод getCookie в качестве параметров передает объект запроса и имя файла cookie

request:

HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);


public static String getCookie(HttpServletRequest request, String name) {

    String value = null;

    try {

        for (Cookie c : request.getCookies()) {
            if (c.getName().equals(name)) {
                value = c.getValue();
            }
        }

    } catch (Exception e) {
        Logger.getLogger(StrutsUtils.class.getName()).log(Level.INFO, "message", e);
    }

    return value;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...