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中進行配置。
<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包拷貝