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

到此這篇關(guān)于SpringBoot過濾器的使用的文章就介紹到這了,更多相關(guān)SpringBoot過濾器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
面試官:java ThreadLocal真的會造成內(nèi)存泄露嗎
ThreadLocal,java面試過程中的“釘子戶”,在網(wǎng)上也充斥著各種有關(guān)ThreadLocal內(nèi)存泄露的問題,本文換個角度,先思考ThreadLocal體系中的ThreadLocalMap為什么要設(shè)計成弱引用2021-08-08
利用Maven實現(xiàn)將代碼打包成第三方公共jar包
在項目開發(fā)過程中,我們經(jīng)常需要將一些公共方法提取出來,然后單獨封裝成一個第三方公共jar包,采用普通的方式打包后的jar,依賴的工程執(zhí)行編譯時,卻提示找不到對應的依賴包,那么如何將工程打包為可執(zhí)行jar包呢?下面向大家分享三種方法2022-10-10
hadoop運行java程序(jar包)并運行時動態(tài)指定參數(shù)
這篇文章主要介紹了hadoop如何運行java程序(jar包)并運行時動態(tài)指定參數(shù),使用hadoop 運行 java jar包,Main函數(shù)一定要加上全限定類名,需要的朋友可以參考下2021-06-06

