可以在””之间插入Java程序片。一个JSP页面可以有许多程序片,这些程序片将被JSP引擎按顺序执行。在一个程序片中声明的变量称做JSP页面的局部变量,它们在JSP页面内的所有程序片部分以及表达式部分内都有效。这是因为JSP引擎将JSP页面转成Java文件时,将各个程序片的这些变量作为类中的某个方法的变量,即局部变量。利用程序片的这个性质,有时可以将一个程序片分割成几个更小的程序片,然后在这些小的程序片之间再插入JSP页面的一些其它标记元素。当程序片被调用执行时,这些变量被分配内存空间,所有程序片调用完毕,这些变量即可释放所占的内存。
当多个客户请求一个JSP页面时,JSP引擎为每个客户启动一个线程,一个客户的局部变量和另一个客户的局部变量被分配不同的内存空间。因此,一个客户对JSP页面局部变量操作的结果,不会影响到其它客户的这个局部变量。
下面例子中的程序片负责计算1到100的连续和。
long continueSum(int n)
{
int sum =0;
for(int i=1;i<=n;i++)
{
sum+=i;
}
return sum;
}
%>
1到100的连续和:
long sum;
sum=continueSum(100);
out.print(" "+sum);
%>
运行效果:
请输入E-mail:
String str=request.getParameter("client");
double r;
if(str!=null)
{
int index=str.indexOf("@");
if(index==-1){
%>
您的E-mail地址中没有@.
}
else{
int space =str.indexOf(" ");
if(space!=-1){
%>
您的E-mail地址含有非法的空格。
}
else{
int start =str.indexOf("@");
int end =str.lastIndexOf("@");
if(start!=end){
%>
您的E-mail地址中有两个以上的符号:@
}else{
out.print("
"+str);
%>
您的E-mail地址书写正确。
}
}
}
}
%>
上面的例子将通过将程序片分割成几部分,来验证用户输入的E-mail地址中是否含有非法字符。
运行效果: