1.概念
过滤器:过滤器是servlet技术,也叫Filter.
可以对
请求进行拦截器
处理公用操作,例如:编码,登录校验。
处理完后,放行。
控制权到srevlet/jsp(如果有下一个过滤器,就逐个执行)
servlet/jsp响应完成,控制权又回到过滤器.
最后过滤器执行完,服务器响应用户.
le -> filter -> filter2 .... -> servlet/jsp ->filter2 -> filter1
2.过滤器API
| -- Interface 过滤器接口
Init(FilterConfig config);
doFilter(ServletRequest request, ServletResponse response, FilterChain chain);
destory();
这三个方法都是服务器自动调用
| -- FilterConfig 通过这个对象可以获取过滤器在web.xml中配置信息
| -- FilterChain 过滤器链对象,代表整个项目中过滤器的执行状态
doFilter(request, response); 对请求资源放行;进入下一个过滤器(如果有);或者执行请求
servlet相关接口:
Servlet/ServletConfig/ServletRequest/ServletResponse
HttpServletRequest/HttpServletResponse
Filter/FilterConfig/FilterChain
3.过滤器技术细节
配置:
拦截所有的请求
指定路径的请求
拦截指定类型的请求:request(默认)/forward(转发后拦截)
4.案例:
a) 编码处理
b) 登录用户验证
目标:
- 文件上传与下载
- JavaMail邮件开发
文件上传与下载:
项目中经常用到文件上传:
eg: QQ上传头像,资料共享:csdn,网站提供xls模板,让用户按照模板填写,填写后需要上传.
文件上传非常常用.
文件上传:
指定表单类型为文件上传表单
enctype="multpart/form-data" (无论使用哪种文件上传,都必须指定这个)
提交方式必须为:POST
表单中:存在文件域元素
eg: