关于Servlet的两种配置Web.xml文件配置或者使用(@WebServlet(name = "",urlPatterns = ""))配置问题

在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>

关于Servlet的两种配置Web.xml文件配置或者使用(@WebServlet(name = "",urlPatterns = ""))配置问题

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>标签。

关于Servlet的两种配置Web.xml文件配置或者使用(@WebServlet(name = "",urlPatterns = ""))配置问题

如果打算使用@WebServlet Annotation(注解)来配置Servlet,需要注意以下两点:

1、不要在web.xml文件的根元素(<web-app---/>)中指定metadata-complete="true";

      默认为metadata-complete="true"的话修改其属性为metadata-complete="false"

      IDEA默认Web.xml配置文件没有对metadata-complete属性进行设置,此时不需要进行设置即可使用。

关于Servlet的两种配置Web.xml文件配置或者使用(@WebServlet(name = "",urlPatterns = ""))配置问题

2、不要在web.xml文件中配置该Servlet;

 

最后来看一下使用@WebServlet Annotation(注解)进行简单配置的Servlet

关于Servlet的两种配置Web.xml文件配置或者使用(@WebServlet(name = "",urlPatterns = ""))配置问题

关于Servlet的两种配置Web.xml文件配置或者使用(@WebServlet(name = "",urlPatterns = ""))配置问题