首頁 Java java教程 JavaWeb Servlet中關於Filter過濾器的實例分析

JavaWeb Servlet中關於Filter過濾器的實例分析

Oct 11, 2017 am 09:51 AM
filter javaweb servlet

這篇文章主要介紹了JavaWeb Servlet中Filter過濾器的詳解的相關資料,希望透過本文能幫助到大家,讓大家徹底掌握如何使用,需要的朋友可以參考下

JavaWeb Servlet中Filter過濾器的詳解

1.簡述

          Filter過濾器,對web伺服器所有web資源進行過濾,從而實現一些特殊的功能(權限存取控制、過濾敏感詞彙、壓縮回應資訊)。 Filter能夠對Servlet容器的請求和回應進行檢查和修改,其本身不能產生請求request和回應response,只提供過濾作用(Servlet被呼叫之前檢查Request物件修改其相關訊息,Servlet被調用後檢查Response修改其相關資訊),Filter物件常駐伺服器。

2.Lifecycle

          (1).啟動伺服器,並讀取設定檔web.xml,載入Filter類別並實例化,調用init();
          (2).使用者存取的資源被Filter的url-pattern匹配,並且呼叫doFilter(),要過濾的物件透過chain.doFilter()方法交給下個過濾器處理;
# (3).套用被停止或重新裝載,則呼叫destroy().

#3.chain過濾鏈





#          兩個過濾器有不同的過濾作用,伺服器會依照web.xml中過濾器定義的先後循序組裝成一條鏈,透過chain.doFilter()依序執行每個過濾器的doFilter()。執行過程中任何時候都可以打斷,只要不執行chain.doFilter()就不會再執行後面的過濾器和請求的內容。


4.過濾器的設定


          (1).繼承Filter介面,並複製doFilter()方法
        web.xml的配置,以篩選符合要求的操作

######                 url-pattern設定說明>> ##########關於url-pattern設定說明>> ##################################>>>11; ######
/*
 * MyFilter.java
 * 过滤器
 */
package com.baidu.web;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyFilter implements Filter{

 @Override
 public void destroy() {
 }

 @Override
 public void doFilter(ServletRequest request, ServletResponse response,
 FilterChain chain) throws IOException, ServletException {
 //对请求request进行处理
 HttpServletResponse resp = (HttpServletResponse)response;
 HttpServletRequest req = (HttpServletRequest) request;
 String username = (String) req.getSession().getAttribute("username");
 if(req.getRequestURI().contains("Buy") || req.getRequestURI().contains("collect")){
 if(username==null || username.equals("")){ //满足过滤要求,进行处理
 req.getRequestDispatcher("/login.jsp").forward(req, resp);
 return;
 }
 }
 chain.doFilter(req, resp);
 //对相应response进行处理
 }

 @Override
 public void init(FilterConfig filterConfig) throws ServletException {
 //filterConfig,通过filterConfig的getServletContext() 方法可以获得 ServletContext
 }
}
登入後複製

以上是JavaWeb Servlet中關於Filter過濾器的實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何分析Java Web安全中的程式碼審計 如何分析Java Web安全中的程式碼審計 May 16, 2023 am 08:04 AM

一、JavaWeb安全基礎1.何為程式碼審計?通俗的說Java程式碼審計就是透過審計Java程式碼來發現Java應用程式本身中存在的安全性問題,由於Java本身是編譯型語言,所以即使只有class檔案的情況下我們依然可以對Java程式碼進行審計。對於未編譯的Java原始碼檔案我們可以直接閱讀其原始碼,而對於已編譯的class或jar檔我們就需要進行反編譯了。 Java程式碼審計其本身並無多大難度,只要熟練審計流程和常見的漏洞審計技巧就可比較輕鬆的完成程式碼審計工作了。但是Java代碼審計的方式絕對不僅僅是使

