(1)允许使用annotation来修饰servlet,filter,listener,使web.xml不再是必需品。
EX:@WebServlet:用于修饰一个servlet类,用于部署servlet类。
@WebInitParam:用于与@WebServlet或者WebFilter一起使用,为Servlet和Filter配置参数。
@WebListener:用于修饰和部署Listener类。
@WebFilter:用于修饰和部署Filter类。
(2)允许使用Web模块来部署和管理Web组件
一个Web模块对应一个JAR包,文件结构如下
|-META-INF
| |-web-fragment.xml
|-Web模块的文件与资源
web-fragment.xml文件是对于Web模块的部署的描述符,其可以指定
<name />:用于指定该模块的名称
<ordering />:用于指定加载该Web模块的相对顺序
(3)异步处理,允许servlet重新开启一条新线程来处理耗时的业务方法,从而避免了等待。
调用异步处理是通过AsyncContext类来处理,Servlet可通过ServletRequest的如下两个方法来开启异步调用,创建AsyncContext对象:
AsyncContext startAsync()
AsyncContext startAsync(ServletRequest,ServletResponse)
调用如上方法可获得一个AsyncContext对象,其代表了异步处理的上下文,它提供了设置异步调用超时时长,dispatch用于请求,启动后台线程,获取request和response对象等功能。
EX:@WebServlet:用于修饰一个servlet类,用于部署servlet类。
@WebInitParam:用于与@WebServlet或者WebFilter一起使用,为Servlet和Filter配置参数。
@WebListener:用于修饰和部署Listener类。
@WebFilter:用于修饰和部署Filter类。
(2)允许使用Web模块来部署和管理Web组件
一个Web模块对应一个JAR包,文件结构如下
|-META-INF
| |-web-fragment.xml
|-Web模块的文件与资源
web-fragment.xml文件是对于Web模块的部署的描述符,其可以指定
<name />:用于指定该模块的名称
<ordering />:用于指定加载该Web模块的相对顺序
(3)异步处理,允许servlet重新开启一条新线程来处理耗时的业务方法,从而避免了等待。
调用异步处理是通过AsyncContext类来处理,Servlet可通过ServletRequest的如下两个方法来开启异步调用,创建AsyncContext对象:
AsyncContext startAsync()
AsyncContext startAsync(ServletRequest,ServletResponse)
调用如上方法可获得一个AsyncContext对象,其代表了异步处理的上下文,它提供了设置异步调用超时时长,dispatch用于请求,启动后台线程,获取request和response对象等功能。