struts2 拦截器 和session 的存取问题 在线等
我第一个用户登录后,把用户名存到session中, 第一次拦截器中取到的是null ,然后我在用第二个用户登录,在把名字存到session 中,拦截器中取到的是上一次的名字,请问这是为什么,该怎么解决呢? 代码如下
HttpServletRequest request = ServletActionContext.getRequest();
HttpSession session = request.getSession();
session.setAttribute("id", user_id);
session.setAttribute("userName", name);
拦截器中:
ActionContext ctx=invocation.getInvocationContext();
Map session=ctx.getSession();
String name = (String) session.get("userName");
System.out.println(name+"name00000000000");
[解决办法]
session.setAttribute("id", user_id);session.setAttribute("userName", name);
[解决办法]
拦截器在 Action前面执行。
你第一次放对象的时候 ,先执行拦截器 ,此时还没有执行Action ,所以对象并没有放到Session ,所以你得到的为null。
第二次放对象的时候,因为第一次Action已经将对象放到Session了。 所以你取到了对象,并且是第一次放的对象。
[解决办法]