您的位置:首页 > Web前端 > JavaScript

JSP页面不能刷新、防止刷新的问题总结

2006-09-12 16:19 609 查看
JSP页面不能刷新、防止刷新的问题总结<1>如果要求当发生选择、删除、修改等操作时,表单刷新,需要加上: window.returnValue=0.例如leadership/leader_ctl.jsp
<body leftmargin="0" topmargin="0" ><%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %><%@ page import="leader.*" %><%       LeaderBean leader=new LeaderBean();    String strUserID=request.getParameter("Key");    session.setAttribute("EmployUserID",strUserID);    //System.out.println("strUserID:"+strUserID);    if (leader.PostEdit(request)){       //System.out.println("me5");       out.println("<script>window.returnValue=0;window.close();</script>");       return;    }    else{       if (request.getParameter("Oper")!=null){         if (request.getParameter("Oper").equals("delLeader")){            out.println("<script>alert('"+leader.LastOperMsg+"');window.returnValue=0;</script>");            //return;         }         if(request.getParameter("Oper").equals("setLeader")){             //System.out.println("me3");             out.println("<script>alert('"+leader.LastOperMsg+"');window.returnValue=0;window.close();</script>");             //System.out.println("me4");            //return;         }         if(request.getParameter("Oper").equals("delCompetence")){             ////System.out.println("strUserID:"+strUserID);             out.println("<script>alert('"+leader.LastOperMsg+"');history.back();</script>");             //System.out.println("me4");            //return;         }         if(request.getParameter("Oper").equals("addCompetence")){             //System.out.println("addCompetence1");             out.println("<script>alert('"+leader.LastOperMsg+"');history.back();</script>");             //System.out.println("addCompetence2");             //return;         }         else{           if (request.getParameter("Oper").equals("qx")){               out.println("<script>alert('"+leader.LastOperMsg+"');window.returnValue=0;window.close();</script>");              //return;           }           else{               //System.out.println("me6");               out.println("<script>alert('"+leader.LastOperMsg+"');window.close();</script>");               //return;           }//3e         }       }    }  %>
<2>如果要求每隔一段时间从服务器上自动刷新,需要加上:(1)       种方法:<%response.setHeader("Refresh","15");%>
15妙刷新一次(2)       种方法:

自动刷新网页
在HTML的与之间加入下面这段代码,则在5分钟之后正在浏览的页面将会自动变为target.html这一页。代码中300为刷新的延迟时间,以秒为单位。targer.html为你想转向的目标页,若为本页则为自动刷新本页。

<meta http-equiv="refresh" content="300; url=target.html">

 (3)       种方法:演示效果:本页将在规定的时间自动刷新,代码提示:将下面的代码复制到〈head〉区

<script>

<!--

var limit="0:15"//修改刷新时间

 

if (document.images){

var parselimit=limit.split(":")

parselimit=parselimit[0]*60+parselimit[1]*1

}

function beginrefresh(){

if (!document.images)

return

if (parselimit==1)

window.location.reload()

else{

parselimit-=1

curmin=Math.floor(parselimit/60)

cursec=parselimit%60

if (curmin!=0)

curtime=curmin+""+cursec+"秒后重刷本页!"

else

curtime=cursec+"秒后重刷本页!"

window.status=curtime

setTimeout("beginrefresh()",1000)

}

}

window.onload=beginrefresh

//-->

</script>

 

<2>防止从服务器上自动刷新,需要加上:
<%@ page contentType="text/html;charset=gb2312"%><%@ page language="java" import="java.io.*"%><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>计数器</title></head><%!//同步更新计数器    synchronized void counter(){        ServletContext application=getServletContext();       //构造application对象(可选)        String szPath=application.getRealPath("/");               //得到当前路径        szPath=szPath+"hits.txt";                                       //计数器文件 0-9999999999999...  
方案2
jJsp计数器,同一电脑10秒内防刷新<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR"   http-equiv="refresh"     >
<title>无标题文档</title>
<link href="css/counter.css" rel="stylesheet" type="text/css">
</head>
<body bgcolor="#FFFFFF">
<!--start counter  -->
<div align="center">
  <%@ 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>
 
 
 
 
 


</head> 
<body> 
<%@ page import="java.io.*" %> 
<% 
String currentRecord = null;//保存文本的变量 
BufferedReader file; //BufferedReader对象,用于读取文件数据 
String nameOfTextFile = "e://count.txt"; 
//读取 
file = new BufferedReader(new FileReader(nameOfTextFile)); 
String readStr =null; 
int writeStr =0; //如果计数文本中的计数值为空则让它显示时变成1并写入 
try { readStr = file.readLine(); } 
catch (IOException e) 
{ System.out.println("读取数据错误."); } 
if (readStr == null) readStr = "没有任何记录"; 
//判断cookie,第一次登陆时加1,刷新时不累计计数 
else if (request.getHeader("Cookie")==null) 
{ writeStr = Integer.parseInt(readStr)+1;} 
else { writeStr = Integer.parseInt(readStr);} 
//写入时控制因为刷新引起的重复计数 
if (request.getHeader("Cookie")==null) { 
try { 
PrintWriter pw = new PrintWriter(new FileOutputStream(nameOfTextFile)); 
pw.println(writeStr); 
pw.close();} 
catch(IOException e) { 
out.println(e.getMessage());} 

%> 
<p align="center">您是傲雪寒梅网站的第<b><font color="red"><%=writeStr%></font></b>位客人。</p> 
</body> 
</html>
                                                                 2006-09-12
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息