步骤如下
- 编写拦截器的类
- 在springmvc配置文件中配置拦截器的类
步骤一:编写拦截器的类
public class LoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
// 如果用户没有登录成功,则跳转到登录页面
HttpSession session = httpServletRequest.getSession();
User user = (User) session.getAttribute(Contans.SESSION_USER);
if (user == null){
// 重定向时,url必须加项目的名称
httpServletResponse.sendRedirect(httpServletRequest.getContextPath());
return 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配置文件中配置拦截器
<!-- 配置拦截器 -->
<mvc:interceptors>
<mvc:interceptor>
<!-- 配置拦截的请求,要拦截的类 -->
<mvc:mapping path="/settings/**"/>
<mvc:mapping path="/workbecnch/**"/>
<!-- 配置排除拦截的请求(优先级高) 放行的controller url地址-->
<mvc:exclude-mapping path="/settings/qx/user/toLogin.do"/>
<mvc:exclude-mapping path="/settings/qx/user/login.do"/>
<!-- 配置拦截器的类 -->
<bean class="com.bjpowernode.crm.settings.web.interceptor.LoginInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>