入门

  1. 创建 Web 项目,导入 Servlet 依赖坐标

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <!--
          此处为什么需要添加该标签?
          provided指的是在编译和测试过程中有效,最后生成的war包时不会加入
           因为Tomcat的lib目录中已经有servlet-api这个jar包,如果在生成war包的时候生效就会和Tomcat中的jar包冲突,导致报错
        -->
        <scope>provided</scope>
    </dependency>
    
  2. 在 Java 文件夹上右键创建一个类并实现 Servlet 接口

  3. 重写 service 方法,Servlet 被访问的时候,service 方法会自动执行

    package com.itheima.web;
    
    import javax.servlet.*;
    import java.io.IOException;
    
    public class ServletDemo1 implements Servlet {
    
        public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
            System.out.println("servlet hello world~");
        }
        public void init(ServletConfig servletConfig) throws ServletException {
    
        }
    
        public ServletConfig getServletConfig() {
            return null;
        }
    
        public String getServletInfo() {
            return null;
        }
    
        public void destroy() {
    
        }
    }
    
  4. 要想 Servlet 被访问,需要配置访问路径

    @WebServlet("/demo1")
    
  5. 运行时自动启动浏览器,在浏览器里输入正确的路径,IDEA 有信息返回。若提示端口被占用,cmd 里终结占用端口的程序即可。

Servlet 执行流程

Untitled

  1. Servlet由谁创建?Servlet方法由谁调用?

Servlet由web服务器创建,Servlet方法由web服务器调用

  1. 服务器怎么知道Servlet中一定有service方法?

因为我们自定义的Servlet,必须实现Servlet接口并复写其方法,而Servlet接口中有service方法

Servlet 生命周期

Servlet 方法介绍

Servlet中总共有5个方法,我们已经介绍过其中的三个,剩下的两个方法作用分别是什么?