2010-03-03 46 views
1

我写一个使用会话范围内的JSP useBean标签的web应用程序如下图所示我如何从一个servlet

<jsp:useBean id="userSession" class="project.session.UserSession" scope="session" /> 

我也写了一个过滤器,做一些处理设置JSP UseBean的价值观和需要在userSession bean上设置一些值。我如何获得对象的句柄并在其上设置值?我试图从会话中获取对象,如下所示,但此方法不起作用。

UserSession userSession = (UserSession)request.getSession().getAttribute("userSession"); 

我使用Tomcat进行开发。

+0

您的过滤器在JSP执行之前运行。我假设你指的是在你设置它之后访问bean(即另一个请求)。会话是否有效? – 2010-03-03 12:24:12

+0

是会话有效。 – 2010-03-04 06:31:58

回答

2

如果它为空(它总是在第一个请求),那么你只需要自己预先创建它。

UserSession userSession = (UserSession) request.getSession().getAttribute("userSession"); 
if (userSession == null) { 
    userSession = new UserSession(); 
    request.getSession().setAttribute("userSession", userSession); 
} 
userSession.doSomething(); 
+0

尽管对setAttribute进行了一些小改动。我能够通过首先从会话中删除属性,然后添加新创建的会话属性来获得此工作。 – 2010-03-04 06:32:50

相关问题