最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot如何配置Filter過濾器

 更新時間:2023年12月11日 14:25:02   作者:小布的世界  
這篇文章主要介紹了springboot如何配置Filter過濾器問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

springboot配置Filter過濾器

Filter 過濾器是web開發(fā)中很重要的一個組件,下面以一個session登陸的例子介紹下spring boot中如何使用Filter

首先要準備一個實現(xiàn)了Filter的接口的類

SessionFilter:

import org.slf4j.LoggerFactory;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Created by mazhenhua on 2016/12/27.
 *
 * 過濾器
 */
public class SessionFilter implements Filter {
    private static final org.slf4j.Logger logger = LoggerFactory.getLogger(SessionFilter.class);


    /**
     * 封裝,不需要過濾的list列表
     */
    protected static List<Pattern> patterns = new ArrayList<Pattern>();

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest httpRequest = (HttpServletRequest) servletRequest;
        HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;
        logger.info("aaaaaaaaaa");
        String url = httpRequest.getRequestURI().substring(httpRequest.getContextPath().length());
        if (url.startsWith("/") && url.length() > 1) {
            url = url.substring(1);
        }

        if (isInclude(url)){
            chain.doFilter(httpRequest, httpResponse);
            return;
        } else {
            HttpSession session = httpRequest.getSession();
            if (session.getAttribute("") != null){
                // session存在
                chain.doFilter(httpRequest, httpResponse);
                return;
            } else {
                // session不存在 準備跳轉失敗
                /* RequestDispatcher dispatcher = request.getRequestDispatcher(path);
                    dispatcher.forward(request, response);*/
                chain.doFilter(httpRequest, httpResponse);
                return;
            }
        }


    }

    @Override
    public void destroy() {

    }


    /**
     * 是否需要過濾
     * @param url
     * @return
     */
    private boolean isInclude(String url) {
        for (Pattern pattern : patterns) {
            Matcher matcher = pattern.matcher(url);
            if (matcher.matches()) {
                return true;
            }
        }
        return false;
    }

}

實際開發(fā)中往往有很多請求要直接請求進來

不需要鑒權登陸的,所以代碼中過濾掉這種請求的代碼,裝進list就好了。

    /**
     * 配置過濾器
     * @return
     */
    @Bean
    public FilterRegistrationBean someFilterRegistration() {
        FilterRegistrationBean registration = new FilterRegistrationBean();
        registration.setFilter(sessionFilter());
        registration.addUrlPatterns("/*");
        registration.addInitParameter("paramName", "paramValue");
        registration.setName("sessionFilter");
        return registration;
    }

    /**
     * 創(chuàng)建一個bean
     * @return
     */
    @Bean(name = "sessionFilter")
    public Filter sessionFilter() {
        return new SessionFilter();
    }

經過上面這倆步的配置,過濾器基本上就可以了。

配置多個filter,并指定順序,請參考: spring boot filter 配置多個時,執(zhí)行順序

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • spring 自定義讓@Value被解析到

    spring 自定義讓@Value被解析到

    這篇文章主要介紹了spring 自定義讓@Value被解析到,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • SpringBoot?實現(xiàn)流控的操作方法

    SpringBoot?實現(xiàn)流控的操作方法

    本文介紹了限流算法的基本概念和常見的限流算法,包括計數(shù)器算法、漏桶算法和令牌桶算法,還介紹了如何在Spring?Boot中使用Guava庫和自定義注解以及AOP實現(xiàn)接口限流功能,感興趣的朋友一起看看吧
    2024-12-12
  • SpringBoot配置文件加載方法詳細講解

    SpringBoot配置文件加載方法詳細講解

    springboot默認讀取的配置文件名字是:“application.properties”和“application.yml”,默認讀取四個位置的文件:根目錄下、根目錄的config目錄下、classpath目錄下、classpath目錄里的config目錄下
    2022-10-10
  • 詳解Struts2動態(tài)方法調用

    詳解Struts2動態(tài)方法調用

    這篇文章主要介紹了詳解Struts2動態(tài)方法調用,涉及調用方法的代碼,具有一定參考價值,需要的朋友可以了解下。
    2017-09-09
  • SpringBoot整合Spring Security實現(xiàn)基礎認證與授權

    SpringBoot整合Spring Security實現(xiàn)基礎認證與授權

    在后端開發(fā)領域,認證(Authentication)?和授權(Authorization)?是系統(tǒng)安全的核心基石,Spring Security 作為 Spring 生態(tài)官方推薦的安全框架,是Java 后端安全開發(fā)的首選方案,本文給大家介紹了SpringBoot整合Spring Security實現(xiàn)基礎認證與授權
    2026-04-04
  • 詳解Java的日期時間新特性

    詳解Java的日期時間新特性

    隨著時間的不斷推移,現(xiàn)實的需求也在不斷更新,原先的一些API已經難以滿足開發(fā)需求了,從JDK?8之后,為了滿足更多的開發(fā)需求,Java給我們增加了不少關于日期時間的新特性,接下來就帶各位來看看這些新特性有哪些,需要的朋友可以參考下
    2023-06-06
  • Java實現(xiàn)給PDF文件增加背景圖的操作指南

    Java實現(xiàn)給PDF文件增加背景圖的操作指南

    本文介紹了如何在Java中生成PDF文件并為其添加背景圖,通過兩種不同的方式實現(xiàn):一種使用了iText庫,另一種使用了PdfBox庫,這兩種方法都可以實現(xiàn)將背景圖片添加到PDF文件中,并且可以根據(jù)項目需求選擇合適的方法,需要的朋友可以參考下
    2025-11-11
  • 如何為?Spring?Boot?項目配置?Logback?日志

    如何為?Spring?Boot?項目配置?Logback?日志

    由于?Spring?Boot?的默認日志框架選用的?Logback,再加上?Log4j2?之前爆過嚴重的漏洞,所以我們這次就只關注?Logback,本文重點給大家介紹如何為?Spring?Boot?項目配置?Logback?日志,感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • 解決因缺少Log4j依賴導致應用啟動失敗的問題

    解決因缺少Log4j依賴導致應用啟動失敗的問題

    日志是應用軟件中不可缺少的部分,Apache的開源項目log4j是一個功能強大的日志組件,提供方便的日志記錄。但這篇文章不是介紹Log4j,這篇文章主要介紹了關于因缺少Log4j依賴導致應用啟動失敗問題的相關資料,需要的朋友可以參考下。
    2017-04-04
  • SpringBoot+SpringCache實現(xiàn)兩級緩存(Redis+Caffeine)

    SpringBoot+SpringCache實現(xiàn)兩級緩存(Redis+Caffeine)

    這篇文章主要介紹了SpringBoot+SpringCache實現(xiàn)兩級緩存(Redis+Caffeine),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04

最新評論

东兴市| 巫山县| 区。| 阳谷县| 阳谷县| 南平市| 溆浦县| 明水县| 高碑店市| 哈密市| 常山县| 鞍山市| 沧州市| 平乡县| 盐边县| 东兰县| 怀远县| 满城县| 治县。| 双桥区| 宝坻区| 襄垣县| 云林县| 兴海县| 韶山市| 双鸭山市| 嘉荫县| 高安市| 科尔| 江都市| 中西区| 扬州市| 安岳县| 衢州市| 侯马市| 通渭县| 长寿区| 冀州市| 怀安县| 石楼县| 远安县|