返回介绍

Servlet 和 JSP

发布于 2025-04-22 20:09:56 字数 2157 浏览 0 评论 0 收藏

Java Servlet 技术是 Java 体系中用于开发 Web 应用的底层技术。1996 年,Servlet 和 JSP 由 SUN 系统公司发布,以替代 CGI 技术,作为产生 Web 动态内容的标准。CGI 技术为每一个请求创建相应的进程,但是,创建进程会耗费大量的 CPU 周期,最终导致很难编写可伸缩的 CGI 程序。相对于 CGI 程序,一个 Servlet 则快多了,这是因为当一个 Servlet 为响应第一次请求而创建后,会驻留在内存中,以便响应后续请求。

从 Servlet 技术出现的那天起,人们开发了大量的 Web 框架来帮助程序员快速编写 Web 应用程序。这些开发框架让开发人员能更关注业务逻辑,减少编写“相似”的代码片段。尽管如此,开发人员依然需要去理解 Servlet 技术的基础概念。随后发布的 JavaServer Pages(JSP)技术,是用来帮助简化 Servlet 开发。尽管实践中会应用一些诸如 Spring MVC、Struct 2 或者 JSF 等强大的开发框架,但如果没有深入理解 Servlet 和 JSP 技术,则无法有效和高效地开发。Servlet 是运行在 Servlet 容器中的 Java 程序,而 Servlet 容器或 Servlet 引擎相当于一个 Web 服务器,但是可以产生动态内容,而不仅是静态资源。Servlet 当前的版本为 3.1,其规范定义可见 JSR (Java Specification Request)340(http://jcp.org/en/jsr/detail?id=340),基于 Java 标准版本 6 及以上版本。JSP 2.3 规范定义在 JSR 245(http://jcp.org/en/jsr/detail?id=245)。本书假定读者已经了解 Java 以及面向对象编程技术。对于 Java 新手,推荐阅读《Java 7:A Beginner’s Tutorial(fourth Edition)》。

一个 Servlet 是一个 Java 程序,一个 Servlet 应用包含了一个或多个 Servlet,一个 JSP 页面会被翻译并编译成一个 Servlet。

一个 Servlet 应用运行在一个 Servlet 容器中,它无法独立运行。Servlet 容器将来自用户的请求传递给 Servlet 应用,并将 Servlet 应用的响应返回给用户。由于大部分 Servlet 应用都会包含一些 JSP 界面,故称 Java Web 应用为“Servlet/JSP”应用会更恰当些。

Web 用户通过一个诸如 IE、火狐或者 Chrome 等 Web 浏览器来访问 Servlet 应用。Web 浏览器又称为 Web 客户端。图 1 展示了一个典型的 Servlet/JSP 应用架构。

图 1 Servlet/JSP 应用架构

Web 服务端和 Web 客户端基于 HTTP 通信。因此,Web 服务端往往也称为 HTTP 服务端。

一个 Servlet/JSP 容器是一个能处理 Servlet 以及静态资源的 Web 服务端。过去,由于 HTTP 服务器更加健壮,人们更愿意将 Servlet/JSP 容器作为 HTTP 服务器(如 Apache HTTP 服务器)的一个模块来运行,在这种场景下,Servlet/JSP 容器用来产生动态内容,而 HTTP 服务器处理静态资源。今天,Servlet/JSP 容器已经更加成熟,并且被广泛地独立部署。Apache Tomcat 和 Jetty 作为最流行的 Servlet/JSP 容器,免费而且开源。下载地址为 http://tomcat.apache.org 和 http://jetty.codehaus.org。

Servlet 和 JSP 仅是 Java 企业版众多技术之一,其他 Java 企业版技术包括 JMS、EJB、JSF 和 JPA 等。Java 企业版 7(当前最新版)完整的技术列表见 Http://www.oracle.com/technetwork/java/ javaee/tech/index.html。

运行一个 Java 企业版应用需要一个 Java 企业版容器,常见的容器有 GlassFish、JBoss、Oracle Weblogic 以及 IBM WebSphere。虽然可以将一个 Servlet/JSP 应用部署到 Java 企业版容器中,但一个 Servlet/JSP 容器其实就足够了,而且更加轻量级。Tomcat 和 Jetty 不是 Java 企业版容器,故它们不能运行 EJB 或 JMS。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。