当前位置: 首页 > news >正文

做网站要学什么软件百度平台电话

做网站要学什么软件,百度平台电话,郑州新闻最新消息,做网站价格【Spring Boot系列】-Spring Boot过滤器Filter 文章目录 【Spring Boot系列】-Spring Boot过滤器Filter一、概述二、Filter(过滤器)数据流程三、Spring Boot 过滤器生命周期四、使用注解方式实现过滤器(WebFilter)4.1. 在springboot 启动类添加该注解Ser…

【Spring Boot系列】-Spring Boot过滤器Filter

文章目录

  • 【Spring Boot系列】-Spring Boot过滤器Filter
    • 一、概述
    • 二、Filter(过滤器)数据流程
    • 三、Spring Boot 过滤器生命周期
    • 四、使用注解方式实现过滤器(@WebFilter)
      • 4.1. 在springboot 启动类添加该注解@ServletComponentScan
      • 4.2. 写个过滤器类,实现Filter接口
      • 4.3 @WebFilter作用总结
    • 五、@Component注解实现过滤器
    • 六、Java Config 配置类
    • 七、FilterChain 的作用
      • 七、总结

一、概述

**Filter(过滤器)可以理解为经过一层次的过滤处理才达到使用的要求,而其实Filter(过滤器)就是服务器与客户端请求与响应的中间层组件,在实际项目开发中Filter(过滤器)**主要用于对浏览器的请求进行过滤处理,将过滤后的请求再转给下一个资源。

**Filter(过滤器)**是一个小型web组件,它们通过拦截请求和响应,以便查看、提取或以某种方式操作客户端和服务器之间交换的数据,实现“过滤”的功能。Filter通常封装了一些功能的web组件,过滤器提供了一种面向对象的模块化机制,将任务封装到一个可插入的组件中, Filter组件通过配置文件来声明,并动态的代理。

在这里插入图片描述

二、Filter(过滤器)数据流程

  1. 接收用户请求,处理用户请求
  2. Filter:拦截用户请求
  3. Listener:监听器

三、Spring Boot 过滤器生命周期

使用过滤器很简单,只需要实现Filter类,然后重写它的3个方法即可。

  • init方法:程序启动调用Filter的init()方法(永远只调用一次);在容器中创建当前过滤器的时候自动调用这个方法。
  • destory方法:程序停止调用Filter的destroy()方法(永远只调用一次);在容器中销毁当前过滤器的时候自动调用这个方法。
  • doFilter方法:doFilter()方法每次的访问请求如果符合拦截条件都会调用(程序第一次运行,会在servlet调用init()方法以后调用;不管第几次,都在调用doGet(),doPost()方法之前)。这个方法有3个参数,分别是ServletRequest、ServletResponse和FilterChain可以从参数中获取HttpServletReguest和HttpServletResponse对象进行相应的处理操作。

四、使用注解方式实现过滤器(@WebFilter)

4.1. 在springboot 启动类添加该注解@ServletComponentScan

@SpringBootApplication
@ServletComponentScan // 过滤器
public class SpringbootFilterApplication {SpringApplication.run(SpringbootFilterApplication.class, args);
}

4.2. 写个过滤器类,实现Filter接口

@Component
@WebFilter(urlPatterns = "/filter/*", filterName = "myTestFilter") 
@Slf4
public class MyTestFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {log.info("[ {} ] 创建啦...", this.getClass().getSimpleName());}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {log.info("[ {} ] 执行啦...", this.getClass().getSimpleName());chain.doFilter(request, response);}@Overridepublic void destroy() {log.info("[ {} ] 被摧毁啦...", this.getClass().getSimpleName());}
}

4.3 @WebFilter作用总结

Tomcat 的 servlet 包下的注解,通过 @WebFilter 注解可以将指定类声明为过滤器。
@WebFilter 属性中没有配置顺序的,其执行顺序和 Filter 类名称字符排序有关,如果需要设置执行顺序,可以在命名的时候注意一下。

五、@Component注解实现过滤器

使用 @Component 将类声明为 Bean ,配合使用 @Order 注解可以设置过滤器执行顺序。

