Java Web从入门到精通(第2版)
上QQ阅读APP看书,第一时间看更新

5.3 脚本标识

在JSP页面中,脚本标识使用得最为频繁。因为它们能够方便、灵活地生成页面中的动态内容,特别是Scriptlet脚本程序。JSP中的脚本标识包括3部分,即JSP表达式(Expression)、声明标识(Declaration)和脚本程序(Scriptlet)。通过这些标识,在JSP页面中可以像编写Java程序一样来声明变量、定义函数或进行各种表达式的运算。下面将对这些标识进行详细介绍。

5.3.1 JSP表达式

视频讲解:光盘\TM\lx\5\05 JSP表达式.mp4

JSP表达式用于向页面中输出信息,其语法格式如下:

        <% = 表达式%>

参数说明:

表达式:可以是任何Java语言的完整表达式。该表达式的最终运算结果将被转换为字符串。

注意

“<%”与“=”之间不可以有空格,但是“=”与其后面的表达式之间可以有空格。

【例5.13】使用JSP表达式在页面中输出信息。示例代码如下:

        <%String manager="mr"; %>           //定义保存管理员名的变量
        管理员:<%=manager %>               //输出结果为:管理员:mr
        <%="管理员:"+manager %>            //输出结果为:管理员:mr
        <%=5+6 %>                           //输出结果为:11
        <%String url="126875.jpg"; %>       //定义保存文件名称的变量
        <img src="images/<%=url %>">        //输出结果为:<img src="images/126875.jpg">

说明

JSP表达式不仅可以插入到网页的文本中,用于输出文本内容,也可以插入到HTML标记中,用于动态设置属性值。

5.3.2 声明标识

视频讲解:光盘\TM\lx\5\06声明标识.mp4

声明标识用于在JSP页面中定义全局的变量或方法。通过声明标识定义的变量和方法可以被整个JSP页面访问,所以通常使用该标识定义整个JSP页面需要引用的变量或方法。

说明

服务器执行JSP页面时,会将JSP页面转换为Servlet类,在该类中会把使用JSP声明标识定义的变量和方法转换为类的成员变量和方法。

声明标识的语法格式如下:

        <%! 声明变量或方法的代码 %>

注意

“<%”与“! ”之间不可以有空格,但是“! ”与其后面的代码之间可以有空格。另外,“<%! ”与“%>”可以不在同一行,例如,下面的格式也是正确的。

        <%!
            声明变量或方法的代码
         %>

【例5.14】通过声明标识声明一个全局变量和全局方法。代码如下:

        <%!
            int number=0;         //声明全局变量
            int count(){          //声明全局方法
                number++;         //累加number
                return number;    //返回number的值
            }
        %>

通过上面的代码声明全局变量和全局方法后,在后面如果通过<%=count()%>调用全局方法,则每次刷新页面,都会输出前一次值+1的值。

5.3.3 代码片段

视频讲解:光盘\TM\lx\5\07代码片段.mp4

所谓代码片段,就是在JSP页面中嵌入的Java代码或是脚本代码。代码片段将在页面请求的处理期间被执行,通过Java代码可以定义变量或是流程控制语句等;而通过脚本代码可以应用JSP的内置对象在页面输出内容、处理请求和响应、访问session会话等。代码片段的语法格式如下:

        <% Java代码或是脚本代码 %>

代码片段的使用比较灵活,它所实现的功能是JSP表达式无法实现的。

说明

代码片段与声明标识的区别是:通过声明标识创建的变量和方法在当前JSP页面中有效,它的生命周期是从创建开始到服务器关闭结束;代码片段创建的变量或方法,也是在当前JSP页面中有效,但它的生命周期是页面关闭后就会被销毁。

【例5.15】通过代码片段和JSP表达式在JSP页面中输出九九乘法表。(实例位置:光盘\TM\sl\5\3)

编写一个名称为index.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+="&nbsp; ";               //加入空格符
                }
                str+="<br>";                      //加入换行符
            }
        %>
        <table width="440" height="85" border="1" cellpadding="0" cellspacing="0" style="font:9pt; "
        bordercolordark="#666666" bordercolorlight="#FFFFFF" bordercolor="#FFFFFF">
          <tr>
           <td height="30" align="center">九九乘法表</td>
          </tr>
          <tr>
           <td style="padding:3pt">
                <%=str%>                          //输出九九乘法表
            </td>
          </tr>
        </table>
        </body>

运行程序,将显示如图5.5所示的结果。

图5.5 在页面中输出九九乘法表