過濾器和文件上傳
1.過濾器
1.概述
過濾器就是在對目標資源進行請求前或請求後來進行攔截,
//放行前加入的代碼
chain.doFilter(request,response);
//放行後的代碼
2.寫法
1.實現Filter接口
init(FilterConfig);
doFilter(ServletRequest,ServletResponse,FilterChain);
destory();
2.web.xml配置?
<filter>
<filter-name></filter-name>
<filter-class></filter-class>
</filter>
<filter-mapping>
<filter-name></filter-name>
<url-pattern></url-pattern>
</filter-mapping>
3.生命周期
1.在應用被加載或容器啟動時,過濾器就進行實例化,初始化
2.以後每調攔截時,直接執行doFilter()
3.容器停止或應用卸載時,destory()執行銷毀
4.配置詳解
1.一個Filter可以有多個配置
2.也可以使用通配符進行配置(/* *.擴展名)
3.filter-mapping配置在前,說明它先攔截
4.配置初始化參數
<filter>結點內部添加一個<init-param>結點
參數獲取:
filterConfig.getInitParameter("參數名");
Enumeration<String> paramNames= filterConfig.getInitParameterNames();
while(paramNames.hasMoreElements()){
String paramName = paramNames.nextElement();
}
5.<filter-mapping>可以加入<dispatcher>的配置
1.默認不寫,是REQUEEST
2.其它取值
ERROR:過濾web.xml中配置的錯誤頁
INCLUDE:動態包含的資源
FORWARD:轉發的資源 errorPage屬性是FORWARD
5.過濾器鏈
過濾器1-------------->過濾器2---------------->目標資源-------->過濾器2-------->過濾器1
6.簡單示例
1.解決post提交亂碼問題
2.動態資源不緩存
3.靜態資源級存
7.復雜示例
1.字符全站過濾
2.臟話過濾器
3.html過濾器
4.全站壓縮(理解)
2.文件上傳
1.上傳的必要性
2.上傳的前提
1.enctype="multipart/form-data"
2.method="post"
3.<input type="file" />
3.當表單提交數據時, enctype="application/x-www-form-urlencoded",
它是默認值,此時服務器可以用request.getParameter()取數據,否則不能取數據。
4.接收客戶端數據並引入上傳框架
5.框架的使用
1.介紹SmartUpload
2. Commons-FileUpload(主講)
6.commons-fileupload框架的使用
1.導2個jar包
commons-fileupload-xxx.jar
commons-io-xxx.jar
過濾器和文件上傳