一、Servlet3.0的注解
@WebServlet @WebFilter......
二、Servlet3.0的web模块支持
增加web-fragment.xml,解放web.xml,可以在web.xml中指定web-fragment.xml的加载顺序。
三、servlet3.0提供异步处理
作用:异步处理允许servlet重新发起一条新线程去调用耗时的业务方法,这样可避免等待。
实现:通过AsyncContext类处理
过程:
1、servlet
@WebServelt (asyncSupported=true)
AsyncContext astx=request.startAsync(); //开始异步
astx.setTimeout(60*1000);//设置异步超时时长
astx.start(new 线程类(actx));
2、线程类
ServletRequest request = actx.getRequest();
..... //处理过程,生成响应数据
request.setAttribute("/async.jsp");
actx.dispatch("/async.jsp"); //请求dispatch到指定JSP页面
3、dispatch页面
session="false" //页面要设置session为false,说明没有生成新的session
启用异步的两种方式:
1、@WebServelt (asyncSupported=true)
2、web.xml中<async-supported>true</async-supported>
异步监听器:AsyncListener
四、改进Servlet API
1、httpServletRequest增加对文件上传支持
2、servletContext允许通过编程方式主动去注册servlet Filter (略)
上传过程:
1、上传需指定form表单的enctype属性为multipart/form-data
2、servlet处理
@MultipartConfig修饰servlet
Part part = request.getPart("file");//获取文件上传对象
part.write(); //写入到服务器