如何使用java servlet在HttpSession中保护会话变量

时间:2014-05-17 04:07:31

标签: java session servlets web

我认为应该有一种方法在纯java Servlet中设置具有已定义范围的会话变量,而不使用其他库,如jsf或springframework,以便可以限制会话变量的可见性。

public void doGet(HttpServletRequest request, HttpServletResponse response) {
    HttpSession session = request.getSession();
    String userId = (String)request.getAttribute("userId");
    session.setAttribute("userId", userId);
}

我找到了ServletContext

ServletContext context = request.getSession().getServletContext();
context.setAttribute("userId", userId);

但是这个似乎没有提供会话范围的灵活性。

1 个答案:

答案 0 :(得分:1)

你找到了。设置会话属性。会话属性的范围是会话的范围,该会话是单个用户。

portlet作用域只控制属性是局限于当前portlet还是对所有portlet可见。它仍然在用户会话中。如果您需要实现那个功能,只需将Map绑定到portlet名称下的会话中,并使每个portlet看起来都在自己的Map.

中。

如果设置了上下文属性,则所有用户都可以看到它。