• 1.摘要
  • 2.基本信息
  • 3.由来
  • 4.命名
  • 5.生命周期
  • 6.工作模式
  • 7.比较
  • 8.版本
  • 9.新增功能
  • 10.规范
  • 11.编程接口
  • 12.常见容器
  • 13.建议
  • 14.参考资料

servlet

服务连接器

Servlet (Server Applet)译为“服务器端小程序”,是一种使用Java语言来开发动态网站的技术1

使用servlet开发动态网站非常方便,程序员只需要集中精力处理业务逻辑,不需要再为那些基础性的、通用性的功能编写代码,这使得Servlet在动态网站开发领域具备了很高的实用性。servlet 基于Java,可以使用几乎全部的Java API,所以它的功能异常强大,完全可以胜任企业级开发,能够处理那些高并发、大吞吐量、业务逻辑复杂的应用场景1

基本信息

  • 中文名

    服务连接器

  • 外文名

    Servlet

  • 类别

    程序

  • 环境

    Javaapplet

  • 平台

    Java Web Server

由来

servlet

Servlet 是在服务器上运行的小程序。这个词是在 Java applet的环境中创造的,Java applet 是一种当作单独文件跟网页一起发送的小程序,它通常用于在客户端运行,结果得到为用户进行运算或者根据用户互作用定位图形等服务。

服务器上需要一些程序,常常是根据用户输入访问数据库的程序。这些通常是使用公共网关接口(Common Gateway Interface,CGI)应用程序完成的。然而,在服务器上运行 Java,这种程序可使用 Java 编程语言实现。在通信量大的服务器上,Java Servlet 的优点在于它们的执行速度更快于 CGI 程序。各个用户请求被激活成单个程序中的一个线程,而无需创建单独的进程,这意味着服务器端处理请求的系统开销将明显降低。

实现过程

较早支持 Servlet 技术的是 Java Soft 的 Java Web Server。此后,一些其它的基于 Java 的 Web Server 开始支持标准的 Servlet API。Servlet 的主要功能在于交互式地浏览和修改数据,生成动态 Web 内容。这个过程为:

  1. 1.

    客户端发送请求至服务器端;

  2. 2.

    服务器将请求信息发送至 Servlet;

  3. 3.

    Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;

  4. 4.

    服务器将响应返回给客户端。

Servlet 看起来像是通常的 Java 程序。Servlet 导入特定的属于 Java Servlet API 的包。因为是对象字节码,可动态地从网络加载,可以说 Servlet 对 Server 就如同 Applet对 Client 一样,但是,由于 Servlet 运行于 Server 中,它们并不需要一个图形用户界面。从这个角度讲,Servlet 也被称为 Faceless Object。

一个 Servlet 就是 Java 编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。虽然 Servlet 可以对任何类型的请求产生响应,但通常只用来扩展 Web 服务器的应用程序。

命名

1/3

Servlet 的命名可以看出 sun 命名的特点,如 Applet 表示小应用程序;Scriptlet = Script + Applet,表示小脚本程序;同样 Servlet = Service + Applet,表示小服务程序。

生命周期

  1. 1.

    客户端请求该 Servlet;

  2. 2.

    加载 Servlet 类到内存;

  3. 3.

    实例化并调用init()方法初始化该 Servlet;

  4. 4.

    service()(根据请求方法不同调用doGet() 或者 doPost(),此外还有doHead()、doPut()、doTrace()、doDelete()、doOptions()、destroy())。

  5. 5.

    加载和实例化 Servlet。这项操作一般是动态执行的。然而,Server 通常会提供一个管理的选项,用于在 Server 启动时强制装载和初始化特定的 Servlet。

Server 创建一个 Servlet的实例

第一个客户端的请求到达 Server

Server 调用 Servlet 的 init() 方法(可配置为 Server 创建 Servlet 实例时调用,在 web.xml 中 <servlet> 标签下配置 <load-on-startup> 标签,配置的值为整型,值越小 Servlet 的启动优先级越高)

一个客户端的请求到达 Server

Server 创建一个请求对象,处理客户端请求