JavaSpringBoot拦截器详解
⽬录
1.拦截器
2.拦截器使⽤
2.1准备⼯作
2.2Controller
2.3Interceptor
2.4Config
2.5测试
2.5.1正常登录
2.5.2⾮正常登录
2.5.3拦截器
3.总结
1.拦截器
在SpringBoot可以可以在以下情况执⾏操作:
在将请求发送到控制器之前在将响应发送给客户端之前
2.拦截器使⽤
下⾯实现⼀简单的登录验证功能。
2.1准备⼯作
Step1:在前端页⾯添加thymeleaf⽀持;
Step2:主要的HTML内容如下:
注意:th:action="@{/SignUp}"中的URL的Controller中定义。
Step3:Config中添加视图控制器,实现WebMvcConfigurer接⼝中的addViewControllers⽅法;
@Override
publicvoidaddViewControllers(ViewControllerRegistryregistry){
wController("/").tViewName("/SignUp");
wController("/").tViewName("/SignUp");
wController("/").tViewName("/SuccessPage");
}
2.2Controller
实现登录的功能最主要的是Controller。在Controller中,为了简单⽅便,我们不⾛数据库,直接利⽤equal⽅法来⽐较参数。
@Controller
publicclassSignUpController{
@RequestMapping("/SignUp")
publicStringSignUp(@RequestParam("email")Stringemail,
@RequestParam("password")Stringpassword,
Modelmodel,
HttpSessionssion){
if(("123@")&&("123456")){
ribute("email",email);
return"SuccessPage";
}el{
ribute("msg","邮箱或密码错误");
return"SignUp";
}
}
}
在前端页⾯插⼊该id为msg的输出信息。
2.3Interceptor
过滤器的实现如下:
publicclassSignUpInterceptorimplementsHandlerInterceptor{
@Override
publicbooleanpreHandle(HttpServletRequestrequest,HttpServletResponrespon,Objecthandler)throwsException{
if(sion().getAttribute("email")==null){
ribute("msg","你没有权限进⼊,请登录");
uestDispatcher("").forward(request,respon);
returnfal;
}el{
returntrue;
}
}
}
2.4Config
Config类实现了WebMvcConfigurer接⼝,添加拦截器需要实现其中addInterceptors⽅法。
addPathPatterns:指在和何处添加拦截器,/**表⽰该路径下的所有⽂件及⼦⽬录的所有⽂件;
excludePathPatterns:表⽰需要排除拦截器的url
@Configuration
publicclassBoot_ConfigimplementsWebMvcConfigurer{
@Override
publicvoidaddInterceptors(InterceptorRegistryregistry){
erceptor(newSignUpInterceptor()).addPathPatterns("/**").
excludePathPatterns("/","/SignUp","/");
}
}
2.5测试
2.5.1正常登录
2.5.2⾮正常登录
2.5.3拦截器
3.总结
SpringBoot是实现的拦截器与SpringMVC是⼀直的,只不过需要在Config中实现了addInterceptors⽅法。
⽂章中⽤到的页⾯放在了下⾯:
input标签实现了简单的验证功能,页⾯预览:
本篇⽂章就到这⾥了,希望能够给你带来帮助,也希望您能够多多关注的更懂欸组长
本文发布于:2022-12-27 20:38:18,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/42503.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |