版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Thinkingcao/article/details/84315814
1、自定义拦截器类,实现HandlerInterceptor接口,并重写抽象方法进行拦截器的拦截逻辑
// return true表示放行, return false表示拦截
public class Interceptor1 implements HandlerInterceptor{
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {
log.info("preHandle:请求前调用");
//返回 false 则请求中断
//判断用户是否登陆 如果没有登陆 重定向到登陆页面 不放行 如果登陆了 就放行了
String requestURI = request.getRequestURI();
if(!requestURI.contains("/login")){
String username = (String) request.getSession().getAttribute("USER_SESSION");
if(null == username){
response.sendRedirect(request.getContextPath() + "/login.action");
return false;
}
}
return true;
}
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
throws Exception {
log.info("postHandle:请求后调用");
}
public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
log.info("afterCompletion:请求调用完成后回调方法,即在视图渲染完成后回调");
}
}
2、在springmvc配置文件中进行配置
<!-- Springmvc的拦截器 -->
<mvc:interceptors>
<!-- 多个拦截器 -->
<mvc:interceptor>
<!-- 对什么url路径进行拦截 /**代表对全路径拦截 -->
<mvc:mapping path="/**"/>
<!-- 自定义的拦截器类 -->
<bean class="com.iss.springmvc.interceptor.Interceptor1"/>
</mvc:interceptor>
</mvc:interceptors>