springboot拦截html页面元素,Spring Boot 中如何使用拦截器(十五)
关于拦截器,大家一定都不陌生,spring boot 中是如何使用拦截器的呢?今天就举个例子,来给大家说明一下,废话不多说,开始撸代码!!!
1、创建一个新的spring boot项目,并引入相应的jar,pom文件如下:
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.quick
quick-intercprot
0.0.1-SNAPSHOT
jar
quick-intercprot
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
2.0.3.RELEASE
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-starter-thymeleaf
org.springframework.boot
spring-boot-maven-plugin
2、编写HandlerInterceptor
public class TestInterceptor extends HandlerInterceptorAdapter{
private static final String username="wang";
private static final String pwd="123";
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
System.out.println("preHandle start...");
String usernameParam = request.getParameter("username");
String pwdParam = request.getParameter("pwd");
if(!StringUtils.isEmpty(usernameParam)&&!StringUtils.isEmpty(pwdParam)){
if(username.equals(usernameParam)&&pwdParam.equals(pwd)){
System.out.println("TRUE");
return Boolean.TRUE;
}else {
System.out.println("FALSE");
response.sendRedirect(request.getContextPath()+"/index/errorIndex");
return Boolean.FALSE;
}
}else {
return Boolean.TRUE;
}
}
}
我们创建一个名为TestInterceptor的拦截器并继承HandlerInterceptorAdapter,实现HandlerInterceptorAdapter抽象类中的preHandle方法。此处我们模拟一个登陆请求的拦截,当账号密码正确时拦截器返回true并跳转到相应的页面,如果账号密码错误,重定向到一个错误页面。
3、编写拦截器配置
@Configuration
public class InterceptorConfig extends WebMvcConfigurationSupport {
@Override
protected void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new TestInterceptor()).addPathPatterns("/test/**");
super.addInterceptors(registry);
}
}
由于我使用的springboot是2.0.3.RELEASE,2.0以后的版本需要继承WebMvcConfigurationSupport ,如果你使用的是2.0以下的版本请继承WebMvcConfigurerAdapter,此处做了一个请求的拦截,只有/test/**的请求才会被拦截到。
4、编写测试Controller,此处我们需要写三个Controller
此方法为模拟的登陆请求的方法
@RestController
@RequestMapping("/test")
public class TestController {
@RequestMapping("/t")
public String test(String username,String pwd){
return "success";
}
}
此方法主要是为了模拟拦截器是否能够拦截特定的请求路径,故将请求写为/test2/**
@RestController
@RequestMapping("/test2")
public class Test2Controller {
@RequestMapping("/t")
public String test(String param){
return "success";
}
}
此方法主要是为了当账号密码错误时跳转错误页面
@Controller
@RequestMapping("/index")
public class IndexController {
@RequestMapping("/errorIndex")
public String index(){
return "errorIndex";
}
}
5、编写错误页面errorIndex.html
Title
login error,账号或者密码错误
6、启动项目,测试拦截器是否起效
因为密码错误,请求跳转到了错误页面
密码拦截器生效,下面我们测试一下固定请求拦截是否生效,我们请求一下路径http://localhost:8080/test2/t?param=123 效果如下图:
ok拦截器没有拦截/test2/**的请求,实验成功
我们来总结一下
编写HandlerInterceptor继承HandlerInterceptorAdapter实现preHandle方法
编写拦截器配置继承WebMvcConfigurationSupport实现addInterceptors方法
springboot拦截html页面元素,Spring Boot 中如何使用拦截器(十五)相关推荐
- springboot 分页查询参数_10. Spring Boot 中的分页查询
在Spring Boot中使用分页查询主要依赖了org.springframework.data.domain.*包下面的及格分页类的功能.使用分页查询常见有两种方式,一种是直接在程序中写死分页的参数 ...
- 如何把网上下载的前端页面在Spring Boot中跑起来(CSS,JavaScript,程序运行等路径设置)
这个功能非常有用,估计99.99%的java web开发者都干过,本人是初学者,特写这个博客记录下! 方便本人以后查阅,方便以后进行投机取巧 这里使用thymeleaf模板引擎! 在网上下载了一个Bo ...
- springboot mysql事物_在Spring Boot中使用数据库事务
关于数据库访问还有一个核心操作那就是事务的处理了,前面两篇博客小伙伴们已经见识到Spring Boot带给我们的巨大便利了,其实不用猜,我们也知道Spring Boot在数据库事务处理问题上也给我们带 ...
- springboot异步注解_Spring Boot 2 :Spring Boot 中的响应式编程和 WebFlux 入门
[小宅按]Spring 5.0 中发布了重量级组件 Webflux,拉起了响应式编程的规模使用序幕. WebFlux 使用的场景是异步非阻塞的,使用 Webflux 作为系统解决方案,在大多数场景下可 ...
- springboot(三):Spring boot中Redis的使用
转自www.ityouknow.com spring boot对常用的数据库支持外,对nosql 数据库也进行了封装自动化. redis介绍 Redis是目前业界使用最广泛的内存数据存储.相比memc ...
- Spring Boot中防表单重复提交以及拦截器登录检测
目录 理论 演示 源码 理论 在用户登录后,如果按F5刷新会出现表单重复提交的问题,解决这个问题后,如果没有拦截器登录检测,就会造成,任意用户可以登录后台界面,所以要有拦截器登录检测. 相关的逻辑步骤 ...
- SpringBoot精通系列-Spring Boot中如何配置Https
导语 Https作为一个比较安全的协议,现在已经越来越普及了,特别是在完成小程序或者是公众号开发的时候,https基本上都是刚需了.但是一个HTTPS的证书是比较费钱的事情,个人开发者可以通过云 ...
- springboot怎么返回404_Spring Boot2 系列教程(十三)Spring Boot 中的全局异常处理
在 Spring Boot 项目中 ,异常统一处理,可以使用 Spring 中 @ControllerAdvice 来统一处理,也可以自己来定义异常处理方案.Spring Boot 中,对异常的处理有 ...
- springboot 读取配置文件_使用 @ConfigurationProperties 在 Spring Boot 中加载配置
本文地址: 使用 @ConfigurationProperties 在 Spring Boot 中加载配置 使用 Spring Boot 加载配置文件的配置非常便利,我们只需要使用一些注解配置一下就能 ...
最新文章
- LINQ TO XML练习
- 计算机视觉开源库OpenCV绘制轮廓,并将轮廓排序~
- AI基础:一文看懂BERT
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1075:药房管理
- Sublime Text 3配置与vim模式(待完整)
- windows下文件系统格式介绍
- Jquery插件 bootstrap-datepicker 日期拾取器
- python win32api键盘_Python win32api.keybd_event模拟键盘输入
- cocos2dx android studio 打包总结
- 如何修复Win10下的 flashplayer?
- Quantum LeaPs 例程之Blinky
- 新闻丨5G牌照发布,智链万源携手动物健康与食品安全创新联盟在农业领域先声夺人...
- Spatial-Spectral Transformer for Hyperspectral Image Classification_外文翻译
- CISCO CDP邻居发现协议
- 万维网服务器如何发送文档,服务器配置和管理教学讲义(39页)-原创力文档
- b站选择HTML5播放器,b站用什么播放器看片好?选择硬解还是软解?看本地视频首选哪一个?...
- 使用脚本自动创建AD中的层次化结构容器及对象
- 三星r381刷android wea,三星Gear 2 Neo R381怎么样
- mysql sql按小时统计_sqlserver/mysql按天、按小时、按分钟统计连续时间段数据
- 记一次计算机课作文,记一次难熬的课作文600字
热门文章
- Thinkphp5全新UI手机端威客任务平台源码支持投票任务发布平台源码下载
- “跑”进百亿俱乐部的特步,能追上安踏吗?
- 第10章第12节:使用iSlide的图示库创建漂亮的图文版面 [PowerPoint精美幻灯片实战教程]
- 移动端苹果手机的input框type= number只是唤起数字键盘 不能阻止输入汉字和字母
- 北京故宫暴雨中未积水 600年排水系统经受考验
- arduino使用 iic协议控制16路pmw板的扩展
- 3D引擎 知识 问题
- cmd 窗口无法使用 pip 命令
- 深圳一名程序员因跳槽违反《竞业协议》,赔偿腾讯 97.6 万元。。
- Stapler-1靶场详细教学(7种漏洞利用+5种提权)