JSP脚本片段
JSP脚本片断是指嵌套在<% 和 %>之中的一条或多条Java程序代码,这些Java代码必须严格遵守Java语法规范,否则编译会报错。接下来,看一段简单的JSP内容,具体如下:
<h2>标题党<h2>
<%
int x = 3;
out.println(x);
%>
在上面的JSP内容中,<% 和 %>之间的代码 就是一个JSP脚本片段,该脚本片段中的Java代码必须严格遵守Java语法规范,在每个执行语句后都使用分号(;)结束。
需要注意的是,在一个JSP页面中,可以出现多个脚本片段,在两个或者多个脚本片段之间可以嵌套文本、HTML标记或其它JSP元素,并且这些脚本片段中的代码可以互相访问,例如,上面的JSP内容定义的变量可以在下面的JSP内容中输出。
<%
int x = 3;
%>
<h2>标题党<h2>
<%
out.println(x);
%>
单个脚本片断中的Java语句可以是不完整的,但是,多个脚本片断组合后的结果必须是完整的Java语句。这是因为脚本片断中的Java代码将被原封不动地移到由JSP页面所翻译成的Servlet的_jspService()方法中,脚本片断之外的任何文本、HTML标记以及其它JSP元素也都会被转换成相应的Java程序代码插入到_jspService()方法的相应位置,因此翻译成的Serlvet程序也不会有语法错误。例如,在工程chapter07下新建一个demo.jsp文件,其内容如下所示:
<%for(int i=1;i<3;i++) {%>
<h<%=i %>>itcast</h<%=i %>>
<%} %>
在翻译后的demo_jsp.java文件中,对应的Java代码如下所示:
for(int i=1;i<3;i++) {
out.write("\r\n");
out.write(" <h");
out.print(i );
out.write(">itcast</h");
out.print(i );
out.write(">\r\n");
out.write(" ");
}
启动Tomcat服务器,在浏览器中输入URL地址http://localhost:8080/chapter07/demo.jsp
访问demo.jsp页面,页面内容如图1所示。
图1 运行结果
从图1中可以看出,demo.jsp页面打印了两次“itcast”,而且由<h>标签控制的文字大小不同。由此说明,只要多个脚本片段及其它元素组合的结果是一个完整的Java语句,翻译后的Servlet程序就可以正常运行,并将结果显示出来。