是否有一种简单的方法可以将我的会话对象存储在cookie中而不是使用Struts2存储在内存中?
由于
答案 0 :(得分:2)
您可以尝试设置cookie所需的值,然后根据您的需要,您可以使用Interceptor或Action读取它。以下是我在Struts2中设置cookie的方法。
setCookie方法,作为参数传递响应,cookie名称,cookie值和句点
回复:
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名称
请求:
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;
}