JSP脚本标签
JSP脚本标签通常用作对象操作和数据运算,从而动态地生成页面内容。这里有三种类型的脚本标签:声明、代码段和表达式。
JSP声明
JSP声明一个或多个变量、方法,供以后的代码使用。必须先对变量和方法进行声明,才能使用他们。
JSP声明的语法
<%!声明语句%>
也可以用如下格式:
<jsp:declaration>声明语句</jsp:declaration>
JSP脚本和声明的区别
JSP 脚本只能声明变量,不能声明方法。JSP 声明语句可以声明变量和方法。
JSP 脚本会把包含的内容转译插入到 Servlet 的 service() 方法中,也就是 <% %> 中定义的变量是局部变量。这也是 JSP 脚本不能声明方法的原因,因为 Java 不允许方法中嵌套方法。
JSP 声明会把包含的内容添加到 Servlet 类中(在任何方法之外),也就是 <%! %> 中定义的变量是成员变量,方法是成员方法。
JSP代码段
- 在JSP界面中可以使用JSP代码段在界面中书写Java代码
- JSP代码段可以包含语句、变量和表达式,JSP代码段会把这些内容添加到Servlet的service方法中;
- JSP代码段的语法<%Java代码%>
或者在JSP页面中使用<jsp:scriptlet></jsp:scriptlet>,然后在该标记中间书写Java代码;
下面用实例来介绍一下JSP代码段的使用
创建一个login.html页面,用来输入一些测试数据
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录界面</title>
</head>
<body>
<form action="scriptlet.jsp" method="post">
<input type="text" name="uname"><br/>
<input type="text" name="url"><br/>
<input type="submit" value="go">
</form>
</body>
</html>
创建一个scriptlet的JSP界面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>JSP代码段</title>
</head>
<body>
<%
String name = request.getParameter("uname");
String url= request.getParameter("url");
out.print("欢迎" + name + ",我们的网址是:" + url);
%>
</body>
</html>
启动该应用
打开浏览器,在浏览器地址栏中输入地址 http://localhost:8686/s01/login.html,打开的界面如下图所示
输入名称和网站地址,然后点击go按钮
得到界面结果如下
修改一下scriptlet.jsp的代码,修改后的代码如下
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>JSP脚本</title>
</head>
<body>
<%--<%--%>
<%-- String name = request.getParameter("uname");--%>
<%-- String url= request.getParameter("url");--%>
<%-- out.print("欢迎" + name + ",我们的网址是:" + url);--%>
<%--%>--%>
<jsp:scriptlet>
String name = request.getParameter("uname");
String url= request.getParameter("url");
out.print("欢迎" + name + ",我们的网址是:" + url);
</jsp:scriptlet>
</body>
</html>
在浏览器地址栏中输入地址 http://localhost:8686/s01/login.html,可以看到会得到相同的结果
JSP表达式
可以将变量或者表达式输出到页面上,不需要out.print()就能输出数据。通常用于打印变量或者方法的值。
表达式语法:
<%=表达式%>
或者用
<jsp:expression>表达式</jsp:expression>
这里需要注意JSP表达式不能以分号结尾。
添加一个expression.jsp页面,页面代码如下
访问该页面得到的结果为