您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關SpringBoot中如何使用使用Filter過濾器,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
1、引入spring-boot-starter-web
在pom.xml 中引入spring-boot-starter-web包。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
2、建立過濾器程序
@Order(1):表示過濾器的順序,假設我們有多個過濾器,你如何確定過濾器的執行順序?這個注解就是規定過濾器的順序。
@WebFilter:表示這個class是過濾器。
里面的參數,filterName 為過濾器名字,urlPatterns 為過濾器的范圍,initParams 為過濾器初始化參數。
過濾器里面的三個方法
init : filter對象只會創建一次,init方法也只會執行一次。
doFilter : 主要的業務代碼編寫方法,可以多次重復調用
destroy : 在銷毀Filter時自動調用(程序關閉或者主動銷毀Filter)。
@Order(1)@WebFilter(filterName = "piceaFilter", urlPatterns = "/*" , initParams = { @WebInitParam(name = "URL", value = "http://localhost:8080")})public class PiceaFilter implements Filter { private String url; /** * 可以初始化Filter在web.xml里面配置的初始化參數 * filter對象只會創建一次,init方法也只會執行一次。 * @param filterConfig * @throws ServletException */ @Override public void init(FilterConfig filterConfig) throws ServletException { this.url = filterConfig.getInitParameter("URL"); System.out.println("我是過濾器的初始化方法!URL=" + this.url + ",生活開始........."); } /** * 主要的業務代碼編寫方法 * @param servletRequest * @param servletResponse * @param filterChain * @throws IOException * @throws ServletException */ @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { System.out.println("我是過濾器的執行方法,客戶端向Servlet發送的請求被我攔截到了"); filterChain.doFilter(servletRequest, servletResponse); System.out.println("我是過濾器的執行方法,Servlet向客戶端發送的響應被我攔截到了"); } /** * 在銷毀Filter時自動調用。 */ @Override public void destroy() { System.out.println("我是過濾器的被銷毀時調用的方法!,活不下去了................" ); }}
3、建立Contoller類
這個類比較簡單,不做特別說明
@RestControllerpublic class PiceaContoller { @RequestMapping("/query") public void asyncTask() throws Exception { System.out.println("我是控制類里面的方法,我正在思考..............."); }}
4、啟動類中增加注解,自動注冊Filter
@ServletComponentScan :在SpringBootApplication上使用@ServletComponentScan注解后,Servlet、Filter、Listener可以直接通過@WebServlet、@WebFilter、@WebListener注解自動注冊,無需其他代碼。
@SpringBootApplication@ServletComponentScanpublic class SpringBootFiFilterApplication { public static void main(String[] args) { SpringApplication.run(SpringBootFiFilterApplication.class, args); }}
看完上述內容,你們對SpringBoot中如何使用使用Filter過濾器有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。