JSP声明定义网页范围的变量、函数或类
声明的变量和方法是该页面所对应的Servlet类的成员变量和成员方法,声明的类是Servlet类的内部类。
声明块包含在<%!和%>中 。
包括变量声明、方法声明和声明类三种。
JSP声明定义网页范围的变量、函数或类,让页面的其余部分能够使用。
声明的变量和方法是该页面所对应的Servlet类的成员变量和成员方法,声明的类是Servlet类的内部类。
声明块包含在<%!和%>中 。
包括变量声明、方法声明和声明类三种。
一、变量声明
用于定义特定于 JSP 页面的变量,声明的变量成了 JSP 页面转换到的 Servlet 类的成员变量,可以被该JSP页面中其他任何部分使用。
其语法形式为:<%! 变量声明 %>
声明的变量类型可以是Java语言中允许的任何数据类型。
变量声明方式跟Java中变量声明的形式一样,也可以在声明变量时对其进行初始化,记住要在变量声明的后面加上分号。如:
private String units = "ft";
double st=Math.sqrt(16); %>
二、方法声明
声明的方法在JSP页面有效,它编译成Servlet 类的成员方法。可以由页面上所有脚本元素访问。
其语法形式为:<%! 方法声明 %>
方法声明方式跟Java中方法定义的形式一样,要给出方法返回类型、方法名、方法形参和方法体。
注意:虽然方法是客户共享的,但方法中的变量并不是客户共享的。如:
{
if (x == 0 )
return 1 ;
else
return x * fact (x-1) ;
}
%>
三、声明类
声明类是JSP页面对应的Servlet类的内部类,页面上所有脚本元素都可以创建该类的对象。
其语法形式为:<%! 声明类 %>
下面例子定义一个square类,当客户访问该页面时,服务器创建该类的对象,只要客户给出方的边长,就可以求出方的周长和面积。
例exa_1.jsp:(运行结果如图2-13所示)
<html>
<body>
<p>请输入正方形边长
<br>
<form action="exa_1.jsp" method="get" name=form>
<input type="text" name="cat" value="1">
<input type="submit" name="submit" value="送出">
</form>
<%! public class square
{
double r;
square(double r)
{this.r=r;}
double getarea()
{ return r*r;}
double getlength()
{ return r*4;}
}
%>
<% String s=request.getParameter("cat");
double r;
if(s!=null)
{r=Double.valueOf(s).doubleValue();}
else
{r=1;}
square cc=new square(r); //创建对象
%>
<P>方的面积是:
<BR>
<%=cc.getarea()%>
<p>方的周长是
<%=cc.getlength()%>
</body>
</html>