文章目录

  • 1 Servlet概述
  • 1.1 基本概念
  • 1.2 技术优点
  • 2 Servlet原理
  • 2.1 对象的创建
  • 2.2 调用service()方法
  • 3 Servlet原理图解


1 Servlet概述

1.1 基本概念

Servlet是使用Java语言编写的运行在服务器端的程序, 由sun公司开发而来,主要用于处理客户端传来的Http请求,并返回一个响应。狭义的Servlet是指使用Java实现的一个接口,广义上的Servlet指的就是实现这个接口的任何类。一般情况下,我们说的Servlet指的就是后者。

1.2 技术优点

Servlet技术具有以下优点:

  • 方便:Servlet 提供了大量的实用工具例程,如处理很难完成的 HTML 表单数据、读取和设置 HTTP 头,以及处理 Cookie 和跟踪会话等。
  • 跨平台:Servlet 使用 Java 类编写,可以在不同的操作系统平台和不同的应用服务器平台运行。
  • 灵活性和可扩展性:采用 Servlet 开发的 Web 应用程序,由于 Java 类的继承性及构造函数等特点,使得应用灵活,可随意扩展。

2 Servlet原理

浏览器向web容器(Tomcat服务器)发送Http请求,web容器会判断这个Http请求是不是第一次出现,如果是,web容器就会创建一个Servlet实例(因此在第一次发送Http请求时,响应一般会比较慢);如果不是,则会直接调用已经存在的Servlet。下面,我们就以浏览器第一次发送Http请求为例,详细讲解Servlet原理。

2.1 对象的创建

当浏览器第一次发送Http请求时,web容器就会创建一个Servlet实例;与此同时,针对这个Http请求,还会分别创建:

  • 一个代表请求的HttpServletRequest对象,用于封装浏览器的请求消息;
  • 一个代表响应的HttpServletResponse对象,用于封装响应消息,便于web容器读取。

2.2 调用service()方法

之后,Servlet就会从HttpServletrequest对象中读取请求数据,调用service()方法,用于处理请求,响应消息, 并把响应消息写入到HttpServletResponse对象中。最后web容器从HttpServletResponse中读取响应数据,并返回给浏览器。

void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;

以上过程都是在web容器(Tomcat服务器)内部进行。 因此,如果想开发一个Servlet程序,只需要实现以下两个步骤即可:

  • 编写一个类,实现Servlet接口,重写doGet()和doPost()方法。
  • 把开发好的java程序部署到web服务器中

3 Servlet原理图解

Java中的servlet和service有什么区别_服务器