6.28笔记-servlet3.0注解配置、文件上传、过滤器、监听器

时间:2023-12-26 14:25:55
一、servlet3.0注解配置
使用javaEE6.0 支持servlet3.0 value的值就是访问路径
urlPatterns的值也是访问路径
@WebServlet(name="DemoServlet3",value="/demoServlet3")
public class DemoServlet3 extends HttpServlet {
...
}
二、文件上传
表单
method 必须是post
enctype="multipart/form-data" //1.创建DiskFileItemFactory
DiskFileItemFactory dif = new DiskFileItemFactory();
//2.创建ServletFileUpload 对象
ServletFileUpload sfu = new ServletFileUpload(dif);
//3.判断表单提交 是不是 multipart/form-data
boolean isMultipart = sfu.isMultipartContent(request); 限制文件上传的类型和大小
类型:
List<String> filTypes = Arrays.asList("jpg","png","gif","bmp");
String fileType = fileName.substring(fileName.lastIndexOf(".")+1);
System.out.println("后缀:"+fileType);
boolean flag = filTypes.contains(fileType); 大小:
//设置单个文件的最大限制
upload.setSizeMax(1024*30);
三、过滤器
新建过滤器
实现filter接口
在web.xml 配置
/* 表示过滤所有路径的请求和响应
<filter>
<filter-name>demoFilter</filter-name>
<filter-class>cn.bdqn.demo.DemoFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>demoFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
过滤请求和响应
过滤器的生命周期:
初始化:
web服务器启动时初始化
过滤调用
doFilter
销毁:
关闭web服务器
用过滤器处理post请求中文乱码 过滤器链 四、监听器