JSP 允許在“<%”和“%>”之間插入 Java 程序段。一個(gè) JSP 頁(yè)面可以有許多程序段,這些程序段將被 JSP 引擎按順序執(zhí)行。
在一個(gè)程序段中聲明的變量叫作 JSP 頁(yè)面的局部變量,它們?cè)?JSP 頁(yè)面內(nèi)的相關(guān)程序段以及表達(dá)式內(nèi)都有效。這是因?yàn)?JSP 引擎將 JSP 頁(yè)面轉(zhuǎn)譯成 Java 文件時(shí),將各個(gè)程序段的這些變量作為類中某個(gè)方法的變量,即局部變量。
利用程序段的這個(gè)性質(zhì),有時(shí)可以將一個(gè)程序段分割成幾個(gè)更小的程序段,然后在這些小的程序段之間再插入 JSP 頁(yè)面的一些其他標(biāo)記元素。
當(dāng)程序段被調(diào)用執(zhí)行時(shí),會(huì)為這些變量分配內(nèi)存空間,當(dāng)所有的程序段調(diào)用完畢后,這些變量即可釋放所占的內(nèi)存。
當(dāng)多個(gè)客戶請(qǐng)求一個(gè) JSP 頁(yè)面時(shí),JSP 引擎為每個(gè)客戶啟動(dòng)一個(gè)線程,一個(gè)客戶的局部變量和另一個(gè)客戶的局部變量會(huì)分配不同的內(nèi)存空間。因此,一個(gè)客戶對(duì) JSP 頁(yè)面局部變量操作的結(jié)果,不會(huì)影響到其他客戶的這個(gè)局部變量。
【例1】下面的程序段可以計(jì)算 1 到 100 的和:
<%@ page contentType="text/html; charset=utf-8"%>
<html>
<head>
<title></title>
</head>
<body>
<font size="10"><%!
long continueSum(int n)
{
int sum=0;
for(int i=1; i<=n; i++)
{
sum=sum + i;
}
return sum;
}
%></font>
<p>
<font size="10">1到100的連續(xù)和:<br>
<%
long sum;
sum=continueSum(100);
out.print(" " + sum);
%></font>
</p>
</body>
</html>
運(yùn)行結(jié)果如圖 1 所示。
圖1 在JSP中使用Java代碼段