每次JSP应用程序运行时都会初始化一个sessionScope变量

时间:2011-11-01 07:39:50

标签: java jsp servlets

我真的要在应用运行时初始化sessionScope变量。这是正确的方法吗?

//编辑:首先,我想对不可理解的问题感到抱歉。我想要的只是:一个监听器或类似的东西,当应用程序第一次运行时可以监听并创建会话并为其添加属性。

由于

3 个答案:

答案 0 :(得分:0)

  

我每次运行时都会为我的app启动一个sessionScope变量。

为会话创建了sessionScope,因此当您的应用运行会话时,不会创建会话。

你可能想要它的应用范围。

或者如果您希望每次发出请求时都想要处理会话范围,可以使用Filter

来完成

答案 1 :(得分:0)

使用jsp:useBean标记spec

如果设置了class属性,那么如果会话范围中没有bean,则会创建它(默认构造函数必须存在)

答案 2 :(得分:0)

实施HttpSessionListener

@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注释。