SpringBoot学习之路:09.Spring Boot中添加Filter应用

news/2024/7/1 2:32:12

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

     上篇文章中说了SpringBoot中是如何使用servlet的,本文将讲解在SpringBoot中对过滤器Filter的实现

一.编写MyFilter实现Filter接口

package com.maxbill.core.webbox.filter;import org.apache.log4j.Logger;import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;/*** @功能 自定义过滤器* @作者 zuoshuai(MaxBill)* @日期 2017/7/6* @时间 15:18* @备注 MyFilter*/
public class MyFilter implements Filter {Logger log = Logger.getLogger(MyFilter.class);@Overridepublic void init(FilterConfig config) throws ServletException {log.info(">>>>>>>>>过滤器初始化>>>>>>>>>");}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {log.info(">>>>>>>>>执行过滤操作>>>>>>>>>");chain.doFilter(request, response);}@Overridepublic void destroy() {log.info(">>>>>>>>>过滤器销毁>>>>>>>>>");}}

二.增加注解

1.过滤器增加@WebFilter注解,使能够被扫描到

@WebFilter(filterName = "myFilter", urlPatterns = "/*")
public class MyFilter implements Filter {Logger log = Logger.getLogger(MyFilter.class);@Overridepublic void init(FilterConfig config) throws ServletException {log.info(">>>>>>>>>过滤器初始化>>>>>>>>>");}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {log.info(">>>>>>>>>执行过滤操作>>>>>>>>>");chain.doFilter(request, response);}@Overridepublic void destroy() {log.info(">>>>>>>>>过滤器销毁>>>>>>>>>");}}

2.启动类增加@ServletComponentScan注解,扫描项目中的filter

package com.maxbill;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;@ServletComponentScan
@SpringBootApplication
public class MaxbillApplication {public static void main(String[] args) {SpringApplication.run(MaxbillApplication.class, args);}}

启动项目测试:

INFO com.maxbill.core.webbox.filter.MyFilter:23 - >>>>>>>>>过滤器初始化>>>>>>>>>

INFO com.maxbill.core.webbox.filter.MyFilter:29 - >>>>>>>>>执行过滤操作>>>>>>>>>

转载于:https://my.oschina.net/zss1993/blog/1189254


http://lihuaxi.xjx100.cn/news/241471.html

相关文章

计算机网络中的协议数据单元的控制信息主要包括哪些内容

在计算机网络的数据传输过程中会对数据进行封装,俗称加头(链路层还会加尾),增加的控制信息主要包括以下内容: 地址(Address):用来标识发送端或接收端差错检测编码(Error-detecting code):用于差错检测或纠正协议控制(…

“”开天眼“”,天地分割效果

每日一句:Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. (源于:nodejs的官网) 翻译:nodejs使用了事件驱动,非阻塞I/o的模型,这些模型是的它运行起来轻便而且有效率…

云计算为企业实现业务成果开辟了新的机遇

如今,云计算已经成为科技行业的一个重要的话题,且被视为一个IT服务关键的交付机制。而目前的现实是,大多数企业已经在使用某种形式的云计算,因为云计算为企业实现其业务成果开辟了新的机遇。 云计算提供主机服务和部署模型&#x…

mac mysql5.7 my_【mysql】Mac下安装mysql5.7 完整步骤,大坑已解决

最近使用Mac系统,准备搭建一套本地web服务器环境。因为Mac系统自带PHP和apach,但是没有自带mysql,所以要手动去安装mysql,本次安装mysql最新版5.7.17。1.官网下载点击上面的地址,会看到如下图的页面。你可能不知道该下…

(C++)除基取余法:将十进制数转化为Q进制数

所谓基,就是指将要转换成的进制Q。 除基取余的意思就是:每次将待转换数除以Q,然后将得到的余数作为低位存储,而商则继续除以Q并重复上面的操作,直至商0时,将所有位从高到低输出就可以得到Q进制数。 代码实…

微信公众号token 验证

1. 首先给出测试项目的整体目录: 2. CoreServlet类: 当get请求的时候会执行get方法,post请求的时候会执行post方法,分别来处理不同的请求 package com.zjn.servlet;import java.io.IOException; import java.io.PrintWriter;impor…

docker安装mysql5.7_超详细Docker安装Mysql5.7并进行挂载

1、下载mysql 5.7镜像docker pull mysql:5.72、创建mysql容器并启动docker run -d -p 3306:3306 -e MYSQL_USER"ppx" -e MYSQL_PASSWORD"123456" -e MYSQL_ROOT_PASSWORD"123456" --name mysqltest1 mysql:5.7 --character-set-serverutf8 --col…