中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Servlet過濾器概念特點有哪些

發布時間:2021-12-27 16:24:54 來源:億速云 閱讀:171 作者:iii 欄目:編程語言

這篇文章主要講解了“Servlet過濾器概念特點有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Servlet過濾器概念特點有哪些”吧!

一、Servlet過濾器的概念:

◆Servlet過濾器是在Java Servlet規范2.3中定義的,它能夠對Servlet容器的請求和響應對象進行檢查和修改。 

◆Servlet過濾器本身并不產生請求和響應對象,它只能提供過濾作用。Servlet過期能夠在Servlet被調用之前檢查Request對象,修改Request Header和Request內容;在Servlet被調用之后檢查Response對象,修改Response Header和Response內容。

Servlet過期負責過濾的Web組件可以是Servlet、JSP或者HTML文件。 

二、Servlet過濾器的特點:

◆Servlet過濾器可以檢查和修改ServletRequest和ServletResponse對象

◆Servlet過濾器可以被指定和特定的URL關聯,只有當客戶請求訪問該URL時,才會觸發過濾器

◆Servlet過濾器可以被串聯在一起,形成管道效應,協同修改請求和響應對象

三、Servlet過濾器的作用:

◆查詢請求并作出相應的行動。

◆阻塞請求-響應對,使其不能進一步傳遞。

◆修改請求的頭部和數據。用戶可以提供自定義的請求。

◆修改響應的頭部和數據。用戶可以通過提供定制的響應版本實現。

◆與外部資源進行交互。

四、Servlet過濾器的適用場合:

◆認證過濾

◆登錄和審核過濾

◆圖像轉換過濾

◆數據壓縮過濾

◆加密過濾

◆令牌過濾

◆資源訪問觸發事件過濾

◆XSL/T過濾

◆Mime-type過濾

五、Servlet過濾器接口的構成:

所有的Servlet過濾器類都必須實現javax.servlet.Filter接口。這個接口含有3個過濾器類必須實現的方法:

◆init(FilterConfig):
這是Servlet過濾器的初始化方法,Servlet容器創建Servlet過濾器實例后將調用這個方法。在這個方法中可以讀取web.xml文件中Servlet過濾器的初始化參數

◆doFilter(ServletRequest,ServletResponse,FilterChain):
這個方法完成實際的過濾操作,當客戶請求訪問于過濾器關聯的URL時,Servlet容器將先調用過濾器的doFilter方法。FilterChain參數用于訪問后續過濾器

◆destroy():
Servlet容器在銷毀過濾器實例前調用該方法,這個方法中可以釋放Servlet過濾器占用的資源

六、Servlet過濾器的創建步驟:

◆實現javax.servlet.Filter接口

◆實現init方法,讀取過濾器的初始化函數

◆實現doFilter方法,完成對請求或過濾的響應

◆調用FilterChain接口對象的doFilter方法,向后續的過濾器傳遞請求或響應

◆銷毀過濾器

七、Servlet過濾器對請求的過濾:

◆Servlet容器創建一個過濾器實例

◆過濾器實例調用init方法,讀取過濾器的初始化參數

◆過濾器實例調用doFilter方法,根據初始化參數的值判斷該請求是否合法

◆如果該請求不合法則阻塞該請求

◆如果該請求合法則調用chain.doFilter方法將該請求向后續傳遞

八、Servlet過濾器對響應的過濾:

◆過濾器截獲客戶端的請求

◆重新封裝ServletResponse,在封裝后的ServletResponse中提供用戶自定義的輸出流

◆將請求向后續傳遞

◆Web組件產生響應

◆從封裝后的ServletResponse中獲取用戶自定義的輸出流

◆將響應內容通過用戶自定義的輸出流寫入到緩沖流中

◆在緩沖流中修改響應的內容后清空緩沖流,輸出響應內容

九、Servlet過濾器的發布:

◆發布Servlet過濾器時,必須在web.xml文件中加入﹤filter﹥元素和﹤filter-mapping﹥元素。

◆filter元素用來定義一個過濾器:

//屬性                   含義  filter-name    指定過濾器的名字  filter-class    指定過濾器的類名  init-param    為過濾器實例提供初始化參數,可以有多個

◆filter-mapping元素用于將過濾器和URL關聯:

//屬性                     含義  filter-name    指定過濾器的名字  url-pattern    指定和過濾器關聯的URL,為”/*”表示所有URL

十一、Servlet過濾器使用的注意事項

◆由于Filter、FilterConfig、FilterChain都是位于javax.servlet包下,并非HTTP包所特有的,所以其中所用到的請求、響應對象ServletRequest、ServletResponse在使用前都必須先轉換成HttpServletRequest、HttpServletResponse再進行下一步操作。

◆在web.xml中配置Servlet和Servlet過濾器,應該先聲明過濾器元素,再聲明Servlet元素

◆如果要在Servlet中觀察過濾器生成的日志,應該確保在server.xml的localhost對應的﹤host﹥元素中配置如下﹤logger﹥元素:

﹤Logger className = “org.apache.catalina.logger.FileLogger”  directory = “logs”prefix = “localhost_log.”suffix=”.txt”  timestamp = “true”/﹥

感謝各位的閱讀,以上就是“Servlet過濾器概念特點有哪些”的內容了,經過本文的學習后,相信大家對Servlet過濾器概念特點有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

湖北省| 汝南县| 图们市| 南汇区| 华蓥市| 夏河县| 甘孜县| 武冈市| 翁源县| 黑河市| 双流县| 潜山县| 华坪县| 余江县| 剑川县| 敦化市| 宝鸡市| 磐石市| 民县| 三亚市| 鹰潭市| 荔波县| 赞皇县| 青浦区| 栖霞市| 镇平县| 武平县| 蒙城县| 射阳县| 多伦县| 新宾| 南川市| 平阴县| 新巴尔虎左旗| 昂仁县| 遂宁市| 鄱阳县| 库尔勒市| 昆明市| 连城县| 洛南县|