在 Servlet3.0 之前一直使用的都是配置文件的方式来实现各种组件,Servlet3.0 之后提供了注解, 可以达到零配置。但现实中一般是注解+配置结合使用。我们看几个常用的注解。
@WebServlet
@WebServlet("/ts")//指定对外访问名
@WebServlet(name = "testlistener",value = "/ts") //value为路径名
@WebServlet(name = "testlistener",urlPatterns = {"/ts01","/ts02"}) //以配置多个 urlPatterns 来指定多个访问路径
@WebFilter
//@WebFilter 用来配置过滤器
@WebFilter(filterName = "tf01",urlPatterns = "/*") //urlPatterns指定过滤对象,使用注解时:过滤器链按照类名的字母排序(大部分情况)
@WebListener
Servlet3.0 提供 @WebListener 注解将一个实现了特定监听器接口的类定义为监听器。比如将实现 了 ServletSessionListener 接口的类标注为监听器。
@WebListener
@MultipartConfig
使用注解 @MultipartConfig 将一个 Servlet 标识为支持文件上传。Servlet3.0 将 multipart/formdata 的 POST 请求封装成 Part,通过 Part 对上传的文件进行操作。
servlet3.0实现文件上传
三步:
-
得到Part文件对象,request.getPart(String name); name对应前台文件输入框的name属性的值
-
得到文件上传真实路径 path
-
输出文件 part.write(path)
String uname = request.getParameter("uname");
// 1、得到文件part 对象
Part part = request.getPart("imageFile");
// 得到上传文件名称
String submittedFileName = part.getSubmittedFileName();
System.out.println(submittedFileName);
// 2、得到文件上传路径
String realPath = request.getServletContext().getRealPath("/test/" + submittedFileName);
// 3、输出文件
part.write(realPath);