我正在使用带有Spring插件的Struts2。我想设置一个变量值,它将在所有不同的会话之间共享。它只是一个字符串值,但如果一个会话更改它,我希望更改的值可用于所有会话。
最好的方法是什么?代码示例很棒。
答案 0 :(得分:5)
在Servlet代码中:
Object attr = getServletContext().getAttribute("ATTR_NAME");
// Do something with it and...
getServletContext().setAttribute("ATTR_NAME", attr);
这是通用的Java EE Servlet方式;)
答案 1 :(得分:5)
你可以使用Spring
做这样的事情package mypackage;
import javax.servlet.ServletContext;
import org.springframework.web.context.ServletContextAware;
public class MYDataLoader implements ServletContextAware {
public void setServletContext(ServletContext servletContext) {
servletContext.setAttribute("myKey", value);
}
}
在其余代码中,您只需从request-> session获取servletContext对象,并获取“mykey”的值。