第五篇:Spring Boot整合filter

一、Springboot整合Servlet

第一种方案:通过注解扫描完成filter组建的注册

  • 1、编写自定义filter(FirstFilter)
//urlPattern是一个数组可以添加多个
//@WebFilter(filterName = "FirstFilter",urlPatterns = {"*.do","*.jsp"})
@WebFilter(filterName = "FirstFilter", urlPatterns = {"/first"})
public class FirstFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {System.out.println("进入filter");
//        //放行chain.doFilter(request, response);System.out.println("离开filter");}@Overridepublic void destroy() {}
}
  • 2、创建servlet(测试用)
@WebServlet(name = "FirstServlet",urlPatterns = "/first")
public class FirstServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("FirstServlet启动........");}
}
  • 3、编写一个启动类,并在启动类上添加注解
@SpringBootApplication
@ServletComponentScan
//在springboot启动时会扫描@Webfilter注解和@webFilter注解,并将该类实例化
public class SpringBootChapter1Application {public static void main(String[] args) {SpringApplication.run(SpringBootChapter1Application.class, args);}}
  • 4、启动项目及浏览器验证:http://localhost:8080/first
  • 5、查看控制台
    在这里插入图片描述

第二种方案:通过方法完成filter组件注册

  • 1、编写一个自定义的filter
public class SecondFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {System.out.println("进入SecondFilter");//放行chain.doFilter(request, response);System.out.println("离开SecondFilter");}@Overridepublic void destroy() {}
}
  • 2、创建一个servlet(测试用)
public class SecondServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("SecondServlet启动........");}
}
  • 3、创建一个启动类
/*** @author gblfy* @ClassNme AppFilter2* @Description springboot整合filter方式2* @Date 2019/2/20 13:45* @version1.0*/
@SpringBootApplication
public class SpringbootFilterApplication2 {public static void main(String[] args) {SpringApplication.run(SpringbootFilterApplication2.class, args);}//    注册servlet@Beanpublic ServletRegistrationBean getServletRegistrationBean() {ServletRegistrationBean bean = new ServletRegistrationBean(new SecondServlet());bean.addUrlMappings("/second");return bean;}//    注册filter@Beanpublic FilterRegistrationBean getFilterRegistrationBean() {FilterRegistrationBean bean = new FilterRegistrationBean(new SecondFilter());
//        bean.addUrlPatterns(new String[]{"*.do","*.jsp"});bean.addUrlPatterns("/second");return bean;}
}
  • 4、启动项目及浏览器验证:http://localhost:8080/second

  • 5、查看控制台
    在这里插入图片描述

本文源码下载:

github地址:
https://github.com/gb-heima/Spring-Boot-Actual-Combat/tree/master/parent/spring-boot-chapter-5

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/524244.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C/C++ 一个整数,它加上 100 后是一个完全平方数,再加上 168 又是一个完全平方数,请问该数是多少?

目录 一.结果演示二.源代码三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 面向对象 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 设计模式 零基础 C/C 学习路线推荐 : C/C 学习目录…

QtCreate由MinGW编译的项目,换为MSVC编译器后编译无法通过

解决方法: 1.将文件的编码格式设置为utf-8且BOM格式; 2.在.pro文件中添加如下代码 msvc { QMAKE_CFLAGS /utf-8 QMAKE_CXXFLAGS /utf-8 } 其中方法一没有试过,我用的是方法二,可以编译通过。 还有一种方法: 在头文件…

微服务精华问答:什么是微服务架构中的DRY?| 技术头条

微服务(Microservice Architecture)是近几年流行的一种架构思想,关于它的概念很难一言以蔽之。 究竟什么是微服务呢?今天就让我们一探究竟。1Q:什么是微服务架构中的DRY?A:DRY代表不要重复自己。它基本上促进了重用代码的概念。这导致开发和…

第六篇:Spring Boot 访问静态资源

