導航:首頁 > 凈水問答 > java過濾器action

java過濾器action

發布時間:2022-07-04 23:09:58

Ⅰ java web 過濾器跟攔截器的區別和使用

區別如下:

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

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

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

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

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

使用如下:

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

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

(1)java過濾器action擴展閱讀

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

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

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

Ⅱ 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過濾器和攔截器的區別有哪些

1 攔截器是基於java的反射機制的,而過濾器是基於函數回調。
2 攔截器不依賴與servlet容器,過濾器依賴與servlet容器。
3 攔截器只能對action請求起作用,而過濾器則可以對幾乎所有的請求起作用。
4 攔截器可以訪問action上下文、值棧里的對象,而過濾器不能訪問。
5 在action的生命周期中,攔截器可以多次被調用,而過濾器只能在容器初始化時被調用一次

Ⅳ java裡面過濾器和攔截器的區別

java裡面過濾器和攔截器的區別:
①攔截器是基於java的反射機制的,而過濾器是基於函數回調。
②攔截器不依賴與servlet容器,過濾器依賴與servlet容器。
③攔截器只能對action請求起作用,而過濾器則可以對幾乎所有的請求起作用。
④攔截器可以訪問action上下文、值棧里的對象,而過濾器不能訪問。
⑤在action的生命周期中,攔截器可以多次被調用,而過濾器只能在容器初始化時被調用一次。
⑥攔截器可以獲取IOC容器中的各個bean,而過濾器就不行,這點很重要,在攔截器里注入一個service,可以調用業務邏輯。

攔截器:是在面向切面編程的就是在你的service或者一個方法,前調用一個方法,或者在方法後調用一個方法比如動態代理就是攔截器的簡單實現,在你調用方法前列印出字元串(或者做其它業務邏輯的操作),也可以在你調用方法後列印出字元串,甚至在你拋出異常的時候做業務邏輯的操作。
下面通過實例來看一下過濾器和攔截器的區別:
使用攔截器進行/admin 目錄下jsp頁面的過濾
<package name="newsDemo" extends="struts-default"
namespace="/admin">
<interceptors>
<interceptor name="auth" class="com.test.news.util.AccessInterceptor" />
<interceptor-stack name="authStack">
<interceptor-ref name="auth" />
</interceptor-stack>
</interceptors>
<!-- action -->
<action name="newsAdminView!*" class="newsAction"
method="{1}">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="authStack">
</interceptor-ref>

下面是我實現的Interceptor class:
package com.test.news.util;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import com.test.news.action.AdminLoginAction;
public class AccessInterceptor extends AbstractInterceptor {
private static final long serialVersionUID = -4291195782860785705L;
@Override
public String intercept(ActionInvocation actionInvocation) throws Exception {
ActionContext actionContext = actionInvocation.getInvocationContext();
Map session = actionContext.getSession();
//except login action
Object action = actionInvocation.getAction();
if (action instanceof AdminLoginAction) {
return actionInvocation.invoke();
}
//check session
if(session.get("user")==null ){
return "logout";
}
return actionInvocation.invoke();//go on
}
}
過濾器:是在java web中,你傳入的request,response提前過濾掉一些信息,或者提前設置一些參數,然後再傳入servlet或者struts的 action進行業務邏輯,比如過濾掉非法url(不是login.do的地址請求,如果用戶沒有登陸都過濾掉),或者在傳入servlet或者 struts的action前統一設置字元集,或者去除掉一些非法字元.
使用過濾器進行/admin 目錄下jsp頁面的過濾,首先在web.xml進行過濾器配置:
<filter>
<filter-name>access filter</filter-name>
<filter-class>
com.test.news.util.AccessFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>access filter</filter-name>
<url-pattern>/admin
public void destroy() {

}
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest)arg0;
HttpServletResponse response = (HttpServletResponse)arg1;
HttpSession session = request.getSession();
if(session.getAttribute("user")== null && request.getRequestURI().indexOf("login.jsp")==-1 ){
response.sendRedirect("login.jsp");
return ;
}
filterChain.doFilter(arg0, arg1);

}
public void init(FilterConfig arg0) throws ServletException {
}
}

Ⅳ java我寫了一個過濾器,所有訪問的(js、jsp、各種圖片等等)都會進過濾器,但是為什麼.do、.action這樣訪

需要在web.xml文件中配置過濾器
<filter>
<filter-name>logonFilter</filter-name>
<filter-class>自己版寫的權過濾器</filter-class>
</filter>
<filter-mapping>
<filter-name>logonFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>logonFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>

Ⅵ java中攔截器和過濾器的區別

1
攔截器是基於來java的反射機制的,而自過濾器是基於函數回調。
2
攔截器不依賴與servlet容器,過濾器依賴與servlet容器。
3
攔截器只能對action請求起作用,而過濾器則可以對幾乎所有的請求起作用。
4
攔截器可以訪問action上下文、值棧里的對象,而過濾器不能訪問。
5
在action的生命周期中,攔截器可以多次被調用,而過濾器只能在容器初始化時被調用一次

Ⅶ java中過濾器和攔截器的區別

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

Ⅷ java 過濾器已經走完了,為什麼進不了Action

首先你代碼沒有貼,別人無法分析你到底錯在哪,其次最好的辦法還是自己找,這樣記憶深刻,原始點的通過alert(),或者system輸出一步一步查詢數據的走向,或者會用debug用debug來找,這是我找bug的方法

Ⅸ java中攔截器和過濾器有什麼區別和共同之處

當然有這個概念
struts只是 java的一個封裝而已。什麼框架都是基於java的內。

過濾器是在java web中,容你傳入的request,response提前過濾掉一些信息,或者提前設置一些參數,然後再傳入servlet或者struts的 action進行業務邏輯,比如過濾掉非法url。主要為了減輕伺服器負載。減少壓力

攔截器是在面向切面編程的就是在你的service或者一個方法,前調用一個方法,或者在方法後調用一個方法。比如可以用攔截器做一些許可權管理 或者log之類的事情。

兩者作用是不同的。

閱讀全文

與java過濾器action相關的資料

熱點內容
怎麼拆掉機油濾芯 瀏覽:842
海爾凈水器更換ro膜 瀏覽:879
污水管子漏水怎麼辦 瀏覽:169
水處理運行加葯濃度的計算 瀏覽:680
怎麼檢查反滲透 瀏覽:386
最受歡迎的超濾機 瀏覽:621
凈水機進水管長什麼樣 瀏覽:888
智能飲水機怎麼控制時間 瀏覽:837
安吉爾超濾膜濾芯的安裝 瀏覽:504
漢蘭達6at變速箱濾芯是哪裡代工的 瀏覽:289
某城市污水處理廠工藝流程 瀏覽:561
豪沃重汽尿素濾芯在哪裡圖 瀏覽:745
楊子802空氣凈化器怎麼樣 瀏覽:374
插管式柴油濾芯怎麼拆 瀏覽:430
廢水是怎麼生產的 瀏覽:476
即熱飲水機的工作原理是什麼 瀏覽:683
油煙凈化器怎麼維修 瀏覽:36
空氣凈化器和香薰怎麼平衡 瀏覽:961
RO反滲透凈水器怎麼買 瀏覽:744
補的樹脂牙黃 瀏覽:568