servlet生命週期分成幾個階段 servlet生命週期分成幾個階段 Feb 23, 2023 pm 01:46 PM

Servlet生命週期是指servlet從創建到毀滅的整個過程,可分為3個階段:1、初始化階段,呼叫init()方法實作Servlet的初始化工作;2、運行階段(處理請求),容器會為指定請求建立代表HTTP請求的ServletRequest對象和代表HTTP回應的ServletResponse對象,然後將它們作為參數傳遞給Servlet的service()方法;3、銷毀階段。

什麼是servlet 什麼是servlet Jan 28, 2023 am 09:51 AM

Servlet全名為“Java Servlet”,中文意思是小服務程序或服務連接器,是運行在網頁伺服器或應用伺服器上的程序,它是作為來自網頁瀏覽器或其他HTTP客戶端的請求和HTTP伺服器上的資料庫或應用程式之間的中間層。 Servlet具有獨立於平台和協定的特性,主要功能在於互動式地瀏覽和產生數據,產生動態Web內容。

解決「[Vue warn]: Failed to resolve filter」錯誤的方法 解決「[Vue warn]: Failed to resolve filter」錯誤的方法 Aug 19, 2023 pm 03:33 PM

解決「[Vuewarn]:Failedtoresolvefilter」錯誤的方法在使用Vue進行開發的過程中,我們有時會遇到一個錯誤提示:「[Vuewarn]:Failedtoresolvefilter」。這個錯誤提示通常出現在我們在模板中使用了一個未定義的過濾器的情況下。本文將介紹如何解決這個錯誤並給出相應的程式碼範例。當我們在Vue的

Java Servlet的應用場景有哪些? Java Servlet的應用場景有哪些? Apr 17, 2024 am 08:21 AM

JavaServlet可用於:1.動態內容產生;2.資料存取與處理;3.表單處理;4.檔案上傳;5.會話管理;6.篩選器。範例:建立一個FormSubmitServlet來處理表單提交,將name和email作為參數,並重新導向到success.jsp。

Java Servlet如何實現分散式會話管理? Java Servlet如何實現分散式會話管理? Apr 16, 2024 pm 02:48 PM

JavaServlet中實作分散式會話管理的方法有兩種:1.會話複製:將會話資料複製到各個伺服器。 2.會話分佈:使用集中式儲存服務儲存會話數據,由多個伺服器存取。具體實作方式有:會話複製配置web.xml檔案中的true;會話分佈使用Redis:引入jedis函式庫,編寫Servlet使用Jedis儲存和檢索會話資料;使用SpringSession:引入spring-session依賴,注入SessionRepository,透過它操作會話數據。

Web開發的Java技術堆疊:了解Java EE、Servlet、JSP、Spring等常用於Web開發的技術 Web開發的Java技術堆疊:了解Java EE、Servlet、JSP、Spring等常用於Web開發的技術 Dec 26, 2023 pm 02:29 PM

JavaWeb開發技術堆疊:掌握JavaEE、Servlet、JSP、Spring等用於Web開發的技術隨著互聯網的快速發展,在當今的軟體開發領域,Web應用的開發已成為非常重要的技術需求。而Java作為一種廣泛應用的程式語言,其在Web開發領域也有著重要的地位。 JavaWeb開發技術堆疊涉及多項技術,如JavaEE、Servlet、JSP、Spr

Java錯誤:Servlet錯誤,如何解決與避免 Java錯誤:Servlet錯誤,如何解決與避免 Jun 25, 2023 pm 06:34 PM

JavaWeb應用程式開發中,Servlet是非常常用的技術。但是在開發過程中難免會出現一些Servlet錯誤,如何解決並避免Servlet錯誤成為許多Java開發者的頭等問題。本文將根據個人經驗和相關資料介紹一些常見的Servlet錯誤及其解決方法。 ClassNotFoundException當我們嘗試載入一個類別的時候,如果該類別不存在或不能被系統訪問,

See all articles