步骤:
- 创建Web项目
web-demo
,导入Servlet依赖坐标 - 创建:定义一个类,实现Servlet接口,并重写接口中所有方法,并在service方法中输入一句话
- 配置:在类上使用@WebServlet注解,配置该Servlet的访问路径
- 访问:启动Tomcat,浏览器中输入URL地址访问该Servle
//导入Servlet依赖坐标
<dependencies>
<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>
</dependencies>
//步骤2
package com.kuangziyao;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
//步骤3:配置//步骤3:配置:在类上使用@WebServlet注解,
@WebServlet("/demo1")
public class ServletDemo1 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("干饭");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
执行流程

Servlet程序能正常运行,但是我并没有创建ServletDemo1类的对象,也没有调用对象中的service方法,为啥在控制台就能打印了呢?
- 浏览器发出
http://localhost:8080/web-demo/demo1
请求,从请求中可以解析出三部分内容,分别是localhost:8080
、web-demo
、demo1
- 根据
localhost:8080
可以找到要访问的Tomcat Web服务器 - 根据
web-demo
可以找到部署在Tomcat服务器上的web-demo项目 - 根据
demo1
可以找到要访问的是项目中的哪个Servlet类,根据@WebServlet后面的值进行匹配
- 根据
- 找到ServletDemo1这个类后,Tomcat Web服务器就会为ServletDemo1这个类创建一个对象,然后调用对象中的service方法
- ServletDemo1实现了Servlet接口,所以类中必然会重写service方法供Tomcat Web服务器进行调用
- service方法中有ServletRequest和ServletResponse两个参数,ServletRequest封装的是请求数据,ServletResponse封装的是响应数据,我们可以通过这两个参数实现前后端的数据交互
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。