我正在使用帶有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」的價值。