JSP页面不能刷新、防止刷新的问题总结(2)
2008-02-23 08:12:59来源:互联网 阅读 ()
<%@ page import="com.ckj.counter.*,java.io.*,java.util.Date"%>
<%Counter ct=new Counter();
String count="0";
String counterid="0";
try{
// String strDirPath = new File(application.getRealPath(request.getRequestURI())).getParent();
//System.out.println("目录的绝对路径:" strDirPath "<br/>");
String strFullPath = session.getServletContext().getRealPath("/");
System.out.println(strFullPath);
ct.path=strFullPath "/counter/count.txt";
//1 session存储时间值,
//2 下次比较一下
if(session.getAttribute("counttime")==null ){ //如果 初次访问
count=ct.doCount();
// System.out.println("--------计算前11--------" System.currentTimeMillis());
session.setAttribute("counttime",String.valueOf(System.currentTimeMillis()));}
else
{ //如果,刷新间隔超过
//System.out.println("--------刷新之差--------" (System.currentTimeMillis()- Long.valueOf((String)session.getAttribute("counttime")).longValue()));
//大于10秒
if((System.currentTimeMillis()-Long.valueOf((String)session.getAttribute("counttime")).longValue())>9000) {
//System.out.println("--------计算后--------" System.currentTimeMillis());
count=ct.doCount();
//session.removeAttribute("counttime");
session.setAttribute("counttime",String.valueOf(System.currentTimeMillis()));
}
//小于10秒
else
count=ct.getCount();
}
}
catch(Exception e)
{
}
//如果10秒内刷新,不计数
if(true){
}
%>
你是本站第 <span class="font12bgred" > <%=count%> </span> 位访问者!
<!-- end counter -->
</div>
</body>
</html>
方案3、防刷新图形计数器(已调试)
实例6:防刷新图形计数器(已调试)程序说明:上次做的计数器没有采用对文件的读写操作,虽然用到了javabean但是并没有用到scope中的几个参数:appliction,page,session这些参数分别代表了bean的存活的周期,appliction>session>page我们利用这个原理来防止用户刷新从而提高访问次数的漏洞。程序准备:如果你使用的是apache resin那么请你在resin的根目录下建立一个文本文件counter.txt并在里面任意写一个数字,比如100之类的。其次,请建立一个文件夹用来保存这个程序的所有文件,并在该文件夹里建立一个子目录images,用来保存10张图片,图片格式为gif,图片名称从0--9,图片内容就是0--9十个数字,分别与图片名称对应就可了。程序文件:index.jsp, addone.java, display.javaindex.jsp用来显示纪录结果。addone.java 是一个javabean用来写纪录到文件display.java 也是一个javabean用来读取纪录到index.jsp程序源码:index.jsp
<%@ page import="popeyelin.*" contentType="text/html; charset=gb2312" language="java" %>
<html>
<head>
<title>JSP图形防刷新计数器</title>
</head>
<body>
<jsp:useBean id="a" scope="page" class="popeyelin.addone"/>
<jsp:useBean id="b" scope="page" class="popeyelin.display"/>
已经有
<% b.counter();
for(int i=9;i>=0;i--) out.print(b.img[i]);
%>
个人访问这个页面
</body>
</html> addone.java package popeyelin;
import java.io.*;
import java.lang.*;
public class addone{
private String s=new String(); //建立数组变量sl
public void addone(){
try {
BufferedReader buff=new BufferedReader(new FileReader("conuter.txt"));
String s=buff.readLine();
int i=Integer.parseInt(s); //将字符串变量s转化成整形
i ;
buff.close();//关闭对象
PrintWriter pw=new PrintWriter(new FileWriter("oounter.txt"));
String temp=Integer.toString(i);//将整形变量i转化成字符型
pw.print(temp);
pw.close();
}
catch(IOException e){
System.out.println(e.toString());
}
}
} display.java
package popeyelin;
import java.io.*;
import java.lang.*;
public class display{
public String[]img=new String[10];
public void counter(){
try{
BufferedReader buff=new BufferedReader(new FileReader("counter.txt"));
String s=buff.readLine();
int i=Integer.parseInt(s);
int st=10;
int j=0;
while(j<=9) {
img[j]=Integer.toString(i%st);
img[j]=img[j] ".GIF";
img[j]="images/" img[j];
img[j]="<img src=" img[j] ">";
img[j]=img[j] "</img>";
i/=10;
j ;
}
}
catch(IOException e){
System.out.println(e.toString());
}
}
}
编译addone.java和display.java后会生成一个文件夹,popeyelin,把这个文件夹拷贝到WEB-INF/class目录下,如果不存在,请手动建立。运行index.jsp你就可以看到这个图片计数器了程序分析:重点就在于对文件的读写,我们看如下代码
BufferedReader buff=new BufferedReader(new FileReader("conuter.txt"));
String s=buff.readLine();
int i=Integer.parseInt(s); //将字符串变量s转化成整形
i ;
buff.close();//关闭对象
PrintWriter pw=new PrintWriter(new FileWriter("oounter.txt"));
String temp=Integer.toString(i);//将整形变量i转化成字符型
pw.print(temp);
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:win2k下搭建jsp环境
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
