编写JSP页面时,可以使用三种类型的脚本元素。这些脚本元素包括:
Scriptlet是Java代码的一部分。
可以求值并打印出结果的表达式。
声明可用于声明变量或方法。
脚本是以开头<%和结尾的Java代码块%>。我们可以在JSP页面中包含多个scriptlet块。以下示例显示了如何编写脚本:
<%@ page import="java.text.DateFormat" %> <%@ page import="java.text.SimpleDateFormat" %> <%@ page import="java.util.Date" %> <%@ page import="java.util.Calendar" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE html> <html> <head> <title>JSP - Scripting Scriptlets</title> </head> <body> <% DateFormat formatter = new SimpleDateFormat("EEE, dd/MM/yyyy HH:mm:ss"); out.print(formatter.format(new Date())); %> <br/> <% Calendar calendar = Calendar.getInstance(); out.print(formatter.format(calendar.getTime())); %> </body> </html>
在上面的脚本中,我们可以formatter在第二个脚本中使用第一个脚本上的对象。第一个脚本中声明的任何对象或变量在第二个脚本中均可用。
要在JSP中创建一个表达式,我们可以使用<%=和关闭%>。将评估此类块中的表达式,并将其值打印为JSP页面输出。可以说,表达式块是out.print()JSP页面中方法的快捷方式。您还注意到表达式不以分号结尾。
这是JSP页面中的表达式示例:
<%@ page import="java.util.Date" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE html> <html> <head> <title>JSP - Scripting Expressions</title> </head> <body> Today is: <%= new Date() %><br/> Session Id: <%= session.getId() %><br/> <%--The above expression is equals with the following scriptlets--%> Today is: <% out.print(new Date()); %><br/> Session Id: <% out.print(session.getId()); %> </body> </html>
最后的脚本元素是此声明。声明元素以a开头,以<%!结尾%>。我们可以使用此块来声明可在JSP页面中使用的变量和方法。让我们看下面的例子:
<%@ page import="java.util.Date" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE html> <%! public int add(int number1, int number2) { return number1 + number2; } public Date getDate() { return new Date(); } %> <html> <head> <title>JSP Declarations</title> </head> <body> Today is: <%= getDate() %><br/> 20 + 10 = <%= add(20, 10) %> </body> </html>