JSP 脚本标签

原文:https://www.studytonight.com/jsp/jsp-scriptlet-tag.php

Scriptlet 标签允许您在 JSP 页面中编写 java 代码。Scriptlet 标签通过编写脚本/java 代码来实现_jspService方法功能。Scriptlet 标记的语法如下:

<% JAVA CODE %>

JSP:script let 示例

在这个例子中,我们将显示页面访问量。

<html>
    <head>
        <title>My First JSP Page</title>
    </head>
    <%
        int count = 0;
    %>
    <body>
        Page Count is <% out.println(++count); %>
    </body>
</html>

自从上几课以来,我们一直在使用上面的例子,在这个脚本中使用了标签。scriptlet 标签中编写的所有内容都被编译为 java 代码。就像上面的例子一样,我们用值 0 初始化类型为intcount变量。然后我们一边打印一边用++算子对其进行加法运算。

JSP 使得直接从 HTML 代码中执行计算、数据库交互等变得非常容易。只需在 scriptlet 标签中编写 java 代码。


JSP 脚本标签示例

在这个例子中,我们将创建一个简单的 JSP 页面,从请求参数中检索用户名。index.html页面将从用户处获取用户名。

index.html

<form method="**POST**" action="**welcome.jsp**">
    Name <input type="text" name="*user*" >
    <input type="submit" value="Submit">
</form>

在上面的 HTML 文件中,我们创建了一个表单,其中有一个供用户输入姓名的输入文本字段,以及一个提交表单的提交按钮。在提交时,会向 welcome.jsp 文件(action="**welcome.jsp**")发出一个 HTTP Post 请求(method="**POST**"),并带有表单值。

welcome.jsp

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Welcome Page</title>
    </head>
    <%
      String user = request.getParameter("user");
    %>

    <body>
        Hello, <% out.println(user); %>
    </body>
</html>

我们知道,一个 JSP 代码被翻译成 Servlet 代码,在其中执行_jspService方法,该方法以 HttpServletRequestHttpServletResponse 为参数。所以在welcome.jsp文件中,请求是 HTTP Request,它有从 index.html 页面的表单发送的所有参数,我们可以很容易地用参数名为参数的getParameter()来获取它的值。


混合脚本标签和超文本标记语言

让我们通过几个例子来看看如何利用 JSP 脚本和 HTML 的力量来构建动态网页。

如果我们想用 HTML 创建一个包含一些动态数据的表,例如从一些 MySQL 表或文件中读取数据。怎么做?这里我们将通过创建一个从 1 到 n 的表来描述这种技术。

 <table border = 1>
 **for ( int i = 0; i < n; i++ ) {
        **%>**
        <tr>
        <td>Number</td>
        <td></td>
        </tr>
        **}
**%>**
</table>****

上面这段代码将进入 JSP 文件的<body>标签,当你用某个值初始化n时,它将会工作。

此外,观察者紧密观察我们只在 scriptlet 标签中包含了 java 代码,所有的 HTML 部分都在它之外。同样,我们可以做很多事情。

这里还有一个非常简单的例子:

 **if ( hello ) {
        **%>**
        <p>Hello, world</p>
        **} else {
        **%>**
        <p>Goodbye, world</p>
        **}
**%>********

上面的代码使用 if-else 条件,基于名为hello布尔变量的值来计算要显示的内容。

您甚至可以要求用户使用 HTML 表单输入hello的值,并基于此评估您的 JSP 代码。