public String logout(){
getSession().remove(currentUser());
ServletActionContext.getRequest().getSession().invalidate();
return "log_out";
}
当用户登陆后把登陆对象放到了session中,当用户点击注销时!到达登陆页面!
但是!用户安全的注销后,到达登陆页面只要按一下backspace时又会回到管理页面!
还可以做操作!只是没有这个对象了报了一个java.lang.NullPointerException!
我使用是struts2!
getSession().remove(currentUser());
ServletActionContext.getRequest().getSession().invalidate();
return "log_out";
}
当用户登陆后把登陆对象放到了session中,当用户点击注销时!到达登陆页面!
但是!用户安全的注销后,到达登陆页面只要按一下backspace时又会回到管理页面!
还可以做操作!只是没有这个对象了报了一个java.lang.NullPointerException!
我使用是struts2!
。 而不是简单把里面的认证删除就可以了的
可能是current()为null
你注销的时候,就删除当前用户的key,如用户的id或name
你是怎么设置session就是怎么删除的
session.setAttribute("user", User);
session.removeAttribute("user")
User user=hibernate.load(User.class,login_id);
session.setAttribute("login_user",user);但currentUser()返回的应该是User吧
所以你应该
session.remove(currentUser().getId());
不对哦
你session.invalidate()了。。session应该没了吧。
報NULL異常是因為你去session裡面的用戶信息的值時 session被釋放了 所以取出來是NULL
2.用interceptor
<package name="basePackage" extends="struts-default" abstract="true">
<interceptors>
<!-- 用户登录 -->
<interceptor name="userInterceptor" class="xxxx.SysUserInterceptor"/>
</interceptors>将必须登录后才能操作的 package继承basePackage, 问题解决