JavaWeb/Spring之註解/web.xml配置過濾器 Filter

過濾器實際上就是對web資源進行攔截, 做一些處理後再交給下一個過濾器或servlet處理通常都是用來攔截request進行處理的, 也可以對返回的response進行攔截處理
在這裏插入圖片描述
有兩種方式配置
一種是web.xml 方式配置
Archetype Created Web Application

filterDemo com.cn.filter.FilterServlet //過濾類全限定名 filterDemo /* //所能攔截的請求 一種是註解的方式

@WebFilter(filterName = “FilterServlet”,
urlPatterns = “*.jsp”) //這個就是註解方式,像極了WebServlet("/xxx")
public class FilterServlet implements Filter {

應用場景
自動登陸
統一設置編碼格式
訪問權限控制
敏感字符過濾

配置Filter
可配置的屬性有那些

常用配置項
urlPatterns : 配置要攔截的資源
1.
以指定資源匹配. 列如 “/index.jsp”
2.
以目錄匹配. 列如 “/servlet/"
3.
以後綴名匹配, 列如 "
.jsp”
4.
/* 通配符, 攔截所有的web資源

initParams配置初始化參數, 跟Servlet配置一樣
initParams = { @WebInitParam(name = “key”, value = “value”)}

dispatcherTypes配置攔截類型, 可配置多個. 默認爲DispatcherType.REQUEST
列如 :
dispatcherTypes = {DispatcherType.ASYNC, DIspatcherType.ERROR}

如果項目中使用了Spring框架,那麼,很多過濾器都不用自己來寫了,Spring爲我們寫好了一些常用的過濾器。下面我們就以字符編碼的過濾器 CharacterEncodingFilter爲例,來看一下Spring框架下,如果配置過濾器。

<filter>


<filter-name>encodingFilter</filter-name>


<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>


<init-param>


<param-name>encoding</param-name>


<param-value>UTF-8</param-value>


</init-param>


<init-param>


<param-name>forceEncoding</param-name>


<param-value>true</param-value>


</init-param>


</filter>


<filter-mapping>


<filter-name>encodingFilter</filter-name>


<url-pattern>/*</url-pattern>


</filter-mapping>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章