JavaWeb -- Servlet

185 阅读2分钟

一、Servlet 简介

1、JavaWeb 的三大组件:

① Servlet 程序
② Filter 过滤器
③ Listener 监听器

2、什么是Servlet?

Servlet 是 Java EE 的规范之一,规范就是指接口

它是运行在服务器上的一个java 小程序,可以接收客户端发过来的请求,并响应数据给客户端

Tomcat响应过程.png ①:Tomcat将http请求文本接收并解析,然后封装成HttpServletRequest类型的request对象,所有的HTTP头数据读可以通过request对象调用对应的方法查询到。

②:Tomcat同时会要响应的信息封装为HttpServletResponse类型的response对象,通过设置response属性就可以控制要输出到浏览器的内容,然后将response交给tomcat,tomcat就会将其变成响应文本的格式发送给浏览器

Java Servlet API 是Servlet容器(tomcat)和servlet之间的接口,它定义了serlvet的各种方法,还定义了Servlet容器传送给Servlet的对象类,其中最重要的就是ServletRequest和ServletResponse。所以说我们在编写servlet时,需要实现Servlet接口,按照其规范进行操作。

3、手动实现Servlet

① 编写一个类去实现Servlet接口

创建一个MyServlet继承HttpServlet,重写doGet和doPost方法,也就是看请求的方式是get还是post,然后用不同的处理方式来处理请求

public class MyServlet extends HttpServlet {
}

重写doGet和doPost方法

image.png

② 实现service方法,处理请求并响应数据。(service是用来处理请求和响应的)

③ 到web.xml中配置servlet程序的访问地址

作用:让浏览器发出的请求知道到达哪个servlet,也就是让tomcat将封装好的request找到对应的servlet让其使用。

image.png

流程:

① 首先浏览器通过 http://localhost:8080/test01/MyServlet (也就是一个URL地址:Servlet后端地址)来触发访问Servlet里的路由配置,找到web.xml中servlet-mapping结点里的url-pattern;

② 匹配到了url-pattern后,就会找到第二步servlet的名字MyServlet;

③ 知道了名字,就可以通过servlet-name向上找到servlet节点,找name相同的节点,也就能够知道servlet的位置了;

④ 最后得到一个后端类,去执行找到对应的处理方式进行处理。

二、Servlet 生命周期

image.png

servlet后端类的三个重要的方法:

服务器启动时(web.xml中配置load-on-startup=1,默认为0)或者第一次请求该servlet时,就会初始化一个Servlet对象,也就是会执行初始化方法init(ServletConfig conf)

该servlet对象去处理所有客户端请求,在service(ServletRequest req,ServletResponse res)方法中执行

最后服务器关闭时,才会销毁这个servlet对象,执行destroy()方法

image.png