web.xml和@WebServlet

两者基本相同;
Servlet应该在应用程序的配置文件web.xml中配置之后,才由客户端请求,服务器加载运行。但是在Tomcat7.0后版本无需在web.xml中配置Servlet信息;
@WebServlet(),注释的作用是生成文档,跟踪代码依赖性,实现代替配置功能,所以这里推测注解代替了配置的功能,那么为什么在Tomcat7.0之后才不用配置呢?后来查资料看到Tomcat7.0完全支持Servlet3.0,Servlet3.0中有个可插拔框架的新特性,几乎所有基于Java的web框架都建立在servlet之上。现今大多数web框架要么通过servlet、要么通过Web.xml插入。

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>demo0506</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>firstServlet01</servlet-name>-------------------------------------自定义的servlet名字,用于标记该servlet,
    <servlet-class>com.yxtech.FirstServlet01</servlet-class>---------------------具体的类路径(该servlet路径)
  </servlet>
  <servlet-mapping>
    <servlet-name>firstServlet01</servlet-name>-------------------------------------自定义的servlet名字,用于标记该servlet,
    <url-pattern>/firstServlet01</url-pattern>-------------------------------------------对应网页地址中servlet名,
  </servlet-mapping>
</web-app>
@WebServlet(
		urlPatterns= {"/firstServlet"},-------------------------------------------------------------对应网页地址中servlet名, 对应<url-pattern>
		name="firstServlet"------------------------------------------------------------------自定义的servlet名字,用于标记该servlet,对应<servlet-name>
		//因为该注解放在对应的servlet类中,所以不需要提供路径
)
@WebServlet注解属性

在这里插入图片描述

(1).loadOnStartup属性:标记容器是否在启动应用时就加载Servlet,默认不配置或数值为负数时表示客户端第一次请求Servlet时再加载;0或正数表示启动应用就加载,正数情况下,数值越小,加载该Servlet的优先级越高;
(2).name属性:可以指定也可以不指定,通过getServletName()可以获取到,若不指定,则为Servlet的完整类名
(3).urlPatterns/value属性: String[]类型,可以配置多个映射,如:urlPatterns={"/user/test", “/user/example”}
(4).urlPatterns的常用规则:
/或者/:拦截所
.do:拦截指定后缀
/user/test:拦截路径
/user/
.do、/
.do、test*.do都是非法的,启动时候会报错

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