Java 使用Struts2将会话对象保存在Cookie中
是否有一种简单的方法可以将会话对象存储在cookies中,而不是使用Struts2存储在内存中Java 使用Struts2将会话对象保存在Cookie中,java,session,cookies,struts2,Java,Session,Cookies,Struts2,是否有一种简单的方法可以将会话对象存储在cookies中,而不是使用Struts2存储在内存中 谢谢您可以尝试将您需要的值设置为cookies,然后您可以根据需要使用拦截器或操作来读取它。下面是我如何在Struts2中设置cookies的 setCookie方法,作为参数传递响应、cookie名称、cookie值和周期 答复: HttpServletResponse response = (HttpServletResponse) ActionContext.getContext().get(
谢谢您可以尝试将您需要的值设置为cookies,然后您可以根据需要使用拦截器或操作来读取它。下面是我如何在Struts2中设置cookies的 setCookie方法,作为参数传递响应、cookie名称、cookie值和周期 答复:
HttpServletResponse response = (HttpServletResponse)
ActionContext.getContext().get(ServletActionContext.HTTP_RESPONSE);
这段时间,大概是这样的:
60*60*24*365(一年)
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;
}
不是真的。cookie数据是有限制的,因此您无法在cookie中存储太多数据。如果您正在谈论存储简单数据,如字符串、数字、布尔值或其他简单类型,那么cookie将起作用,但如果您要将复杂对象序列化为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;
}