SpringMVC中拦截器的使用
使用步骤
1. 自定义拦截器类 implements HandlerInterceptor
2. springmvc.xml配置拦截器
controller
package com.codegzy.interceptors;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
Object user = httpServletRequest.getSession().getAttribute("user");
if (user == null) {
httpServletResponse.sendRedirect(httpServletRequest.getContextPath() + "/login.jsp");
return false;
}
//true 放行, false中断请求
return true;
}
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
}
}
springmvc.xml
<!-- 配置拦截器-->
<bean class="com.codegzy.interceptors.MyInterceptor" id="myInterceptor"/>
<mvc:interceptors>
<mvc:interceptor>
<!-- 拦截路径-->
<mvc:mapping path="/*"/>
<!-- 注入拦截器-->
<ref bean="myInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
拦截器执行顺序
1. preHandle
2. controller
3. postHandler
4. afterCompletion