導航:首頁 > 凈水問答 > java過濾器攔截登錄

java過濾器攔截登錄

發布時間:2021-11-15 20:16:11

A. post請求會被登陸過濾器攔截嗎

會,post提交會使用過濾器

B. java中過濾器和攔截器的區別

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

C. java web登錄後的各種請求在瀏覽器地址不變,過濾器該怎樣攔截每次的請求

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest)request;
if(req.getSession().getAttribute("user")==null){
req.setAttribute("error", "請你先登錄");
//非法請求才會進到這裡面,在這里保存請求的url地址,在成功登錄後再進行跳轉
req.getSession().setAttribute("goUrl", req.getRequestURL()+"?"+ req.getQueryString());
request.getRequestDispatcher("/ulogin.jsp").forward(request, response);
}

else{
chain.doFilter(request, response);
}
}
上面的代碼是過濾器中的代碼
下面的是servlet中的代碼
if(request.getSession().getAttribute("goUrl")!=null){
String url = (String)request.getSession().getAttribute("goUrl");
response.sendRedirect(url);
}
else{
response.sendRedirect("/webshopping/index.jsp");
}

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

區別如下:

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

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

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

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

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

使用如下:

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

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

(4)java過濾器攔截登錄擴展閱讀

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

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

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

E. 判斷用戶登錄是用springmvc 攔截器還是filter

在struts2中用過filter過濾器,在springmvc中還有攔截器,它們都能過濾請求,但是到底有什麼區別呢?
一、定義

攔截器 :是在面向切面編程的就是在你的service或者一個方法,前調用一個方法,或者在方法後調用一個方法比如動態代理就是攔截器的簡單實現,在你調用方法前列印出字元串(或者做其它業務邏輯的操作),也可以在你調用方法後列印出字元串,甚至在你拋出異常的時候做業務邏輯的操作。
過濾器:是在javaweb中,你傳入的request、response提前過濾掉一些信息,或者提前設置一些參數,然後再傳入servlet或者struts的action進行業務邏輯,比如過濾掉非法url(不是login.do的地址請求,如果用戶沒有登陸都過濾掉),或者在傳入servlet或者 struts的action前統一設置字元集,或者去除掉一些非法字元.。
二、xml文件配置
1.filter
該過濾器的方法是創建一個類XXXFilter實現此介面,並在該類中的doFilter方法中聲明過濾規則,然後在配置文件web.xml中聲明他所過濾的路徑

<filter>
<filter-name>XXXFilter</filter-name>
<filter-class>
com.web.util.XXXFilter
</filter-class>
</filter>

<filter-mapping>
<filter-name>XXXFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter>
<filter-name>XXXFilter</filter-name>
<filter-class>
com.web.util.XXXFilter
</filter-class>
</filter>

<filter-mapping>
<filter-name>XXXFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
2.Interceptor

它也要實現HandlerInterceptor 介面,這里只介紹方法註解配置

<!-- 攔截器 -->
<mvc:interceptors>
<!-- 多個攔截器,順序執行 -->
<mvc:interceptor>
<mvc:mapping path="/entryOrJsonController/*" /><!-- 如果不配置或/*,將攔截所有的Controller -->
<bean class="com.wy.interceptor.CommonInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
<!-- 攔截器 -->
<mvc:interceptors>
<!-- 多個攔截器,順序執行 -->
<mvc:interceptor>
<mvc:mapping path="/entryOrJsonController/*" /><!-- 如果不配置或/*,將攔截所有的Controller -->
<bean class="com.wy.interceptor.CommonInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>

三、具體區別

filter
Interceptor

多個的執行順序
根據filter mapping配置的先後順序
按照配置的順序,但是可以通過order控制順序

規范
在Servlet規范中定義的,是Servlet容器支持的
Spring容器內的,是Spring框架支持的。

使用范圍
只能用於Web程序中
既可以用於Web程序,也可以用於Application、Swing程序中。

深度
Filter在只在Servlet前後起作用
攔截器能夠深入到方法前後、異常拋出前後等

四、總結
兩者的本質區別:攔截器是基於java的反射機制的,而過濾器是基於函數回調。從靈活性上說攔截器功能更強大些,Filter能做的事情,他都能做,而且可以在請求前,請求後執行,比較靈活。Filter主要是針對URL地址做一個編碼的事情、過濾掉沒用的參數、安全校驗(比較泛的,比如登錄不登錄之類),太細的話,還是建議用interceptor。不過還是根據不同情況選擇合適的。

F. java 過濾器 攔截器

http://www.blogjava.net/hello-yun/archive/2011/11/21/364469.html

G. JAVA過濾器和攔截器的區別

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

H. java怎麼實現對某些需要登錄才能查看的頁面進行攔截不需要登錄的jsp頁面不需要攔截!請高手賜教!

如果是簡單的頁面許可權控制,採用過濾器完全就可以實現了。 實現思路:
1. 設計需要許可權訪問的頁面存放在指定的目錄,如: /A/xxx.JSP 。 不需要登錄訪問的頁面則不存放在A目錄下
2. 自己寫個過濾器, 過濾器攔截的URL為 /A/* (url-mapping的配置); 過濾器的邏輯是,只有登錄的請求,才forward請求的頁面,沒有登錄的請求則跳轉到登陸頁面

如果是復雜的許可權控制,可以考慮採用spring security 組件來實現,從而節省開發時間

I. java中如何用過濾器來攔截用戶不允許訪問的

編寫 過濾器來 攔截請求,在過濾器中自判斷請求的路徑,如果請求是可以訪問的 那就放行,如果需要驗證用戶的 那就 獲取session,判斷用戶情況,是否登錄 ,是否擁有許可權這些,通過就放行,反之跳轉到報錯頁面 或者登錄頁面

J. java web登陸狀態過濾器 圖片也被攔截了,怎麼辦

在過濾器中添加代碼String uri = request.getRequestURI();
過濾uri後綴是.js,.css的不進行校驗就好了,另外一種方法則相反,判斷你要的後綴,然後過濾,其他的都放行

閱讀全文

與java過濾器攔截登錄相關的資料

熱點內容
強酸型離子交換樹脂的制備 瀏覽:472
飲水機的照明燈不亮了怎麼回事 瀏覽:448
污水處理設備啟閉機閘門 瀏覽:779
德克凈水器多少錢1隻 瀏覽:669
飲水機綠苔怎麼弄 瀏覽:946
安吉爾凈水器j1205怎麼充值 瀏覽:601
酚醛樹脂結合劑有限公司 瀏覽:83
pp固體丙烯酸樹脂 瀏覽:917
飲水機為什麼一邊會漏水 瀏覽:423
凈水器活性炭的成分是什麼 瀏覽:286
日本買ps4回國可以用 瀏覽:992
反滲透電導儀什麼牌子好 瀏覽:84
可以兩個過濾桶串連用嗎魚缸 瀏覽:681
蘇州君格提升泵 瀏覽:281
泉來凈水機濾芯怎麼清洗 瀏覽:99
污水處理池設計收費標准 瀏覽:107
蝦缸不過濾 瀏覽:978
xrv怎麼換空氣濾芯 瀏覽:301
豹米凈化器怎麼連網 瀏覽:288
別克陸尊24空調濾芯怎麼更換 瀏覽:416