SpringMVC配置拦截器实现登录控制的方法

网友投稿 211 2023-05-28


SpringMVC配置拦截器实现登录控制的方法

SpringMVC读取Cookie判断用户是否登录,对每一个action都要进行判断。之前使用jstl标签在页面上判断session如果没有登录就使用如下代码跳转到登录页面。

但是测试发现如果session过期,页面渲染就会无故中断并且不会跳转到登录页面。故尝试使用拦截器来进行登录判断。

拦截器配置文件如下

/login

/static/

拦截器实现类如下

public class LoginInterceptor implements HandlerInterceptor {

private AvatarLogger logger = AvatarLoggerFactory.getLogger(this.getClass());

private List excludedUrls;

/**

* 在DispatcherServlet完全处理完请求后被调用

* 当拦截器抛出异常时,依然会从当前拦截器往回执行所的拦截器的afterCompletion()

*/

public void afterCompletion(HttpServletRequest request,

HttpServletResponse response, Object handler, Exception exception)

throws Exception {

}

//在业务处理器处理请求执行完成后,生成视图之前执行的动作

public void postHandle(HttpServletRequest request, HttpServletResponse response,

Object handler, ModelAndView modelAndView) throws Exception {

}

http://

/**

* 在业务处理器处理请求之前被调用

* 如果返回false 则退出本拦截器,本拦截器后面的postHandle与afterCompletion不再执行

*/

public boolean preHandle(HttpServletRequest request, HttpServletResponse response,

Object handler) throws Exception {

String requestUri = request.getRequestURI();

for (String url : excludedUrls) {

http://if (requestUri.contains(url)) {

return true;

}

}

HttpSession session = request.getSession();

Boolean login = (Boolean) session.getAttribute("login");

if (login == null || !login) {

//System.out.println(request.getContextPath());

logger.info("Pedirect to login page");

response.sendRedirect(request.getContextPath() + "/login");

}

return true;

}

public void setExcludedUrls(List excludedUrls) {

this.excludedUrls = excludedUrls;

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java Exception 捕获和显示实例详解
下一篇:整理关于Bootstrap过渡动画的慕课笔记
相关文章

 发表评论

暂时没有评论,来抢沙发吧~