Servlet基础知识


在这里插入图片描述

前言

Servlet(Server Applet)是一种Java编写的服务器端程序,用于接收Client请求并返回响应,相当于Web应用程序的控制器。Servlet依赖于Java Servlet API,该API提供了Servlet编写所需的所有类和接口。

知识点参考书籍:Java Web从入门到项目实践(超值版)

Servlet的由来

Servlet是Java企业版(Java EE)中的一种技术,它最初由Sun Microsystems(现在是Oracle公司)于1997年推出。

它是一种用于构建基于Web的应用程序的Java技术。Servlet的概念最早出现在Java Servlet API 1.0中,这是Java平台提供的一种用于处理Web请求和生成动态Web内容的方式。

Servlet的定义

Servelt 是Java Servlet的简称,可理解为小服务程序或服务连接器,是指用Java语言编写的服务器端程序。

狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们都偏向于后者的理解。

Servlet的主要功能

主要功能在于交互式地浏览和修改数据(即用于接收和响应客户端的HTTP请求),生成动态Web内容,Servlet通常只运行在支持Java的应用服务器中,尽管从原理上来说Servlet技术可以响应任何类型的请求,但绝大多数情况下只是用来拓展基于HTTP的Web服务器。

Servlet的工作原理

反射+回调:Servlet容器如Tomcat会通过web.xml的配置文件反射出Servlet对象后,并回调运行该对象的service()方法,然后实行具体逻辑业务,多数的MVC框架的Controller都是这种模式

Servlet的工作原理基于Java的面向对象和事件驱动的编程模型。当客户端(例如Web浏览器)发送HTTP请求时,Web容器接收请求并根据配置将请求交给相应的Servlet。Servlet处理请求,执行业务逻辑,生成HTTP响应,然后将响应发送回客户端。Servlet通常用于生成动态内容,如HTML页面、JSON数据或XML文档。

案例演示

在这里插入图片描述

下面是Servlet在拓展基于HTTP的Web服务器下执行的主要流程

1. 客户端发送HTTP请求:

用户在Web浏览器中输入URL或点击链接,发出一个HTTP请求,要求登录到应用程序。
在这里插入图片描述

2. 服务器接收请求

当HTTP请求到达Web服务器时,Web服务器(比如Apache HTTP Server)接收到请求,但它不能处理Servlet请求,所以将请求传递给配置好的Servlet容器,比如Tomcat,Tomcat拦截请求并查找与请求URL匹配的Servlet。在我们的示例中,容器会查找处理登录的Servlet。
在这里插入图片描述

4. 实例化该Servlet

(如果尚未实例化),并调用其init()方法进行初始化。在这里插入图片描述

5. 调用该Servlet的service()方法

调用该Servlet的service()方法,将HTTP请求和响应对象传递给Servlet。在service()方法中,Servlet可以访问HTTP请求的信息,执行业务逻辑,具体是doGet(), doPost(), doPut(), doDelete()等方法,根据请求类型的不同来调用适当的方法。,生成HTTP响应,然后将其返回给Servlet容器(例子里指的是Tomcat)。
再由Tomcat将响应送回Web服务器,客户端解析响应并显示相关信息。

在这里插入图片描述

6. 结束Servlet生命周期

在调用完service()方法后,Servlet会调用destory()方法来终结这个实例化对象的生命周期,最终会由JVM的垃圾回收器对Servlet进行垃圾回收。在这里插入图片描述

注意:这里解释一下Tomcat和Web服务器的关系

Web服务器和Tomcat之间是一种常见的协同关系,特别是在Java EE(Enterprise Edition)Web应用程序开发中。

Web服务器

Web服务器是一种软件,用于处理HTTP请求和响应。它可以处理静态内容(如HTML、CSS、图像等)的请求,并将动态内容的请求传递给相应的应用程序。典型的Web服务器有Apache HTTP Server、Nginx等。这些服务器专注于处理HTTP协议级别的请求和静态内容。

Tomcat

Apache Tomcat是一个开源的Java Servlet容器,也是一个Web服务器。Tomcat的主要功能是执行Servlet和JSP(JavaServer Pages)等Java技术创建的动态Web内容。Tomcat能够接收HTTP请求并根据请求中的URL找到适当的Servlet或JSP来处理这些请求。因此,Tomcat不仅是一个Servlet容器,还是一个Web服务器。

Servlet容器

Servlet容器是一个Web服务器组件,负责管理和执行Servlet的生命周期,处理Servlet的请求和响应。Tomcat充当了Servlet容器的角色。当一个HTTP请求到达Tomcat时,Tomcat会根据请求的URL定位合适的Servlet,并将请求交给该Servlet来处理。

在这里插入图片描述

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

罗不丢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值