Spring Boot的默认静态资源的路径为: spring.resources.static-locationsclasspath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/ 优先级从从高到低 一、Spring Boot 访问静态资源有二种方案 第一种方案(默认&…

C/C++ 输入某年某月某日,判断这一天是这一年的第几天?

目录 一.结果演示二.源代码三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 面向对象 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 设计模式 零基础 C/C 学习路线推荐 : C/C 学习目录…

QT中DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x80040216 ()问题的解决

亲身经历此问题的困惑后,第二次遇到该问题,实在忍不住想把这个解决方法写下来,愿对和我一样遇到该问题的人有所帮助。 至于Qt产生该问题的原因,网上众说纷云,但都是一样的,说是缺少一个视频解码器。造成的现…

成为最大的独立开源公司,对SUSE意味着什么? | 人物志

戳蓝字“CSDN云计算”关注我们哦!极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!作者:孙浩峰如果你在科技展会上看到了一只可爱的绿色小蜥蜴&#x…

第七篇:Spring Boot 整合_Thymeleaf 入门试炼 QuickStart

1.1 添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency><groupId>org.springframework.boot</groupId><artifactId&…

移动场景在其缩略图中显示场景中所显示的区域

需求描述 在场景中实现拖动&#xff0c;缩放&#xff0c;并在场景的缩略图中显示其对应在视口中显示的矩形区域。 程序效果图如下&#xff1a; 开发环境&#xff1a;Qt 5.13.1 编译环境&#xff1a;MinGW64 项目结构&#xff1a; 直接上程序: main.cpp #include "dial…

Intellij Idea: Thymeleaf 命名空间th报错

在Intellij Idea下使用Thymeleaf时&#xff0c;会报th命名空间不存在的错误&#xff0c;如th:href。 <!DOCTYPE html> <html> <head><title>Hello</title><meta http-equiv"Content-Type" content"text/html; charsetUTF-8&q…

那些中国式家庭的小烦恼,我看用AI来解决就“都挺好” | 技术头条

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;转自&#xff1a;趣味科技v今天&#xff0c;又是《都挺好》全面承包热搜的一天。自从这…

penGL ES 2.0 和 3.0区别

目录 一.嵌入式设备的 OpenGL ES 版本二.兼容性三.着色器脚本 1.OpenGL ES shader 2.02.OpenGL ES shader 3.03.版本声明4. 默认精度修饰符 precision4.输入输出5.变量赋值 四.关于顶点缓冲区对象 VBO 与顶点数组对象 VAO五.PBO六.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : O…

setGeometry: Unable to set geometry 493x379+674+326 (frame: 517x443+662+274) on QWidgetWindow/“Dialo

qt编译的过程中出现问题&#xff1a;setGeometry: Unable to set geometry 493x379674326 (frame: 517x443662274) on QWidgetWindow/“DialogWindow” on “\.\DISPLAY1”. Resulting geometry: 555x452674326 (frame: 579x516662274) margins: 12, 52, 12, 12 minimum size: …

使用thymeleaf的时候报元素类型“meta“必须由匹配的结束标记

使用thymeleaf的时候报元素类型"meta"必须由匹配的结束标记""终止> 解决方案有二种&#xff1a; 第一种&#xff1a; 让html的标记严格严谨的语法&#xff1a; 加上结束标签第一种&#xff1a;&#xff1a;修改thymeleaf版本 <thymeleaf.version…

漫话:如何给女朋友解释什么是系统可用性? | 技术头条

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;转自&#xff1a;漫话编程在一个阳光明媚的周二下午&#xff0c;我正在公司里面看着即…

基于websocket的简单通信

首次接触websocket通信协议&#xff0c;不足之处希望指出一起进步。 简述 websocket是基于tcp协议的一种网络通信协议&#xff0c;分为客户端和服务端&#xff0c;可以实现客户端与服务端的双向通信。 与tcp的不同之处是&#xff1a; 1.客户端与服务端只需要一次握手协议&…

第七篇:Spring Boot整合Thymeleaf_入门试炼02

Thymeleaf 语法详解&#xff1a; 变量输出与字符串操作 变量输出与字符串操作th:text在页面中输出值 变量输出与字符串操作th:value可以将一个值放入到input标签的value中 判断内容是否为空 thymeleaf内置对象 注意语法&#xff1a; 1.调用内置对象要用#2.大部分的内置对…

OpenGL ES 名词解释(一)

目录 一.前言二.OpenGL ES 上下文三.OpenGL ES 状态机四.缓存五.渲染六.纹理七.光栅化 Rasterization八.片元着色器九.顶点着色器十.着⾊语言 GLSL十一.着色器使用流程十二.着色器的渲染流程十三.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenG…

大龄程序员失业后,看他们是如何破局突围的? | 技术头条

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;作者&#xff1a;逆流的鱼yuiop转自&#xff1a;何俊林王小波在《黄金时代》里写道&am…

qt日志

在程序的运行过程中&#xff0c;debug版的可以调试&#xff0c;查看输出信息&#xff0c;release版的程序在运行过程中一旦出现崩溃等问题&#xff0c;使得无法查看问题发生的点&#xff0c;于是在项目中添加日志&#xff0c;变得极为重要。 此日志可以在程序debug版的时候&…