JSP 元素标签

⚡ 智能摘要

JSP元素标签结构允许开发人员嵌入JSP元素。 Java 通过声明、脚本片段、表达式和注释标签直接将内容添加到页面中,从而在单个服务器渲染的文件中实现变量创建、逻辑执行、动态输出和可读文档。

  • 📝 声明标签: <%! %> 标签在 servlet 类级别(服务方法之外)声明变量和方法。
  • ⚙️ 脚本标签: <% %> 标签放置 Java 在每个客户端请求中,_jspservice() 函数内运行的语句。
  • 🔢 表达式标签: <%= %> 标签用于计算算术或逻辑表达式,并将结果写入输出。
  • 💬 评论标签: <%– –%> 标签会隐藏容器和浏览器中的注释,保持ping 代码已编写文档并保持简洁。
  • 🚀 在服务器上运行: 完整的 JSP 页面被打包成 WAR 文件,并部署到 JBoss 等 Web 服务器上。
  • 📁 目录结构: JSP 文件位于 WEB-INF 文件夹之外,而配置文件和库文件则位于 WEB-INF 文件夹之内。

JSP 标签

在本教程中,我们将学习 JSP 的基本标签以及如何在 JSP 中添加注释。除此之外,我们还将创建一个 JSP 并在服务器上运行该 JSP。

JSP 声明

  • 声明标签是 Java 用于声明变量、方法和类的代码。如果我们在声明标记内声明变量或方法,则意味着声明是在 servlet 类内部但在服务方法之外进行的。
  • 我们可以在声明标签内声明一个静态成员、一个实例变量(可以声明一个数字或字符串)和方法。

声明标签的语法:

<%!  Dec var  %>

这里 Dec var 是声明标签内的方法或变量。

计费示例:

在此示例中,我们将使用声明标签

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Declaration Tag</title>
</head>
<body>
<%! int count =10; %>
<% out.println("The Number is " +count); %>
</body>
</html>

代码解释:

Code 线10: 这里我们使用声明标签将变量计数初始化为 10。

执行上述代码时,您将获得以下输出:

JSP 声明

输出:

在声明标签中声明的变量被打印作为输出。

JSP 脚本

  • Scriptlet 标签允许写入 Java 代码放入 JSP 文件中。
  • JSP 容器在从 jsp 生成 servlet 时移动 _jspservice() 方法中的语句。
  • 对于客户端的每个请求,都会调用 JSP 的服务方法,因此 Scriptlet 中的代码会针对每个请求执行。
  • Scriptlet 包含每次调用 JSP 时执行的 Java 代码。

Scriptlet标签的语法:

<% java code %>

这里 <%%> 标签是 scriplets 标签,我们可以在其中放置 java 代码。

计费示例:

在这个例子中,我们采用包含 Java 代码的 Scriptlet 标签。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Scriplet</title>
</head>
<body>
<% int num1=10;
   int num2=40;
   int num3 = num1+num2;
   out.println("Scriplet Number is " +num3);
%>
</body>
</html>

代码说明:

Code 第 10-14 行: 在 Scriptlet 标签中,我们采用两个变量 num1 和 num2。第三个变量 num3 被采用,其相加为 num1 和 num2。输出为 num3。

执行代码时,您将获得以下输出:

JSP 脚本

输出:

Scriptlet Number 的输出是 50,它是 num1 和 num2 的加法。

JSP 表达式

  • 表达式标签评估其中的表达式。
  • 它访问存储在存储应用程序中的数据。
  • 它允许创建像算术和逻辑这样的表达式。
  • 它生成无脚本的 JSP 页面。

语法:

<%= expression %>

这里的表达式是算术表达式或者逻辑表达式。

计费示例:

在此示例中,我们使用表达式标签

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Expression</title>
</head>
<body>
<% out.println("The expression number is "); %>
<% int num1=10; int num2=10; int num3 = 20; %>
<%= num1*num2+num3 %>
</body>
</html>

代码说明:

Code 线12: 这里我们使用表达式标签,通过将两个数字(即 num1 和 num 2)相乘,然后添加第三个数字(即 num3)来使用表达式。

执行上述代码时,您将获得以下输出:

JSP 表达式

输出:

表达式数字为 120,其中我们将两个数字 num1 和 num2 相乘,然后将该数字与第三个数字相加。

JSP 注释

当 JSP 容器想要忽略某些文本和语句时,就会使用注释。

当我们想要隐藏某些内容时,我们可以将其添加到评论部分。

语法:

<% -- JSP Comments %>

这些标签用于在 JSP 中进行注释,并被 JSP 容器忽略。

这是浏览器忽略的 HTML 注释

