在 Servlet 3.0 之前,我创建的每个Servlet的实现类,都需要配置 web.xml
文档,在 Servlet 3.0 以及后面的版本中,我们可以不用创建 web.xml
,通过注解的方式添加数据配置。
实例引入
-
创建JavaEE项目:ServletStudy
-
创建Servlet实现类:
public class ServletDemo01 implements Servlet { @Override public void init(ServletConfig servletConfig) throws ServletException { } @Override public ServletConfig getServletConfig() { return null; } @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { System.out.println("Servlet 4.0 版本 ······"); } @Override public String getServletInfo() { return null; } @Override public void destroy() { } }
-
@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 的描述信息,等价于 标签。 displayName String Servlet 的显示名,通常配合工具使用,等价于 <display-name>
标签 -
通过注解,配置数据:
javax.servlet.annotation
@WebServlet
@WebServlet(urlPatterns="/demo01")
-
启动服务器,访问 http://localhost:8080/ServletStudy_war_exploded/demo01
控制台输出:
Servlet 4.0 版本 ······
实例代码
package my.servlet.study;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
/**
* @Author: YiHua Lee
* @Version: 1.8.0_201 Java SE 8
* @Application: IntelliJ IDEA
* @CreateTime: 2020/5/15 16:21
* @Description:
*/
@WebServlet(urlPatterns="/demo01")
public class ServletDemo01 implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse)
throws ServletException, IOException {
System.out.println("Servlet 4.0 版本 ······");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}