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
j J sp 計數器,同一電腦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()- L |