フィルタの使用SpringBootグラフィックチュートリアル6-SpringBoot

空を飛んでの概念は、着陸を達成するために必要です

  • 再びコードとして良い、そして友人としてのコンセプトの10時間は、私はあなたがすべてのテキストのコード例は、再びノックしている置く願っています

  • 初見の後、習慣のように

SpringBootグラフィックチュートリアルシリーズの技術概要

Javaの鹿の教師のメモ
Javaの鹿の教師のメモ

SpringBootグラフィックチュートリアルシリーズのディレクトリ

  1. SpringBootグラフィックチュートリアル1基本の「コンセプト、ケースマインドマップ」「」
  2. 使用SpringBootグラフィックチュートリアル2 - ログ「logback」「のlog4j」
  3. JSPの統合、複雑なSpringBootグラフィックレッスン3「」初恋「」
  4. ファイルのアップロードとダウンロードのためのSpringBootグラフィックチュートリアル4 - SpringBoot
  5. 5-SpringBoot量Aopを使用してSpringBootグラフィックチュートリアル

序文

Javawebフィルタは、サーブレットの一部は非常に基本的な概念です。それはここSpringBootフィルタ構成を使用します。コードは、フィルタであるかを説明するために単純で小さなケースを通じて達成するために前に。

フィルタフィルタの概念:サーブレット技術は、ブラウザから送信されるフィルタの要求に、提供、および要求または割り込み要求をリリースすることを決めました。

  • サーバーへのブラウザ要求は、サーバーは、フィルタに到達するために通過します、
  • ブラウザにサーバーの応答は、フィルターを通過し、最終的にブラウザに対応させていただきます
  • フィルターベースのメカニズム例えば、フィルタにリリースするかどうかを決めることができ、我々はフィルタに要求と応答のいくつかの処理を行うことができます。何のチェック要求に敏感な文字列が存在しない、などの一切のチェックセッションはありません。

栗の場合:

  • 流行の障害物の間に、村の入り口のようなフィルタに関係なく、あなたの村の子供たちの、まだ村の子どもたちのうち、障害物を通過する必要があります

  • ルカのスタッフ(フィルター)は、あなたには、いくつかの「アクション」、体温の量、に関するお問い合わせ、およびあなたのために、その後、いくつかの治療を行うときに、あなたに渡すリリースしたり、後戻りさせます。

フィルタの使用SpringBoot

この記事のすべての内容は、次のデモで動作します。ダウンロードにGitリポジトリを行ってください。gitee.com/bingqilinpe ...

フィルタクラスを作成します。1.

/**
 * @WebFilter时Servlet3.0新增的注解,原先实现过滤器,需要在web.xml中进行配置,而现在通过此注解,启动启动时会自动扫描自动注册。
 *
 * @WebFilter filterName 定义注册的过滤器的名字
 * urlPatterns 定义要拦截所有的请求
 *
 */

@WebFilter(filterName="userFilter",urlPatterns={"/*"})
public class UserFilter implements Filter {
    Logger logger = LoggerFactory.getLogger(UserFilter.class);

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        logger.info("过滤器初始化");
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        logger.info("请求处理");
        HttpServletRequest request = (HttpServletRequest) servletRequest;
        HttpServletResponse response = (HttpServletResponse) servletResponse;
//        简单的session校验
        if (request.getSession().getAttribute("user")!=null) {
            //        请求放行
            filterChain.doFilter(request, response);
        }else {

        }

    }

    @Override
    public void destroy() {
        logger.info("销毁");
    }
}
复制代码

2.SpringBootでフィルタをスキャンします

@WebFilter时Servlet3.0新增的注解,原先实现过滤器,需要在web.xml中进行配置,而现在通过此注解,启动启动时会自动扫描自动注册。

在SpringBoot中配置过滤器扫描只需要在启动类加入@ServletComponentScan注解即可。

3.设置多个过滤器的执行顺序

你一定听过这样的一个词儿:过滤器链路,什么是过滤器链路呢?就是有多个过滤器,就像有多个路卡是一样一样的。当你有多个过滤器之后,就需要规定各个过滤器的指定顺序了。那么怎么指定过滤器的执行顺序呢?

SpringMvc中通过web.xml可以设置

在SpringBoot中可以通过FilterRegistrationBean进行过滤器的注册。

  1. 创建两个Filter类 删除@WebFilter注解即可


  2. 在启动类中通过@Bean的方式配置FilterRegistrationBean

@SpringBootApplication
@ServletComponentScan
public class AppRun {
    public static void main(String[] args) {
        //        参数:启动类类对象 主函数形参名
        SpringApplication.run(AppRun.class,args);
    }

    @Bean
    public FilterRegistrationBean  filterRegistrationBean(UserFilter userFilter) {
        FilterRegistrationBean registration = new FilterRegistrationBean();

        registration.setFilter(userFilter);
        //过滤器名称
        registration.setName("userFilter");
        //拦截路径
        registration.addUrlPatterns("/*");
        //设置顺序
        registration.setOrder(10);
        return registration;
    }


    @Bean
    public FilterRegistrationBean  filterRegistrationBean2(User2Filter user2Filter) {
        FilterRegistrationBean registration = new FilterRegistrationBean();
//        设置过滤器
        registration.setFilter(user2Filter);
        //过滤器名称
        registration.setName("user2Filter");
        //拦截路径
        registration.addUrlPatterns("/*");
        //设置顺序
        registration.setOrder(20);
        return registration;
    }

    @Bean
    public UserFilter userFilter(){
        return new UserFilter();
    }

    @Bean
    public User2Filter user2Filter(){
        return new User2Filter();
    }
}
复制代码

注册多个时,就注册多个FilterRegistrationBean即可。启动之后的效果如下:

总结

以上就是SpringBoot中过滤器的简单使用,本文为基础篇,所以关于过滤器的应用会在后续文章中写出。

恭喜你完成了本章的学习,为你鼓掌!如果本文对你有帮助,请帮忙点赞,评论,转发,这对作者很重要,谢谢。

让我们再次回顾本文的学习目标

  • 掌握SpringBoot中过滤器的使用

要掌握SpringBoot更多的用法,请持续关注本系列教程。

下面体贴的我给朋友萌还准备了一些 自测面试题和项目案例,希望你能够成热打铁,将知识夯扎实。

上期自测面试题答案

见面试题集锦 gitee.com/bingqilinpe…

自测面试题(答案见下期)

上期自测实现项目小案例答案

见码云仓库 gitee.com/bingqilinpe…

自测实现项目小案例(答案见下期)

本次需求:

练习文中demo

求关注,求点赞,求转发

私は、国民の関心番号を歓迎:鹿教師のノートJavaは、Javaテクノロジが長期更新グラフィックのチュートリアルとビデオチュートリアル、Javaの学習経験、Javaのインタビューの経験とJavaでの実践的な開発経験となります。

おすすめ

転載: juejin.im/post/5e54ec29f265da575918d956