1. 程式人生 > >javaWeb專案中如何使用過濾器

javaWeb專案中如何使用過濾器

程式碼演示:
 public  class  TestFilter  implements Filter { 

     public  void  init(FilterConfig arg0) throws ServletException {    

     } 

     public void destroy() {   

     } 

     public void doFilter(ServletRequest request, ServletResponse response, 

         FilterChain chain) throws IOException, ServletException {    

     } 

}  

過濾器開發完成後還需要在web.xml中進行配置。

程式碼演示:web.xml 中加入Filter配置

<filter>   

       <filter-name>TestFilter</filter-name> 

       <filter-class>com.wh.filter. TestFilter </filter-class>
       <init-param>   
            <param-name>characterEncoding</param-name> 
            <param-value>UTF-8</param-value> 
       </init-param> 
</filter>  


 
<filter-mapping> 
       <filter-name> TestFilter </filter-name>
       <url-pattern>/*</url-pattern>
</filter-mapping>

解析:   

         節點描述該Filter對應的類是哪一個。寫明具體路徑

         中的必須和節點中的值相同,

               是Filter的引數。獲取該引數的方式為:  

                 public void init(FilterConfig filterConfig) throws ServletException {

                               characterEncoding = filterConfig.getInitParameter("characterEncoding");  

                  }


         指定改過濾器關聯的URL樣式。

                    url-pattern主要有四種匹配方式

                      (a)精確匹配,就是填寫jap或Servlet等需要過濾的請求的具體地址,例如:/Filter/TestFilter

                      (b)擴充套件匹配,由“*”號和副檔名組成,例如*.jsp

                      (c)路徑字首匹配,包含一個目錄和一個/*   例如:/Servlet/*指的是對Servlet目錄下的所有資源進行過濾

                      (d)全部匹配,使用/*,指的是對所以資源都過濾   

Filter流程總述:

       請求發起時,Web容器先判斷是否存在過濾器和這個請求的資源相關,如果有存在關聯就把請求交給過濾器去處理,在過濾器中可以對請求的內容做出改變,然後再將請求轉交給被請求的資源。當被請求的資源做出響應時,Web容器同樣會將響應先轉發給過濾器,在過濾器中可以對響應做出處理然後再將響應傳送給客戶端。在這整個過程中客戶端和目標資源是不知道過濾器的存在的。

       過濾器對請求做了兩次(對request和response)過濾,其實Filter是對請求中的Request和Response進行了攔截。攔截到了進行處理,處理完後再返回到其原來的呼叫流程上去。這點體現了責任鏈模式。

       在一個Web應用程式中可以配置多個過濾器,從而形成過濾器鏈。

       在請求資源時,過濾器鏈中的過濾器依次對請求作出處理。在接受到響應時再按照相反的順序對響應作出處理。

             

        多個過濾器的執行順序是按照web.xml中filter的配置的上下順序來決定的。

使用Filter的好處:

        在Filter執行的整個過程中客戶端和目標資源是不知道過濾器的存在的。Filter提供的是一種宣告式的服務,即在不用在原程式上做任何修改,只需要編寫Filter,原程式想用Filter,只需要在XML檔案中宣告一下即可。他具有可插拔的能力,用的時候配上web.XML,不用的時候只需要修改web.xml,對整個系統沒有影響,這種宣告式的服務非常方便,也非常強大。

        其次,使用Filter進行控制業務也非常方便,比如驗證使用者是否登入,是否有操作許可權,判斷Session,字符集等,放到Filter裡,可以省去大量重複的程式碼和繁瑣的控制。

在WEB開發中常見的應用過濾器的地方:

     1、      對使用者請求進行統一認證,許可權管理

     2、      對使用者的訪問請求進行記錄和稽核

     3、      對使用者傳送的資料進行過濾和替換

     4、      轉換影象格式

     5、      對響應的內容進行壓縮,減少傳輸量

     6、      對請求和相應進行加密處理

最後需要注意的是Filter技術只對Post請求起作用。

相關推薦

javaWeb專案過濾器

何為過濾器: 過濾器是處於客戶端與伺服器資原始檔之間的一道過濾網,在訪問資原始檔之前,通過一系列的過濾器對請求進行修改、判斷等,把不符合規則的請求在中途攔截或修改。也可以對響應進行過濾,攔截或修改響應                                    

javaWeb專案如何使用過濾器

程式碼演示: public class TestFilter implements Filter { public void init(FilterConfig arg0) throws ServletException { } public void

javaweb專案解決url傳過來的中文是亂碼

從jsp頁面中傳遞到servlet中的值經常出現亂碼問題 問題描述 1:jsp頁面設定了編碼格式為utf-8 2:servlet頁面也設定了utf-8 3:工作空間也設定了utf-8 4:但是從jsp頁面傳遞到servlet頁面的值還是出現中文亂碼 ps:傳遞的值

通過反射實現javaweb專案許可權的重新整理

記錄是為了更好的成長!   1、貼一段實際專案的中的程式碼 /** * @Methods: permissionreload * @Description: 許可權過載 * @return */ @RequestMapping("/per

JavaWeb專案WEB-INF的目錄

WEB-INF是Java的WEB應用的安全目錄。所謂安全就是客戶端無法訪問,只有服務端可以訪問的目錄。(來自百度百科) 有時候,為了安全,可能需要把jsp檔案放在WEB-INF目錄下。我們可通過下面兩個方法來實現訪問jsp檔案: 1.通過配置檔案對要訪問的檔案進

javaWeb專案獲取專案路徑的一些方法解釋

API 假設請求的頁面是index.jsp,專案是WebDemo,則在index.jsp中獲取有關request物件的各種路徑資訊如下 獲取方式 結果 解釋 request.getCo

javaweb專案過濾器的配置方式是註解@WebFilter時,過濾鏈filter執行順序的控制方法!

      當過濾器用web.xml配置時,控制多個filter的執行順序是通過web.xml中控制filter的位置來控制的,放在上面的會比放在下面的先執行,如“使用者登入檢查過濾器”會比“介面日誌過濾器”先執行,這種方式一搜一大堆。       用@WebFilter註

利用ssm框架搭建javaweb專案Did not find handler method[uri]的解決辦法

首先自己是一個前端開發者,以前搭建過專案都是根據視訊走的,今天第一次用maven搭建專案,一切按照步驟new專案,寫配置檔案,寫方法類,tomcat啟動成功,但就是在請求地址的時候一直報404,debug頁面錯誤如下: 大致意思就是沒喲找到這個連結的方法。 解決辦法: 在sprin

javaweb專案引入CKeditor元件

CKeditor的安裝與使用  for jsp: FCKeditor是一個專門使用在網頁上屬於開放原始碼的所見即所得文字編輯器。 一、下載CKEditor 開啟連線往下拉,可以找到最新的版

JavaWeb專案整合Swagger API文件

0 本文主要涉及 在基於Spring和SpringMVC的前後端分離的JavaWeb專案中生成Swagger API文件(使用SpringFox來實現)。 1 SpringFox和Swagger簡

javaWeb專案的路徑格式 請求url地址 客戶端路徑 服務端路徑 url-pattern 路徑 獲取資源路徑 地址 url

javaweb專案中有很多場景的路徑客戶端的POST/GET請求,伺服器的請求轉發,資源獲取需要設定路徑等這些路徑表達的含義都有不同,所以想要更好的書寫規範有用的路徑程式碼 需要對路徑有一個清晰地認知 路徑基本上分三類 客戶端路徑 服務端路徑

javaweb專案使用定時器的方法

1.建立一個javaweb專案。在web.xml裡配置資訊。 例子:  <listener>   <listener-class>timer.TimerListener</listener-class>  </listener>

javaWEB專案的中文亂碼問題總結

寫這篇部落格主要就是在做專案的時候,碰到後臺到前臺資料亂碼的問題,並藉此總結平常碰到的各種編碼設定,並且也百度了很多,有時候也是經常想不起來,所以記錄一下,方便以後檢視!!!   場景:  在實際運用場景中,當前臺發起請求後,我們需要從後臺返回資料給前臺(前臺模糊查詢

javaweb專案引入struts2後web.xml的詳細配置和註釋

web.xml是web應用中載入有關servlet資訊的重要配置檔案,起著初始化servlet,filter等web程式的作用。  通常,所有的MVC框架都需要Web應用載入一個核心控制器,那採取什麼方法載入這樣的核心控制器呢,servlet或filter成為了很好的選擇

javaWeb專案到底什麼是單例,多例

轉自:https://www.cnblogs.com/doudouxiaoye/p/5711414.html點選開啟連結你用杯子喝可樂,喝完了不刷,繼續去倒果汁喝,就是單例。你用杯子喝可樂,直接扔了杯子,換個杯子去倒果汁喝,就是多例。資料庫連線池就是單例模式,有且僅有一個連線

SSM框架JAVAWEB專案各類配置檔案模板及作用

最近學習ssm框架的一些東西,首先就是各種配置檔案,以及檔案和專案中類和介面的對映關係,稍稍總結記錄,以做不時之需 如有不正確的地方,請留言指正。 1、web.xml檔案 這個檔案是建立web專案時生成的,預設路徑:main/WEB-INF/web.xml 首先看下總體的模板吧

Javaweb專案的路徑問題

最近在完成一個作業的時候,需要讀取一個在javaWeb的專案中的XML檔案。老是弄不好,便去網上找了方法,有用!一開始也沒深究,完成了作業後,有精力深究了一下。如今寫出來,供大家參考。 我的專案目錄如圖所示,我使用的是Tomcat 8.0作為伺服器,servlet 3.

javaweb專案實現手機簡訊登入

手機號登入在現在的專案中用的場景非常多,實現起來也不難,今天我們就一起來通過演示實現登入過程。 <1>首先需要註冊個第三方的賬戶,比如秒嘀科技等,然後拿到三個引數值:QUERAY_PATH ACCOUNT_SID AUTH_TOKEN

javaweb專案退出系統【親測】

    // 退出登入重定向到登入頁面     @RequestMapping("/logout")     public String logout(HttpSession session) { //&nb

將FCKeditor文字編輯器新增到javaweb專案

1.下載FCKEditor專案。地址     http://download.csdn.net/detail/silence4444silence/9737134 2.拷貝FCKeditor-2.3.jar包到專案lib資料夾下 3.將fredck.FCKeditor包拷貝