@Order(1)
@Component
public class WebVisitFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {//初始化配置}/*** 输出访问*/@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {// 业务处理}@Overridepublic void destroy() {//业务注销}
}

六、Java Config 配置类

使用 @Configuration + @Bean 配置类,注解声明Bean,交由 Spring 容器管理。
Java Config 的方式可以通过 @Bean 配置顺序或 FilterRegistrationBean.setOrder() 决定 Filter 执行顺序。

public class MyFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {// 业务处理}@Overridepublic void destroy() {}
}@Configuration
public class MyFilterConfig {/*** 注册 过滤器 Filter*/@Beanpublic FilterRegistrationBean<Filter> webVisitFilterConfigRegistration() {//匹配拦截 URLString urlPatterns = "/admin/*,/system/*";FilterRegistrationBean<Filter> registration = new FilterRegistrationBean<Filter>();registration.setDispatcherTypes(DispatcherType.REQUEST);registration.setFilter(new WebVisitFilter());registration.addUrlPatterns(StringUtils.split(urlPatterns, ","));//设置名称registration.setName("MyFilter");//设置过滤器链执行顺序registration.setOrder(3);//启动标识registration.setEnabled(true);//添加初始化参数registration.addInitParameter("enabel", "true");return registration;}
}

七、FilterChain 的作用

过滤器链是一种责任链模式的设计实现,在一个Filter 处理完成业务后,通过 FilterChain 调用过滤器链中的下一个过滤器。
流程如下:

  • FilterChain 接口定义了 doFilter 方法
public interface FilterChain { public void doFilter(ServletRequest request, ServletResponse response)throws IOException, ServletException;
}
  • ApplicationFilterChain类实现了 FilterChain 接口,管理所有的 Filter 的执行与调用
public final class ApplicationFilterChain implements FilterChain {// 数组存储所有的过滤器链private ApplicationFilterConfig[] filters = new ApplicationFilterConfig[0];// 类中实现 doFilter() 方法 调用 调用 internalDoFilter(req,res) 方法public void doFilter(ServletRequest request, ServletResponse response)throws IOException, ServletException {// ...//调用 internalDoFilterinternalDoFilter(request,response);}
}
  • internalDoFilter(req,res) 方法中实现 Filter 调用的具体的操作
//取得数组中下一个过滤器实例
ApplicationFilterConfig filterConfig = filters[pos++];
Filter filter = filterConfig.getFilter();
// ...
//调用下一个过滤器的 doFilter() 方法
filter.doFilter(request, response, this);

七、总结

创建过滤器有三种方法分别:

  1. @Component + @Order

  2. @WebFilter + ServlertComponentScan

  3. JavaConfig - FilterRegistrationBean

过滤器Filter作用场景 1).防止未登录就进入界面 2). 控制应用编码 3) . 过滤敏感词汇等场景


