过滤器和文件上传
Posted 何必怀念
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了过滤器和文件上传相关的知识,希望对你有一定的参考价值。
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
以上是关于过滤器和文件上传的主要内容,如果未能解决你的问题,请参考以下文章
spring mvc 文件上传怎么过滤文件类型,如exe文件等
文件上传漏洞练习 upload-labs(1~5)js过滤,MIME过滤,黑名单过滤,.htaccess文件攻击,.user,ini文件攻击