在Servlet2.5规范之前,Java Web应用的绝大部分组件都通过web.xml文件来配置管理。
Servlet3.0规范可通过Annotation来配置管理Web组件,因此web.xml文件可以变得更加简洁,这也是Servlet3.0的重要简化。
所以说, 在servlet3.0以后,我们可以不用再web.xml里面配置servlet,只需要加上@WebServlet注解就可以修改该servlet的属性了。
1、通过Web.xml文件进行配置。
//Servlet编写xml配置文件:
<servlet> // 注册servlet
<servlet-name>my</servlet-name> //servlet名称,当前xml中唯一
<servlet-class>com.study.servlet.MyServlet</servlet-class> //servlet实现类的全限定类名
</servlet>
<servlet-mapping> //给注册的servlet添加映射路径
<servlet-name>my</servlet-name> //已经注册的servlet名称。注意:必须与自注册的名称一致
<url-pattern>/my</url-pattern> //访问路径。要求:必须/开头
</servlet-mapping>
2、使用@WebServlet Annotation(注解)进行配置
下面是@WebServlet的属性列表。
属性名 | 类型 | 注解描述 |
name | String | 指定Servlet 的 name 属性,等价于 <servlet-name>。如果没有显式指定,则该 Servlet 的取值即为类的全限定名。 |
value | String[] | 该属性等价于 urlPatterns 属性。两个属性不能同时使用。 |
urlPatterns | String[] | 指定一组 Servlet 的 URL 匹配模式。等价于<url-pattern>标签。 |
loadOnStartup | int | 指定 Servlet 的加载顺序,等价于 <load-on-startup>标签。 |
initParams | WebInitParam[] | 指定一组 Servlet 初始化参数,等价于<init-param>标签。 |
asyncSupported | boolean | 声明 Servlet 是否支持异步操作模式,等价于<async-supported> 标签。 |
description | String | 该 Servlet 的描述信息,等价于 <description>标签。 |
displayName | String | 该 Servlet 的显示名,通常配合工具使用,等价于 <display-name>标签。 |
如果打算使用@WebServlet Annotation(注解)来配置Servlet,需要注意以下两点:
1、不要在web.xml文件的根元素(<web-app---/>)中指定metadata-complete="true";
默认为metadata-complete="true"的话修改其属性为metadata-complete="false"
IDEA默认Web.xml配置文件没有对metadata-complete属性进行设置,此时不需要进行设置即可使用。
2、不要在web.xml文件中配置该Servlet;
最后来看一下使用@WebServlet Annotation(注解)进行简单配置的Servlet