什么是 Servlet ?

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

Servlet 与 jsp 的区别

JSP是由Sun Microsystems公司主导创建的一种动态网页技术标准。jsp作为Servlet技术的扩展,经常会有人将jsp和Servlet搞混。

  1. Servlet在Java代码中可以通过HttpServletResponse对象动态输出HTML内容。
  2. JSP是在静态HTML内容中嵌入Java代码,然后Java代码在被动态执行后生成HTML内容。

Servlet 和 jsp 的各自的特点

  1. Servlet虽然能够很好地组织业务逻辑代码,但是在Java源文件中,因为是通过字符串拼接的方式生成动态HTML内容,这样就容易导致代码维护困难、可读性差。
  2. JSP虽然规避了Servlet在生成HTML内容方面的劣势,但是在HTML中混入大量、复杂的业务逻辑。

Servlet 与 Tomcat 的关系

Tomcat 是 Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,是一个免费的开放源代码的Servlet容器。Tomcat 作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户。而Servlet是一种运行在支持Java语言的服务器上的组件。

servlet和spring boot的区别 servlet和java的关系_HTML

servlet 原理

servlet和spring boot的区别 servlet和java的关系_Java_02

Servlet 生命周期

Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:

  1. Servlet 通过调用 init () 方法进行初始化。
    init 方法被设计成只调用一次。它在第一次创建 Servlet 时被调用,在后续每次用户请求时不再调用。
  2. Servlet 调用 service() 方法来处理客户端的请求。
    每次服务器接收到一个 Servlet 请求时,服务器会产生一个新的线程并调用服务。service() 方法检查 HTTP 请求类型(GET、POST、PUT、DELETE 等),并在适当的时候调用 doGet、doPost、doPut,doDelete 等方法。
  3. Servlet 通过调用 destroy() 方法终止(结束)。
    destroy() 方法只会被调用一次,在 Servlet 生命周期结束时被调用。destroy() 方法可以让 Servlet 关闭数据库连接、停止后台线程、把 Cookie 列表或点击计数器写入到磁盘,并执行其他类似的清理活动。
  4. 在调用 destroy() 方法之后,servlet 对象被标记为垃圾回收,由 JVM 的垃圾回收器进行垃圾回收的。