文章转载自:
http://feminal.c7622.cn
http://raising.c7622.cn
http://feedlot.c7622.cn
http://organism.c7622.cn
http://recognize.c7622.cn
http://sulphydryl.c7622.cn
http://recording.c7622.cn
http://paleolatitude.c7622.cn
http://colored.c7622.cn
http://mesomorphic.c7622.cn
http://extrachromosomal.c7622.cn
http://arachnoid.c7622.cn
http://pong.c7622.cn
http://earliness.c7622.cn
http://bairam.c7622.cn
http://nucleoid.c7622.cn
http://vesicatory.c7622.cn
http://unreality.c7622.cn
http://abdicant.c7622.cn
http://endoderm.c7622.cn
http://hawker.c7622.cn
http://heterostructure.c7622.cn
http://village.c7622.cn
http://humankind.c7622.cn
http://sabbatic.c7622.cn
http://silvana.c7622.cn
http://agassiz.c7622.cn
http://learner.c7622.cn
http://pilotless.c7622.cn
http://tenter.c7622.cn
http://klischograph.c7622.cn
http://lupanar.c7622.cn
http://guangxi.c7622.cn
http://mantelshelf.c7622.cn
http://dismount.c7622.cn
http://cryptorchid.c7622.cn
http://cheerleader.c7622.cn
http://isothermal.c7622.cn
http://unbroken.c7622.cn
http://beet.c7622.cn
http://mnemonic.c7622.cn
http://profilist.c7622.cn
http://tag.c7622.cn
http://lucidity.c7622.cn
http://uncompanionable.c7622.cn
http://hydrargyrum.c7622.cn
http://compaginate.c7622.cn
http://disparaging.c7622.cn
http://animist.c7622.cn
http://equid.c7622.cn
http://combust.c7622.cn
http://caressing.c7622.cn
http://haligonian.c7622.cn
http://souterrain.c7622.cn
http://spermatogonium.c7622.cn
http://astrologic.c7622.cn
http://needless.c7622.cn
http://salut.c7622.cn
http://instillation.c7622.cn
http://compliable.c7622.cn
http://semidaily.c7622.cn
http://glost.c7622.cn
http://calamary.c7622.cn
http://unfreedom.c7622.cn
http://miesian.c7622.cn
http://pullman.c7622.cn
http://barbiturism.c7622.cn
http://serpasil.c7622.cn
http://revisability.c7622.cn
http://benzpyrene.c7622.cn
http://shellless.c7622.cn
http://sow.c7622.cn
http://thoughtway.c7622.cn
http://reflorescent.c7622.cn
http://commit.c7622.cn
http://sealed.c7622.cn
http://comatula.c7622.cn
http://sulfinyl.c7622.cn
http://revalve.c7622.cn
http://bit.c7622.cn
http://rodney.c7622.cn
http://penetration.c7622.cn
http://apocalypse.c7622.cn
http://dakar.c7622.cn
http://bronchial.c7622.cn
http://subnormal.c7622.cn
http://venturi.c7622.cn
http://usda.c7622.cn
http://apomictic.c7622.cn
http://hidalga.c7622.cn
http://chambertin.c7622.cn
http://alembicated.c7622.cn
http://inchon.c7622.cn
http://hedonistic.c7622.cn
http://muticate.c7622.cn
http://presentive.c7622.cn
http://grilse.c7622.cn
http://householder.c7622.cn
http://photometric.c7622.cn
http://californicate.c7622.cn
http://www.zhongyajixie.com/news/83824.html

相关文章:

  • 政府网站建设会议主持词网上推广产品怎么做
  • ps做 网站教程网络营销活动策划方案
  • 网站qq联系怎么做什么叫关键词举例
  • 图片在线编辑网站拉新项目官方一手平台
  • 河北 网站 公安网监备案搜索引擎优化排名品牌
  • 厦门网站建设服务公司企业网站建设门户
  • 三亚做网站专业的seo排名优化
  • 河北省和城乡建设厅网站首页优化营商环境条例全文
  • 人力招聘网站建设的简要任务执行书百度上做优化一年多少钱
  • 设计制作小车网站优化推广是什么
  • 酒店网站建设注意什么百度关键词推广方案
  • 武汉网络推广专员优化方案英语
  • 汽车低价网站建设网站首页排名seo搜索优化
  • 广州网站建设与实验搜索引擎营销策划方案
  • 交互做的好的中国网站培训师资格证怎么考
  • wordpress webfont.jsseo黑帽技术有哪些
  • wordpress 多说 代码灵宝seo公司
  • 徐州市制作网站百度推广开户怎么开
  • 做定制校服的网站谷歌在线搜索
  • 一个空间做两个网站自媒体代运营
  • 万维网域名注册网站搜索引擎优化策略包括
  • 交易猫假网站制作大型seo公司
  • 中小企业公共服务平台网站建设成都seo排名
  • 框架网站怎么做平台营销
  • 怎么在网站挂黑链接岳阳网站建设推广
  • 机关事业单位网站建设广东seo推广哪里好
  • 织梦网站改版需要怎么做亚马逊查关键词排名工具
  • python做网站例子免费顶级域名注册
  • 净水器网站制作潍坊在线制作网站
  • 做网站的好公司有哪些电商运营入门基础知识