我认为应该有一种方法在纯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);
但是这个似乎没有提供会话范围的灵活性。
答案 0 :(得分:1)
你找到了。设置会话属性。会话属性的范围是会话的范围,该会话是单个用户。
portlet作用域只控制属性是局限于当前portlet还是对所有portlet可见。它仍然在用户会话中。如果您需要实现那个功能,只需将Map
绑定到portlet名称下的会话中,并使每个portlet看起来都在自己的Map.
如果设置了上下文属性,则所有用户都可以看到它。