步骤一:创建拦截器类
首先,我们需要创建一个拦截器类,该类需要实现HandlerInterceptor
接口。这个接口定义了三个方法,分别在请求处理前、请求处理后和视图渲染后执行。
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 request, HttpServletResponse response, Object handler) throws Exception {
// 在请求处理前执行,返回true表示继续执行后续操作,返回false表示终止执行
System.out.println("拦截器:请求处理前");
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
// 在请求处理后执行,但在视图渲染前执行
System.out.println("拦截器:请求处理后");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
// 在整个请求处理完毕后执行,包括视图渲染完毕
System.out.println("拦截器:请求完成");
}
}
步骤二:创建配置类
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public class MyInterceptorConfig extends WebMvcConfigurerAdapter {
@Bean
public MyInterceptor myInterceptor() {
return new MyInterceptor();
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 注册拦截器并指定拦截路径
registry.addInterceptor(myInterceptor()).addPathPatterns("/secured/**");
}
}
上述配置类使用了@Configuration
注解,表示这是一个配置类。通过@Bean
注解将MyInterceptor
注册为一个Bean,并在addInterceptors
方法中配置拦截器的路径。
步骤三:应用示例
接下来,让我们创建一个简单的Controller,以及一个包含拦截逻辑的方法。文章来源:https://www.toymoban.com/news/detail-795764.html
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class MyController {
@RequestMapping("/secured/hello")
@ResponseBody
public String securedHello() {
return "Hello from secured endpoint!";
}
}
步骤四:测试
现在,当我们访问 “/secured/hello” 路径时,拦截器的逻辑将会执行。文章来源地址https://www.toymoban.com/news/detail-795764.html
到了这里,关于SpringMVC中拦截器的简单使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!