需求背景:
Servlet3.0的好处:
- 1. 异步处理支持:有了该特性,Servlet 线程不再需要一直阻塞,直到业务处理完毕才能再输出响应
- 2. 新增的注解支持(可以省略web.xml):该版本新增了若干注解,用于简化 Servlet、过滤器(Filter)和监听器(Listener)的声明,这使得 web.xml 部署描述文件从该版本开始不再是必选的了。
- 3. 可插性支持:开发者可以通过插件的方式很方便的扩充已有 Web 应用的功能,而不需要修改原有的应用。
-
搭建方式:
Eclipse中如何创建Maven Servlet3.0/3.1环境
- 导入环境依赖Servlet3.1Jar
- maven工程只支持Servlet2.3,所以修改配置文件默认配置来支持Servlet3
- 进入到工程目录下,修改org.eclipse.wst.common.project.facet.core.xml
- /.settings/org.eclipse.wst.common.project.facet.core.xml
<
install facet=”jst.web” version=”3.1”/>
- 修改配置:properties–>project facet–>Dynamic Web Module–>3.0/3.1
- refresh project + update maven project
- 注意web容器要支持servlet3,并且JDK1.7+
如何在Eclipse中显示.project和.classpath和.setting目录
http://blog.csdn.net/wanghantong/article/details/41442759
注意:
虽然web3.0/3.1之后可以省略web.xml文件,但是在Eclipse中,会有一个Deployment Descriptor:your project name
这个文件其实就相当于web.xml,如果不正确配置这个文件,就会在工程中出现莫名的小红叉,选择your project,鼠标右键选择Properties,输入facet,检索,点击结果中的Project Faced,检查对应的版本是否正确
- 如果持续update maven project 出现jre版本经常异常变化,可以在pom中配置compile插件的版本,依赖jdk version固定,并且与环境一致即可
- Servlet3.0需要JDK1.7以上
附3.0/3.1对应的头文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name>Archetype Created Web Application</display-name>
</web-app>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<display-name>Archetype Created Web Application</display-name>
</web-app>