计费示例:

在此示例中,我们使用 JSP 注释

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Comments</title>
</head>
<body>
<%-- Guru Comments section --%>
<% out.println("This is comments example"); %>

</body>
</html>

代码说明:

Code 线10: 这里我们在代码中添加了 JSP 注释来解释代码的内容。它被 JSP 容器忽略了

执行上述代码时,您将获得以下输出:

JSP 注释

输出:

我们得到了在 println 方法中打印的输出。注释被容器忽略

创建简单的 JSP 页面

  • JSP 页面包含以下 HTML 主体: Java 将其编码
  • 我们正在创建一个简单的 JSP 页面,其中包含声明、脚本、表达式和注释标签。

计费示例:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru JSP Example</title>
</head>
<body>

<%-- This is a JSP example with scriplets, comments , expressions --%>
<% out.println("This is guru JSP Example"); %>
<% out.println("The number is "); %>
<%! int num12 = 12; int num32 = 12; %>
<%= num12*num32 %>
Today's date: <%= (new java.util.Date()).toLocaleString()%>
</body>
</html>

代码说明:

Code 线1: 这里我们使用了 language、contentType 和 pageEncoding 等指令。语言是 Java 内容类型为 text/html,标准字符集为 ISO 8859。页面编码为标准字符集。

Code 线11: 这里我们使用 JSP 注释来向 JSP 添加注释

Code 线14: 这里我们声明变量 num12 和 num32,并用 12 初始化。

Code 线15: 这里我们使用一个表达式将两个数字 num12 和 num32 相乘。

Code 线16: 这里我们使用日期对象获取今天的日期。

执行上述代码时,将获得以下输出

创建简单的 JSP 页面

输出:

我们在这里打印,

  • 这是大师级 JSP 示例。
  • 该数字为num12*num32(12*12)。
  • 今天的日期是当前日期

如何运行简单的 JSP 页面

  • JSP 可以在 Web 服务器或应用程序服务器上运行。
  • 这里我们将使用一个 Web 服务器,并且我们可以将它部署到包含 war 应用程序的服务器上。
  • 我们可以在应用程序(war)中创建 JSP。

这是一个具有以下目录结构的应用程序,并且必须构建该应用程序。

运行简单的 JSP 页面

此应用程序必须被构建,构建成功后将出现以下消息:

运行简单的 JSP 页面

应用程序构建完成后,必须在服务器上运行该应用程序。

要在 Web 服务器上运行 JSP,请右键单击 IDE 的项目 (蚀 在本例中使用)有很多选项。选择在服务器上运行的选项。如下图所示;

从图中可以解释以下几点:

  1. 有两个选项,要么选择服务器,要么手动将服务器添加到此应用程序。在本例中,我们已经将 JBoss 服务器添加到应用程序,因此我们选择现有服务器。
  2. 一旦我们选择了服务器,服务器选项就会显示在点 2 中,表示我们要选择哪个服务器。此应用程序上可以配置多个服务器。我们可以从所有这些选项中选择一个服务器
  3. 选择该选项后,单击完成按钮,应用程序将在该服务器上运行。

运行简单的 JSP 页面

在下面的截图中,你可以注意到我们的 JSP 程序被执行了,并且测试应用程序被部署在 JBoss 服务器 红色框内标记。

运行简单的 JSP 页面

JSP 的目录结构

在目录结构中,有一个根文件夹,其中包含文件夹WEB-INF,其中包含所有配置文件和库文件。

JSP 文件位于 WEB-INF 文件夹之外

JSP 的目录结构

JSP的目录结构

计费示例:

在此示例中,测试应用程序的文件夹结构如下:

JSP 的目录结构

常见问题

声明标签将变量和方法放置在 servlet 类级别,位于服务方法之外。脚本标签将代码放置在服务方法内部,使其在每个客户端请求时运行。

不。脚本片段混合 Java 使用标记语言编写的 JSP 页面难以维护。现代 JSP 页面倾向于使用表达式语言 (ELU)、JSTL 和标签库,这样可以将表现层与业务逻辑分离,从而提高可读性。

表达式标签包含一个值,容器会将该值转换为字符串并写入输出。添加分号会将其变成语句,而语句在表达式标签内是无效的。

AI可以根据简单的描述生成声明、脚本片段和表达式标签,标记语法错误,并推荐更简洁的替代方案,例如JSTL、HEL等。ping 初学者也能更快地构建正确的JSP页面。

是的。AI 工具可以将脚本繁多的页面重构为表达式语言和 JSTL,从而减少嵌入式代码。 Java开发人员应检查输出结果,以确认逻辑和作用域行为保持不变。

总结一下这篇文章: