jsp页面中如何定义与声明变量和方法



jsp页面中如何定义与声明变量和方法。

一、jsp变量和方法的声明实例

1.在<%!和%>中放置声明变量是jsp页面的成员变量。声明的jsp变量在整个JSP页面都有效。例如

<%!

int i=100;

Data date;


%>

JSP引擎会转换JSP页面成Java文件时候,就会把这些变量作为类的成员变量,这些变量的内存空间直到服务器关闭才被释放。因此,所有请求该页面的线程共享JSP页面的成员变量,任何用户对该成员变量的操作结果都影响其它客户。
jsp嵌入java源码的简单页面计数器实例
<%@ page contentType=”text/html;charset=gb2312″%>
<html>
<body>
<%!
int i=0;
%>
<%
i++;
%>
<p>
您是第<%=i%>个访问本站的用户。
</body>
</html>

2. jsp中声明方法

在<%!和%>之间声明的方法在整个JSP页面都有效,但是该方法内定义的变量只在该方法内有效。当多个用户请求一个JSP页面时,可以使用方法操作成员变量。
<%@ page contentType=”text/htnl;charset=gb2312″%>
<html>
<body>
<%!
int number=0;
synchronized void contPeople()
{
number++;
}
%>
<%
countPeople();
%>
<p>
您是第<%=number%>个访问客户。
</body>
</html>

将访问人数保存到文本文件中的jsp页面源码
<%@ page contentType=”text/htnl;charset=gb2312″%>
<%@ page import=”java.io.*” %>
<html>
<body>
<%!
int number=0;
File file=new File(“count.txt”);
synchronized void contPeople()
{
if(!file.exists())
{
number++;
try{
file.createNewfile();
FileOutputStream out =new FileOutputStream(“count.txt”);
DataOutputStream dataOut=new DataOutputStream(out);
dataOut.writeInt(number);
out.close();
dataOut.close();
}
catch(IOException ex){}
}
else
{
try{
FileInputStream in=new FileInputStream(“count.txt”);
DataInputStream dataIn=new DataInputStream(in);
number=dataIn.readInt();
number++;
in.close();
dataIn.close();
FileOutputStream out =new FileOutputStream(“count.txt”);
DataOutputStream dataOut=new DataOutputStream(out);
dataOut.writeInt(number);
out.close();
dataOut.close();
}
catch(IOException ex){}
}
}
%>
<%
countPeople();
%>
<p>
您是第<%=number%>个访问客户。
</body>
</html>