在应用程序范围设置变量,以便在会话中共享

ano*_*non 3 java spring scope struts2

我在Spring插件中使用Struts2.我想设置一个变量值,它将在所有不同的会话之间共享.它只是一个字符串值,但如果一个会话更改它,我希望更改的值可用于所有会话.

最好的方法是什么?代码示例会很棒.

小智 5

http://docs.oracle.com/cd/E17802_01/products/products/servlet/2.3/javadoc/javax/servlet/ServletContext.html

在Servlet代码中:

Object attr = getServletContext().getAttribute("ATTR_NAME");
// Do something with it and...

getServletContext().setAttribute("ATTR_NAME", attr);
Run Code Online (Sandbox Code Playgroud)

这是通用的Java EE Servlet方式;)


Man*_*iya 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);  
    }  
} 
Run Code Online (Sandbox Code Playgroud)

在其余的代码中,您只需从request-> session获取servletContext对象,并获取"mykey"的值.