大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 JavaWeb過濾器Filter的介紹

JavaWeb過濾器Filter的介紹

更新時間:2021-09-06 11:27:26 來源:動力節點 瀏覽1077次

Filter簡介

過濾器是處在客戶端和服務器資源之間的一到過濾網,我們可以根據具體的需求來對請求頭和數據就行預處理,也可以對響應頭和和數據進行后處理。例如Jsp, Servlet, 靜態圖片文件或靜態html文件等進行攔截,從而實現一些特殊的功能。例如實現URL級別的權限訪問控制、過濾敏感詞匯、壓縮響應信息等一些高級功能。

Filter的工作原理

服務器的servlet容器接收到客戶端發送的請求后,服務器的servlet容器根據web.xml配置文件中配置的Filter攔截客戶端發送request,檢查客戶端request,如果不滿足過濾要求,Filter攔截對應request;如果滿足過濾要求,則在Filter中調用doFilter方法,執行request并對request進行處理并產生response,服務器將response發送給客戶端之前,Filter會攔截response是否滿足過濾要求,如果不滿足,Filter會攔截response;如果滿足過濾要求,則將response響應給客戶端。

Filter的生命周期

1.初始化(init):filter的創建和銷毀都是有服務器負責的。服務器啟動的時候,web服務器創建Filter的實例對象,并調用其init方法,完成對象的初始化功能。filter對象只會創建一次,init方法也只會執行一次。

2.運行(doFilter):攔截到請求時,執行doFilter方法。可以執行多次。

3.銷毀(destroy):服務器關閉時,web服務器銷毀Filter的實例對象。

Filter的使用

1.過濾器的快速入門

(1)定義一個類,實現接口Filter,并復寫Filter接口doFilter方法

package com.wedu.demo.servlet;
import javax.servlet.*;
import java.io.IOException;
/**
 * 過濾器快速入門
 */
public class FilterDemo implements Filter { public void init(FilterConfig config) throws ServletException { } public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException { System.out.println("doFilter方法執行……"); chain.doFilter(req, resp); } public void destroy() { }
}

(2)配置攔截路徑

以web.xml配置

   filter com.wedu.demo.servlet.FilterDemo   filter /*    hello 
com.wedu.demo.servlet.HelloServlet   hello /hello 

使用注解的方式配置攔截路徑

2.過濾器的配置詳解

(1)配置攔截路徑具體資源路徑:只有訪問指定的資源時,過濾器才會被執行,如:/index.jsp

攔截目錄:訪問目錄下的所有資源時,過濾器都會被執行,如:/user/*

后綴名攔截:訪問所有指定后綴名的資源時,過濾器就會被執行,如:*.jsp

攔截所有資源:訪問所有資源時,過濾器都會被執行,如:/*

(2)攔截方式的配置過濾器的四種攔截方式:REQUEST(默認的)、FORWARD、INCLUDE、ERROR。REQUEST:直接訪問目標資源時執行過濾器 。包括:在地址欄中直接訪問、表單提交、超鏈接、重定向,只要在地址欄中可以看到目標資源的路徑,就是REQUEST;

FORWARD:轉發訪問執行過濾器。包括:RequestDispatcher#forward()方法、標簽都是轉發訪問;

INCLUDE:包含訪問執行過濾器。包括:RequestDispatcher#include()方法、標簽都是包含訪問;

ERROR:當目標資源在web.xml中配置為中時,并且真的出現異常,轉發到目標資源時,會執行過濾器;

使用web.xml方式配置:

filter com.wedu.demo.servlet.FilterDemo
 filter /*  FORWARD REQUEST

使用注解的方式配置:

package com.wedu.demo.servlet;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
/**
 * 過濾器的攔截方式配置
 */
@WebFilter(value = "/*",dispatcherTypes = {DispatcherType.FORWARD,DispatcherType.REQUEST})
public class FilterDemo implements Filter { public void init(FilterConfig config) throws ServletException { } public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException { System.out.println("FilterDemo……"); chain.doFilter(req, resp); } public void destroy() { }
}

(3)多個過濾器的配置方式

web.xml配置

 filter1 com.wedu.demo.servlet.FilterDemo
 filter1 /*
 filter2 com.wedu.demo.servlet.FilterDemo
 filter2 /*

注意:執行順序根據定義,誰定義在上面誰先先執行。

注解方式配置

在定義的每個過濾器上面加上對應的注解即可。

注意:執行的順序按照類名的字符串比較規則比較,值小的先執行。

以上就是動力節點小編介紹的"JavaWeb過濾器Filter的介紹",希望對大家有幫助,想了解更多可查看JavaWeb教程。動力節點在線學習教程,針對沒有任何Java基礎的讀者學習,讓你從入門到精通,主要介紹了一些Java基礎的核心知識,讓同學們更好更方便的學習和了解Java編程,感興趣的同學可以關注一下。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 久久久噜噜噜久噜久久 | 国产精品不卡在线 | 久久免费香蕉视频 | 另类久久 | 亚洲日产综合欧美一区二区 | 五月天婷婷免费视频观看 | 亚洲精品久久麻豆蜜桃 | 正在播放亚洲 | 欧美成人国产一区二区 | 亚洲欧美综合国产精品一区 | 亚洲视频国产视频 | 国产乳摇福利视频在线观看 | 四虎2022 | 全部免费毛片在线 | 一区二区3区免费视频 | 国产大片在线观看 | 一级无毛片 | 中文字幕亚洲综合久久菠萝蜜 | 老司机永久免费网站在线观看 | 人人爱天天做夜夜爽88 | 久久国产亚洲精品 | 国产人做人爱视频精品 | 美国毛片一级视频在线aa | 久久中文字幕不卡一二区 | 性色va| 国产另类图片 | 精品一区二区乱码久久乱码 | 久久精品国产一区二区三区不卡 | 免费国产一区 | 99热久久这里只有精品首页 | 韩国精品一区二区久久 | 人人鲁免费播放视频人人香蕉 | 国产精品片 | 青草久草视频 | 99久久免费看精品国产一区 | 国产精品久久久精品视频 | 久草热久 | 国内精品视频一区二区三区八戒 | 亚洲欧美精品日韩欧美 | 欧美国产成人一区二区三区 | 成人久久网站 |