在JSP页面中,脚本标识使用的最为频繁,因为他们能够方便、灵活地生成页面中的动态内容,特别是JSP程序代码块。JSP中的脚本标识包括3部分,即JSP声明区、JSP表达式和JSP程序代码块。通过这些标识,在JSP页面中可以像编写Java程序一样声明变量、定义函数或进行各种表达式运算。
JSP声明区
声明标识用于在JSP页面中定义全局的变量或方法。通过声明标识定义的变量和方法被整个JSP页面访问,所以通常使用该标识定义整个JSP页面需要引用的变量或方法。
服务器执行JSP页面时,会将JSP页面转换为Servlet类,在该类中会把JSP声明区中定义的变量和方法转换为成员变量和方法。
声明标识的语法格式如下:
<%! 声明变量或方法的代码 %>
"<%"与"!"之间不可以有空格,但是"!"与其后面的代码之间可以有空格,另外,"<%!"与"%>"可以不在同一行,例如,下面的格式也是正确的。
<%!
声明变量或方法的代码
%>
例:在JSP声明区声明一个全局变量和全局方法。
<%! int number = 0;
int count(){
number++;
return number;
}
%>
JSP表达式
JSP表达式用于向页面中输出信息,其语法格式如下:
<%= 表达式 %>
表达式可以使任何Java语言的完整表达式,该表达式的最终运算结果将被转换为字符串。
例:使用JSP表达式在页面中输出信息。
<%! String manager = "mr" %> //定义保存管理员名的变量
管理员:<%= manager %> //输出结果为:管理员:mr
<%= "管理员:" + manager %> //输出结果为:管理员:mr
<%= 5+6 %> //输出结果为:11
JSP表达式不仅可以插入到网页的文本中,用于输出文本内容,也可以插入到HTML标记中,用于动态设置属性值。
JSP程序代码块
所谓JSP程序代码块,就是在JSP页面中嵌入的Java代码或是脚本的代码。JSP程序代码块将在页面请求处理期间被执行,通过Java代码可以定义变量或是流程控制语句等;而通过脚本代码可以应用JSP的内置对象在页面输出内容、处理请求和响应、访问session会话等。JSP程序代码块的语法格式如下:
<% Java代码或是脚本代码 %>
JSP程序代码块的使用比较灵活,它所实现的功能是JSP表达式无法实现的。
JSP程序代码块与JSP声明区的区别是:通过JSP声明区创建的变量和方法时在当前JSP页面中有效,它的生命周期是从创建开始到服务器关闭结束;JSP程序代码块创建的变量或方法,也是在当前JSP页面中有效,但它的生命周期是页面关闭后就会被销毁。
例:通过JSP程序代码块和JSP表达式在JSP页面中输出九九乘法表。
编写一个名为index.jsp的文件,在该页面中先通过JSP程序代码块将输出九九乘法表的文本连接成一个字符串,然后通过JSP表达式输出该字符串。index.jsp文件的代码如下:
<body>
<% String str = "";
for(int i = 1;i<=9;i++){
for(int j = 1;j<=i;j++){
str+=j+"*"+i+"="+j*i;
str+=" ";
}
str+="<br>";
}
%>
<%=str %>
</body>
启动服务器,在地址栏中输入localhost:8080/jsp_demo/index.jsp,浏览器将显示如图3所示的页面。
图3 index.jsp