1.概念
過濾器:過濾器是servlet技術(shù),也叫Filter.
可以對
請求進行攔截器
處理公用操作,例如:編碼,登錄校驗。
處理完后,放行。
控制權(quán)到srevlet/jsp(如果有下一個過濾器,就逐個執(zhí)行)
servlet/jsp響應(yīng)完成,控制權(quán)又回到過濾器.
最后過濾器執(zhí)行完,服務(wù)器響應(yīng)用戶.
le -> filter -> filter2 .... -> servlet/jsp ->filter2 -> filter1
2.過濾器API
| -- Interface 過濾器接口
Init(FilterConfig config);
doFilter(ServletRequest request, ServletResponse response, FilterChain chain);
destory();
這三個方法都是服務(wù)器自動調(diào)用
| -- FilterConfig 通過這個對象可以獲取過濾器在web.xml中配置信息
| -- FilterChain 過濾器鏈對象,代表整個項目中過濾器的執(zhí)行狀態(tài)
doFilter(request, response); 對請求資源放行;進入下一個過濾器(如果有);或者執(zhí)行請求
servlet相關(guān)接口:
Servlet/ServletConfig/ServletRequest/ServletResponse
HttpServletRequest/HttpServletResponse
Filter/FilterConfig/FilterChain
3.過濾器技術(shù)細節(jié)
配置:
攔截所有的請求
指定路徑的請求
攔截指定類型的請求:request(默認)/forward(轉(zhuǎn)發(fā)后攔截)
4.案例:
a) 編碼處理
b) 登錄用戶驗證
目標(biāo):
- 文件上傳與下載
- JavaMail郵件開發(fā)
文件上傳與下載:
項目中經(jīng)常用到文件上傳:
eg: QQ上傳頭像,資料共享:csdn,網(wǎng)站提供xls模板,讓用戶按照模板填寫,填寫后需要上傳.
文件上傳非常常用.
文件上傳:
指定表單類型為文件上傳表單
enctype="multpart/form-data" (無論使用哪種文件上傳,都必須指定這個)
提交方式必須為:POST
表單中:存在文件域元素
eg: