首页 > 代码库 > SpringMVC 简单拦截器配置
SpringMVC 简单拦截器配置
拦截器的目的就是:用户所属的session不存在后进行对控制器请求的拦截,使跳转到首页或者登陆页面。
1、首先在web.xml中配置dispatcher-servlet.xml 。代码中对应的<servlet-name>中的dispatcher 映射的就是dispatcher-servlet.xml文件
<servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <!-- springmvc 请求后缀 --> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>*.do</url-pattern><!-- 拦截所有以.do结尾的请求,交于DispatcherServlet处理 --> </servlet-mapping>
2、在dispatcher-servlet.xml 文件中配置拦截器需要拦截的目录,其中处理拦截的具体实现类的在第三步新建,对应的包路径需要修改。
<!-- 配置拦截器 --> <mvc:interceptors> <mvc:interceptor> <!-- 拦截器拦截的URL格式 --> <mvc:mapping path="/*.do" /> <!-- 拦截器不拦截的controller --> <mvc:exclude-mapping path="/toLogin.do"/> <mvc:exclude-mapping path="/login.do"/> <!-- 处理拦截的具体实现类 --> <bean class="com.springmvc.interceptor.LoginInterceptor" /> </mvc:interceptor> </mvc:interceptors>
3、新建拦截器具体实现类,注意拦截器的具体实现类继承自类HandlerInterceptorAdapter。
preHandle->postHandle->afterCompletion,这三个方法是依次执行的
public class LoginInterceptor extends HandlerInterceptorAdapter { // 继承HandlerInterceptorAdapter类 // 重写 preHandle()方法,在业务处理器处理请求之前对该请求进行拦截处理 @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { UserModal user = (UserModal) request.getSession().getAttribute("userInfo"); if(user == null){ response.sendRedirect("/toLogin.do"); return false; } return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object o, ModelAndView mav) throws Exception { System.out.println("----------postHandle"); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object o, Exception excptn) throws Exception { } }
4、拦截器的基本配置基本配置完成,然后自己写个简单的controller和jsp登录映射验证即可。
SpringMVC 简单拦截器配置
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。