在一个jsp页面如何声明供整个页面使用的变量和方法。请举例

如题所述

一、变量和方法的声明
1.在<%!与%>之间放置声明变量是页面的成员变量。声明的变量在整个JSP页面都有效。例如
<%!
int i=100;
Data date;
%>
因为JSP引擎转换JSP页面成Java文件时,将这些变量作为类的成员变量,这些变量的内存空间直到服务器关闭才被释放。
所以所有请求该页面的线程共享JSP页面的成员变量,任何用户对该成员变量的操作结果都影响其它客户。
简单页面计数器
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<body>
<%!
int i=0;
%>
<%
i++;
%>
<p>
您是第<%=i%>个访问本站的用户。
</body>
</html>
2. 声明方法
在<%!和%>之间声明的方法在整个JSP页面都有效,但是该方法内定义的变量只在该方法内有效。当多个用户请求一个JSP页面时,可以使用方法操作成员变量。
<%@ page contentType="text/htnl;charset=gb2312"%>
<html>
<body>
<%!
int number=0;
synchronized void contPeople()
{
number++;
}
%>
<%
countPeople();
%>
<p>
您是第<%=number%>个访问客户。
</body>
</html>
将访问人数保存到文本文件中
<%@ 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>
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网