JSP 脚本标签
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 初始化类型为int
的count
变量。然后我们一边打印一边用++
算子对其进行加法运算。
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
方法,该方法以 HttpServletRequest 和 HttpServletResponse 为参数。所以在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 代码。