SpringBoot過(guò)濾器的使用
一、什么是過(guò)濾器
過(guò)濾器是對(duì)數(shù)據(jù)進(jìn)行過(guò)濾,預(yù)處理過(guò)程,當(dāng)我們?cè)L問(wèn)網(wǎng)站時(shí),有時(shí)候會(huì)發(fā)布一些敏感信息,發(fā)完以后有的會(huì)用*替代,還有就是登陸權(quán)限控制等,一個(gè)資源,沒(méi)有經(jīng)過(guò)授權(quán),肯定是不能讓用戶隨便訪問(wèn)的,這個(gè)時(shí)候,也可以用到過(guò)濾器。過(guò)濾器的功能還有很多,例如實(shí)現(xiàn)URL級(jí)別的權(quán)限控制、壓縮響應(yīng)信息、編碼格式等等。
過(guò)濾器依賴servlet容器。在實(shí)現(xiàn)上基于函數(shù)回調(diào),可以對(duì)幾乎所有請(qǐng)求進(jìn)行過(guò)濾。
二、過(guò)濾器的使用
下面簡(jiǎn)單的說(shuō)說(shuō)Spring Boot里面如何增加過(guò)濾器。
過(guò)濾器使用實(shí)例:具體示例代碼如下:
package com.rongrong.wiki.filter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
@Component
public class LogFilter implements Filter {
private static final Logger LOG = LoggerFactory.getLogger(LogFilter.class);
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
// 打印請(qǐng)求信息
HttpServletRequest request = (HttpServletRequest) servletRequest;
LOG.info("------------- LogFilter 開(kāi)始 -------------");
LOG.info("請(qǐng)求地址: {} {}", request.getRequestURL().toString(), request.getMethod());
LOG.info("遠(yuǎn)程地址: {}", request.getRemoteAddr());
long startTime = System.currentTimeMillis();
filterChain.doFilter(servletRequest, servletResponse);
LOG.info("------------- LogFilter 結(jié)束 耗時(shí):{} ms -------------", System.currentTimeMillis() - startTime);
}
/**
* 在銷毀Filter時(shí)自動(dòng)調(diào)用。
*/
@Override
public void destroy() {
System.out.println("我是過(guò)濾器的被銷毀時(shí)調(diào)用的方法!,活不下去了................" );
}
}
過(guò)濾器里面的三個(gè)方法:
init:filter對(duì)象只會(huì)創(chuàng)建一次,init方法也只會(huì)執(zhí)行一次。doFilter: 主要的業(yè)務(wù)代碼編寫(xiě)方法,可以多次重復(fù)調(diào)用destroy: 在銷毀Filter時(shí)自動(dòng)調(diào)用(程序關(guān)閉或者主動(dòng)銷毀Filter)。
三、測(cè)試結(jié)果
重新啟動(dòng)服務(wù),刷新頁(yè)面,查看結(jié)果如下圖:

到此這篇關(guān)于SpringBoot過(guò)濾器的使用的文章就介紹到這了,更多相關(guān)SpringBoot過(guò)濾器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot中shiro過(guò)濾器的重寫(xiě)與配置詳解
- springboot整合過(guò)濾器實(shí)戰(zhàn)步驟
- Springboot如何設(shè)置過(guò)濾器及重復(fù)讀取request里的body
- springboot整合shiro與自定義過(guò)濾器的全過(guò)程
- springboot自定義過(guò)濾器的方法
- springboot中使用過(guò)濾器,jsoup過(guò)濾XSS腳本詳解
- SpringBoot 過(guò)濾器與攔截器實(shí)例演示
- Springboot詳解如何實(shí)現(xiàn)SQL注入過(guò)濾器過(guò)程
相關(guān)文章
Spring的事件機(jī)制知識(shí)點(diǎn)詳解及實(shí)例分析
在本篇內(nèi)容里小編給大家分享的是一篇關(guān)于Spring的事件機(jī)制知識(shí)點(diǎn)詳解及實(shí)例分析,有需要的朋友么可以參考下。2021-12-12
SpringBoot調(diào)用DeepSeek?API的完整操作指南
這篇文章主要為大家詳細(xì)介紹了SpringBoot調(diào)用DeepSeek?API的完整操作指南,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-02-02
Spring 實(shí)現(xiàn)excel及pdf導(dǎo)出表格示例
本篇文章主要介紹了Spring 實(shí)現(xiàn)excel及pdf導(dǎo)出表格示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03
Java concurrency之互斥鎖_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
本文通過(guò)示例代碼給大家介紹了Java concurrency之互斥鎖的相關(guān)知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-06-06
詳解Java8如何使用Lambda表達(dá)式進(jìn)行比較
Lambda表達(dá)式,也可稱為閉包,是java8的新特性,作用是取代大部分內(nèi)部類,優(yōu)化java代碼結(jié)構(gòu),讓代碼變得更加簡(jiǎn)潔緊湊。本文將利用Lambda表達(dá)式進(jìn)行排序比較,需要的可以參考一下2022-01-01
Java Morris遍歷算法及其在二叉樹(shù)中的應(yīng)用
Morris遍歷是一種基于線索二叉樹(shù)的遍歷算法,可以在不使用?;蜻f歸的情況下,實(shí)現(xiàn)二叉樹(shù)的前序、中序和后序遍歷。該算法利用二叉樹(shù)中的空指針或線索指針,將遍歷序列嵌入到原二叉樹(shù)中,實(shí)現(xiàn)了常數(shù)級(jí)別的空間復(fù)雜度,適用于對(duì)空間要求較高的場(chǎng)景2023-04-04
Hadoop源碼分析四遠(yuǎn)程debug調(diào)試
本篇是Hadoop源碼分析系列文章第四篇,主要介紹一下Hadoop的遠(yuǎn)程debug調(diào)試步驟,后續(xù)本系列文章會(huì)持續(xù)更新,有需要的朋友可以借鑒參考下2021-09-09
Java實(shí)現(xiàn)簡(jiǎn)單酒店管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)單酒店管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05

