導航:首頁 > 凈水問答 > web的過濾器和攔截器

web的過濾器和攔截器

發布時間:2022-11-06 16:57:32

『壹』 java web 過濾器跟攔截器的區別和使用

區別如下:

1 、攔截器是基於java的反射機制的,而過濾器是基於函數回調。

2 、攔截器不依賴與servlet容器,過濾器依賴與servlet容器。

3 、攔截器只能對action請求起作用,而過濾器則可以對幾乎所有的請求起作用。

4 、攔截器可以訪問action上下文、值棧里的對象,而過濾器不能訪問。

5 、在action的生命周期中,攔截器可以多次被調用,而過濾器只能在容器初始化時被調用一次。

使用如下:

在Servlet作為過濾器使用時,它可以對客戶的請求進行處理。處理完成後,它會交給下一個過濾器處理,這樣,客戶的請求在過濾鏈里逐個處理,直到請求發送到目標為止。例如,某網站里有提交「修改的注冊信息」的網頁,當用戶填寫完修改信息並提交後,伺服器在進行處理時需要做兩項工作:判斷客戶端的會話是否有效;對提交的數據進行統一編碼。

這兩項工作可以在由兩個過濾器組成的過濾鏈里進行處理。當過濾器處理成功後,把提交的數據發送到最終目標;如果過濾器處理不成功,將把視圖派發到指定的錯誤頁面。

(1)web的過濾器和攔截器擴展閱讀

攔截器,在AOP(Aspect-Oriented Programming)中用於在某個方法或欄位被訪問之前,進行攔截然後在之前或之後加入某些操作。攔截是AOP的一種實現策略。

在Webwork的中文文檔的解釋為——攔截器是動態攔截Action調用的對象。它提供了一種機制可以使開發者可以定義在一個action執行的前後執行的代碼,也可以在一個action執行前阻止其執行。同時也是提供了一種可以提取action中可重用的部分的方式。

過濾器是一個程序,它先於與之相關的servlet或JSP頁面運行在伺服器上。過濾器可附加到一個或多個servlet或JSP頁面上,並且可以檢查進入這些資源的請求信息。

『貳』 java web 過濾器跟攔截器的區別和使用

『叄』 java web 過濾器跟攔截器的區別和使用

可以這樣理解:
過濾器:就是條件篩選。
攔截器:路卡。
根據實際條件使用。

『肆』 java web 過濾器和攔截器的區別和使用

過濾器與攔截器的區別

1. 攔截器是基於java的反射機制的,而過濾器是基於函數回調。

2. 攔截器不依賴與servlet容器,過濾器依賴與servlet容器。

3. 攔截器只能對action請求起作用,而過濾器則可以對幾乎所有的請求起作用。

4. 攔截器可以訪問action上下文、值棧里的對象,而過濾器不能訪問。

5. 在action的生命周期中,攔截器可以多次被調用,而過濾器只能在容器初始化時被調用一次

過濾器定義:

<filter>
<filter-name>TestFilter</filter-name>
<filter-class>com.filter.TestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>TestFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

攔截器定義:

<interceptors>
<interceptorname="testInterceptor"class="com.xxxx.TestInterceptor"/>
<interceptor-stackname="filterIPStack">
<interceptor-refname="testInterceptor"/>
</interceptor-stack>
</interceptors>

『伍』 java web 過濾器跟攔截器的區別和使用

java web 過濾器跟攔截器的區別和使用分別介紹如下:

1、過濾器的使用

Filter主要對客戶端的請求和伺服器的響應進行過濾,使用場景:

作用:可以通過Filter技術,對web伺服器管理的所有web資源,例如JSP、Servlet、靜態圖片文件或靜態 html文件等進行攔截,從而實現一些特殊的功能。例如實現URL級別的許可權訪問控制、過濾敏感詞彙、壓縮響應信息等一些高級功能。

同開發Servlet一樣,寫完了類,接下來就是配置了,我們需要在web.xml文件中配置Filter。具體的配置和Servlet配置如出一轍。

<filter>
<filter-name>log</filter-name>
<filter-class>com.jellythink.practise.LogFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>log</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>

上面配置中比較重要的就是url-pattern和dispatcher了。

過濾類:

public class LogFilter implements Filter
{
private FilterConfig config;

public void init(FilterConfig config)
{
this.config = config;
}

public void destroy()
{
this.config = null;
}

// 這個方法是Filter的核心方法
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException
{
// 對用戶的請求進行處理
ServletContext context = this.config.getServletContext();
long begin = System.currentTimeMillis();

// 輸出過濾信息
System.out.println("開始過濾...");
HttpServletRequest hRequest = (HttpServletRequest)request;
System.out.println("Filter已經截獲到用戶請求的地址:" + hRequest.getServletPath());
// 處理完以後,將請求交給下一個Filter或者Servlet處理
chain.doFilter(request, response);
// 對伺服器的響應進行處理
long end = System.currentTimeMillis();
System.out.println("過濾結束");
System.out.println("請求被定為到:" + hRequest.getRequestURI() + "; 所花費的時間為:" + (end - begin));
}
}

2、攔截器的使用:

攔截器的主要作用是攔截用戶的請求並進行相應的處理。比如通過它來進行許可權驗證,或者是來判斷用戶是否登陸,或者是像12306那樣子判斷當前時間是否是購票時間。

