过滤器和文件上传

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

以上是关于过滤器和文件上传的主要内容,如果未能解决你的问题,请参考以下文章

php过滤上传类型,只上传图片类型文件

spring mvc 文件上传怎么过滤文件类型,如exe文件等

文件上传漏洞

什么是文件上传漏洞

文件上传漏洞

文件上传漏洞练习 upload-labs(1~5)js过滤,MIME过滤,黑名单过滤,.htaccess文件攻击,.user,ini文件攻击