我真的要在应用运行时初始化sessionScope变量。这是正确的方法吗?
//编辑:首先,我想对不可理解的问题感到抱歉。我想要的只是:一个监听器或类似的东西,当应用程序第一次运行时可以监听并创建会话并为其添加属性。
由于
答案 0 :(得分:0)
我每次运行时都会为我的app启动一个sessionScope变量。
为会话创建了sessionScope,因此当您的应用运行会话时,不会创建会话。
你可能想要它的应用范围。
或者如果您希望每次发出请求时都想要处理会话范围,可以使用Filter
答案 1 :(得分:0)
使用jsp:useBean标记spec
如果设置了class属性,那么如果会话范围中没有bean,则会创建它(默认构造函数必须存在)
答案 2 :(得分:0)
@WebListener
public class SessionConfigureListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent event) {
event.getSession().setAttribute("foo", new Foo());
}
@Override
public void sessionDestroyed(HttpSessionEvent event) {
// NOOP.
}
}
就是这样。如果您还没有使用Servlet 3.0(Tomcat 7,Glassfish 3等),那么您需要在<listener>
中将其注册为web.xml
,而不是使用@WebListener
注释。