1.在SpringMVC的配置文件中加上支持MVC的schema

xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation=" http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"
下面是聲明示例:

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

這樣在SpringMVC的配置文件中就可以使用mvc標簽了,mvc標簽中有一個mvc:interceptors是用於聲明SpringMVC的攔截器的。

『陸』 java web 過濾器跟攔截器的區別和使用

1、首先要明確什麼是攔截器、什麼是過濾器 1.1 什麼是攔截器: 攔截器,在AOP(Aspect-Oriented Programming)中用於在某個方法或欄位被訪問之前,進行攔截然後在之前或之後加入某些操作。攔截是AOP的一種實現策略。 在Webwork的中文文檔的解釋...

『柒』 過濾器和攔截器的區別

過濾器,是在java web中,你傳入的request,response提前過濾掉一些信息,或者提前設置一些參數,然後再傳入servlet或者struts的 action進行業務邏輯,比如過濾掉非法url(不是login.do的地址請求,如果用戶沒有登陸都過濾掉),或者在傳入servlet或者 struts的action前統一設置字元集,或者去除掉一些非法字元
攔截器,是在面向切面編程的就是在你的service或者一個方法,前調用一個方法,或者在方法後調用一個方法比如動態代理就是攔截器的簡單實現,在你調用方法前列印出字元串(或者做其它業務邏輯的操作),也可以在你調用方法後列印出字元串,甚至在你拋出異常的時候做業務邏輯的操作。

『捌』 spring中過濾器(filter)、攔截器(interceptor)和切面(aop)的執行順序

過濾器是服務端的一個組件,是基於servlet實現從客戶端訪問服務端web資源的一種攔截機制,對請求request和響應response都進行過濾,依賴於serverlet容器,使用時,實現Filter介面,在web.xml里配置對應的class還有mapping-url。

攔截器,顧名思義,它的作用就是攔截,這個要和過濾器區分開,過濾器依賴serverlet容器,獲取request和response處理,是基於函數回調(框架本身調用的,它會遍歷所有注冊的過濾器,並且一一調用doFilter()),簡單說就是「去取你想取的」。攔截器是通過Java反射機制來攔截web請求,是「拒你想拒絕的」,它只攔截web請求,但不攔截靜態資源。

攔截器,在AOP中用於在某個方法或欄位被訪問之前,進行攔截,然後在之前或之後加入某些操作。攔截是AOP的一種實現策略。

相比過濾器,攔截器能夠知道用戶發出的請求最終被哪個控制器處理,但是攔截器還有一個明顯的不足,即不能夠獲取request的參數以及控制器處理之後的response。(注意 ,我曾經試過,獲得被攔截方法的一些參數,但是通過methodParaters無法獲得,後來只能通過request.getParameter(..)來獲取)所以就有了切片的用武之地了。

【Filter與Interceptor的區別】

【Interceptor 與spring AOP的區別】

『玖』 javaweb攔截器和過濾器有什麼不同

過濾器(filter)是tomcat的東西,配置後,對所有的request都起作用(當然,也可以配置例外)。攔截器(interceptor)是struts的東西,它只對Action起作用。可以認為interceptor比filter作用粒度更細。

『拾』 java中攔截器、過濾器、監聽器都有什麼區別

1、過濾器,是在java web中,你傳入的request,response提前過濾掉一些信息,或者提前設置一些參數,然回後再傳入servlet或者struts2的。

2、action進行業務邏輯答,比如過濾掉非法url(不是login.do的地址請求,如果用戶沒有登陸都過濾掉),或者在傳入servlet或者struts2的action前統一設置字元集,或者去除掉一些非法字元。

3、攔截器,是在面向切面編程的就是在你的service或者一個方法,前調用一個方法,或者在方法後調用一個方法比如動態代理就是攔截器的簡單實現,在你調用方法前列印出字元串(或者做其它業務邏輯的操作),也可以在你調用方法後列印出字元串,甚至在你拋出異常的時候做業務邏輯的操作。

閱讀全文

與web的過濾器和攔截器相關的資料

熱點內容
高效空氣過濾器製作 瀏覽:743
機油濾芯一般多少油 瀏覽:691
臭氣凈化器怎麼製作 瀏覽:521
油煙凈化器芯體是什麼意思 瀏覽:372
德龍咖啡機除垢後水 瀏覽:512
醫療廢水戊二醛的處置 瀏覽:178
魚缸海沙過濾 瀏覽:680
污水d和a是什麼意思 瀏覽:143
蒸餾時需要調ph嗎 瀏覽:772
如何清理浴室地板水垢 瀏覽:512
魚缸過濾棒入缸 瀏覽:307
潮陽和平鎮污水處理廠 瀏覽:868
變頻器污水提升泵操作規程 瀏覽:5
純水機什麼廠家好 瀏覽:136
人和怡寶純凈水電話多少 瀏覽:944
ro膜干膜和濕膜的區分 瀏覽:493
污水處理工培訓小結 瀏覽:237
污水處理廠脫泥有哪些好處 瀏覽:407
五道過濾器超濾膜 瀏覽:953
飛利浦凈化器維修需要什麼 瀏覽:738