🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Java 服务器页面简介 > 原文: [https://beginnersbook.com/2013/05/jsp-tutorial-introduction/](https://beginnersbook.com/2013/05/jsp-tutorial-introduction/) **JSP** 是一种服务器端技术,可以完成服务器上的所有处理。它用于创建动态 Web 应用,使用 java 作为编程语言。 基本上,只需将文件扩展名从`.html`更改为`.jsp`,任何 HTML 文件都可以转换为 JSP 文件,它运行得很好。 JSP 与 HTML 的区别在于能够在 HTML 中使用 Java 代码。在 JSP 中,您可以使用 JSP 标签在 Java 中嵌入 Java 代码。例如运行下面的代码,每次运行它时,它都会显示当前时间。这就是使这段代码充满活力的原因。 ```html <HTML> <BODY> Hello BeginnersBook Readers! Current time is: <%= new java.util.Date() %> </BODY> </HTML> ``` ## 你的第一个 JSP 让我们开始用**简单 JSP** 学习 JSP。 ```html <%-- JSP comment --%> <HTML> <HEAD> <TITLE>MESSAGE</TITLE> </HEAD> <BODY> <%out.print("Hello, Sample JSP code");%> </BODY> </HTML> ``` 上面的 JSP 生成以下输出:`"Hello, Sample JSP code"`。 **上述代码的说明** 1)行`<%-- JSP comment --%>`表示名为 JSP 注释的 JSP 元素,在向 JSP 页面添加注释时可以使用此标签,我们将在后续帖子中详细讨论。 **注意:**JSP 注释必须以标签`<%--`开头,以`--%>`结尾。 2)`Head`,`Title`和`Body`标签是 HTML 标签 - 它们是 HTML 标签,经常用于静态网页。无论他们拥有什么内容,都会传递给客户端(Web 浏览器)。 3)`<%out.print("Hello, Sample JSP code");%>`是一个 JSP 元素,称为 Scriptlet。 Scriptlet 可以包含 Java 代码。 scriptlet 的语法是:`<%Executable java code>`。由于 Scriptlets 中的代码是 java 语句,因此它们必须以分号(`;`)结尾。`out.print("Hello, Sample JSP code");`是一个 java 语句,它打印`"Hello, Sample JSP code"`。 如上所述,JSP 用于创建动态网页。动态网页通常是静态和动态内容的混合。 **静态内容**可以使用基于文本的格式,如 HTML,XML 等,**动态内容**由 JSP 标签使用 HTML 内部的 Java 代码生成。 ## Servlet 与 JSP 与 JSP 一样,Servlet 也用于生成动态网页。这是他们之间的比较。 它们之间的主要区别在于 servlet 在 java 中添加了 HTML 代码,而 JSP 在 HTML 中添加了 Java 代码。还有一些其他值得注意的要点如下: **Servlets**: 1. Servlet 是一个支持 HTML 标签的 Java 程序。 2. 通常用于开发企业应用的业务层(复杂计算代码)。 3. Servlet 由 Java 开发人员创建和维护。 **JSP**: 1. JSP 程序也是支持 java 语句的 HTML 代码。更准确地说,JSP 使用 JSP 标签在 java 中嵌入 java。 2. 用于开发企业应用的表示层 3. 经常用于设计网站并由 Web 开发人员使用。 ## JSP 的优点 1. JSP 具有 Servlet 的所有优点,如:比 CGI 更好的性能内置会话功能,它还继承了 Java 技术的特性,如多线程,异常处理,数据库连接等。 2. JSP 支持将内容生成与内容呈现分离。这使它更灵活。 3. 使用 JSP,Web 设计人员现在可以轻松地显示需要的信息。 4. Web 应用程序员可以专注于如何处理/构建信息。 ## JSP 应用的架构 在我们开始开发 Web 应用之前,我们应该对架构有一个基本的想法。根据请求处理发生的位置(Servlet 或者 JSP(Java 服务器页面)),JSP 有两种架构。它们是 - 模型架构 1 和 模型架构 2。 **1)模型架构 1**:在这个模型中,JSP 起着关键作用,它负责处理客户端发出的请求。客户端(Web 浏览器)发出请求,JSP 然后创建一个 bean 对象,然后完成请求并将响应传递给 JSP。 JSP 然后将响应发送回客户端。与模型架构 2 不同,在此模型中,大多数处理都是由 JSP 本身完成的。 ![JSP Architecture Model 1](https://img.kancloud.cn/53/f0/53f0ab965eee0bffdc804b1ad8172237_400x250.jpg) **2)模型架构 2**:在这个模型中,Servlet 扮演着重要角色,它负责处理客户端(Web 浏览器)请求。演示部分(GUI 部分)将由 JSP 处理,并在 bean 的帮助下完成,如下图所示。 servlet 充当控制器并负责请求处理。如果 JSP 页面需要,它会创建 bean 对象并调用相应的 JSP 页面。 JSP 使用 bean 对象处理表示部分。在这个模型中,JSP 不进行任何处理,Servlet 根据客户端的请求创建 bean 对象并调用 JSP 程序。 ![JSP Architecture Model 2](https://img.kancloud.cn/30/f1/30f1e8030fb3fc233fe9afd8eedf8ecf_400x250.jpg)