引用 1 楼 ch656409110 的回复:
写一个session监听器 实现ServletContextListener,重写sessionDestroyed() 当session后期就去触发该事件 ,然后 在里面做跳转。。。
public class SessionIterceptor extends AbstractInterceptor {
@Autowired UserDao userDao;
@Override
public String intercept(ActionInvocation actionInvocation) throws Exception {
Users u =(Users) ServletActionContext.getRequest().getSession(true).getAttribute(“loginuser”);
if(u==null){
String userName = SecurityUtils.getSubject().getPrincipal().toString();
u = userDao.findUserByName(userName);
ServletActionContext.getRequest().getSession().setAttribute(“loginuser”,u);
}
if (u == null) {
return “globleindexaction”;
} else {
return actionInvocation.invoke();
}
}
}
本文介绍如何编写一个实现了ServletContextListener的SessionInterceptor,通过sessionDestroyed()方法监听会话结束,并在用户未登录时自动从数据库查找并设置用户信息。核心代码展示了如何在ActionInvocation中进行用户身份验证。
916

被折叠的 条评论
为什么被折叠?



