我正在编写一个在会话范围内使用JSP usebean标记的Web应用程序,如下所示

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


我还编写了一个过滤器,该过滤器进行了一些处理,并且需要在userSession bean上设置一些值。如何获得对象上的手柄并为其设置值?我试图从会话中获取对象,如下所示,但是此方法不起作用。

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


我使用Tomcat进行开发。

最佳答案

如果为null(始终在第一个请求上),那么您只需要自己预先创建即可。

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

09-10 15:54