我正在使用带有Spring插件的Struts2。我想设置一个变量值,它将在所有不同的会话中共享。它将只是一个字符串值,但如果一个会话改变了它,我希望更改后的值可用于所有会话。在应用程序范围中设置变量,以便在会话中共享
这样做的最好方法是什么?代码示例会很好。
我正在使用带有Spring插件的Struts2。我想设置一个变量值,它将在所有不同的会话中共享。它将只是一个字符串值,但如果一个会话改变了它,我希望更改后的值可用于所有会话。在应用程序范围中设置变量,以便在会话中共享
这样做的最好方法是什么?代码示例会很好。
在Servlet代码:
Object attr = getServletContext().getAttribute("ATTR_NAME");
// Do something with it and...
getServletContext().setAttribute("ATTR_NAME", attr);
这是通用的Java EE Servlet的方式;)
您可以使用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-> sessio中获取servletContext对象n并获得“mykey”的价值。