赞
踩
拦截器是SpringMVC中一种对象,能够拦截对Controller的请求
拦截器框架中有系统的拦截器,还可以自定义拦截器,实现对请求的预先处理
复习:在SpringMVC中实现一个自定义拦截器:
1.创建类实现SpringMVC框架的HandlerInterceptor接口,重写接口的方法实现操作
2.需要在SpringMVC的配置文件中,声明拦截器
学习:在SpringBoot中使用拦截器
创建类实现SpringMVC框架的HandlerInterceptor接口,重写接口的方法实现操作
- package com.ys.web;
-
- import org.springframework.web.servlet.HandlerInterceptor;
-
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
-
- public class Login implements HandlerInterceptor {
- /**
- * request、response可以给值 request.setAttribute();
- * handler 被拦截器拦截的对象
- * return : true请求可以通过能被controller处理
- * false 请求不能通过,被拦截
- * */
- @Override
- public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
- System.out.println("经过了拦截器");
- return false;
- }
- }
创建一个类声明拦截器,使用@Configuration
- package com.ys.config;
-
- import com.ys.web.Login;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.web.servlet.HandlerInterceptor;
- import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
- import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-
- @Configuration//将文件作为Spring配置文件
- //WebMvcConfigurer接口有许多和SpringMVC有关的操作
- public class LoginConfig implements WebMvcConfigurer {
-
- // 添加拦截器对象,注入容器
- @Override
- public void addInterceptors(InterceptorRegistry registry) {
- // 创建拦截器对象 使用接口创建实现类
- HandlerInterceptor interceptor=new Login();
- // addInterceptor注入拦截器对象 addPathPatterns()拦截对象 excludePathPatterns()不拦截对象
- // 使用数组存放地址
- String path []={"/user/**"};//被拦截的地址
- String exclude []={"/user/login"};//不被拦截的地址(当拦截和不拦截都包括地址时,以不拦截为最终结果)
- registry.addInterceptor(interceptor).
- addPathPatterns(path).
- excludePathPatterns(exclude);
- }
- }
测试拦截器是否生效,创建一个controller
package com.ys.controller
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。