|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
还得说上一点,就java本质而言,是面相对象的,但是你有没有发现,java也不全是,比如说基本类型,int,那他就是整型而不是对象,转换类型是还得借助包装类。js|革新|成绩|页面JSP页面不克不及革新、避免革新的成绩总结
<1>假如请求当产生选择、删除、修正等操纵时,表单革新,必要加上:window.returnValue=0.
比方leadershipleader_ctl.jsp
<bodyleftmargin="0"topmargin="0">
<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage=""%>
<%@pageimport="leader.*"%>
<%
LeaderBeanleader=newLeaderBean();
StringstrUserID=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为你想转向的方针页,若为本页则为主动革新本页。
<metahttp-equiv="refresh"content="300;url=target.html">
(3)种办法:演示效果:本页将在划定的工夫主动革新,代码提醒:将上面的代码复制到〈head〉区
<script>
<!--
varlimit="0:15"//修正革新工夫
if(document.images){
varparselimit=limit.split(":")
parselimit=parselimit[0]*60+parselimit[1]*1
}
functionbeginrefresh(){
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>避免从服务器上主动革新,必要加上:
<%@pagecontentType="text/html;charset=gb2312"%><%@pagelanguage="java"import="java.io.*"%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>计数器</title></head><%!//同步更新计数器synchronizedvoidcounter(){ServletContextapplication=getServletContext();//机关application对象(可选)StringszPath=application.getRealPath("/");//失掉以后路径szPath=szPath+"hits.txt";//计数器文件0-9999999999999...
计划2
jJsp计数器,统一电脑10秒内防革新
<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage=""%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<metaname="GENERATOR"http-equiv="refresh">
<title>无题目文档</title>
<linkhref="CSS/counter.css"rel="stylesheet"type="text/css">
</head>
<bodybgcolor="#FFFFFF">
<!--startcounter-->
<divalign="center">
<%@pageimport="com.ckj.counter.*,java.io.*,java.util.Date"%>
<%Counterct=newCounter();
Stringcount="0";
Stringcounterid="0";
try{
//StringstrDirPath=newFile(application.getRealPath(request.getRequestURI())).getParent();
//System.out.println("目次的相对路径:"+strDirPath+"<br/>");
StringstrFullPath=session.getServletContext().getRealPath("/");
System.out.println(strFullPath);
ct.path=strFullPath+"/counter/count.txt";
//1session存储工夫值,
//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(Exceptione){
}
//假如10秒内革新,不计数
if(true){
}
%>
你是本站第<spanclass="font12bgred"><%=count%></span>位会见者!
<!--endcounter-->
</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<%@pageimport="popeyelin.*"contentType="text/html;charset=gb2312"language="java"%>
<html>
<head>
<title>JSP图形防革新计数器</title>
</head>
<body>
<jsp:useBeanid="a"scope="page"class="popeyelin.addone"/>
<jsp:useBeanid="b"scope="page"class="popeyelin.display"/>
已有
<%b.counter();
for(inti=9;i>=0;i--)out.print(b.img[i]);
%>
团体会见这个页面
</body>
</html>addone.javapackagepopeyelin;
importjava.io.*;
importjava.lang.*;
publicclassaddone{
privateStrings=newString();//创建数组变量sl
publicvoidaddone(){
try{
BufferedReaderbuff=newBufferedReader(newFileReader("conuter.txt"));
Strings=buff.readLine();
inti=Integer.parseInt(s);//将字符串变量s转化成整形
i++;
buff.close();//封闭对象
PrintWriterpw=newPrintWriter(newFileWriter("oounter.txt"));
Stringtemp=Integer.toString(i);//将整形变量i转化成字符型
pw.print(temp);
pw.close();
}
catch(IOExceptione){
System.out.println(e.toString());
}
}
}display.java
packagepopeyelin;
importjava.io.*;
importjava.lang.*;
publicclassdisplay{
publicString[]img=newString[10];
publicvoidcounter(){
try{
BufferedReaderbuff=newBufferedReader(newFileReader("counter.txt"));
Strings=buff.readLine();
inti=Integer.parseInt(s);
intst=10;
intj=0;
while(j<=9){
img[j]=Integer.toString(i%st);
img[j]=img[j]+".GIF";
img[j]="images/"+img[j];
img[j]="<imgsrc="+img[j]+">";
img[j]=img[j]+"</img>";
i/=10;
j++;
}
}
catch(IOExceptione){
System.out.println(e.toString());
}
}
}编译addone.java和display.java后会天生一个文件夹,popeyelin,把这个文件夹拷贝到WEB-INF/class目次下,假如不存在,请手动创建。运转index.jsp你就能够看到这个图片计数器了程序剖析:重点就在于对文件的读写,我们看以下代码BufferedReaderbuff=newBufferedReader(newFileReader("conuter.txt"));
Strings=buff.readLine();
inti=Integer.parseInt(s);//将字符串变量s转化成整形
i++;
buff.close();//封闭对象
PrintWriterpw=newPrintWriter(newFileWriter("oounter.txt"));
Stringtemp=Integer.toString(i);//将整形变量i转化成字符型
pw.print(temp);
pw.close();我们假如要对文件举行读写操纵,就必需前后创建2个对象,来对文件分离举行读和写并且要注重,我们从文件里读出来的工具是字符串型的,假如我们要对他举行修正必需先转换成int型,要用到integer.parseint(),假如我们要先工具到文件,一样要先将int转换成string用integer.tostring(),写文件用到pw.print()要写的内容能够保留在变量里,如:pw.print(temp),也能够间接写,如:pw.print("hello,world");记着,写完必定要关毕对象。pw.close()
计划4、用JSP制造页面防革新计数器(PHP)</head>
<body>
<%@pageimport="java.io.*"%>
<%
StringcurrentRecord=null;//保留文本的变量
BufferedReaderfile;//BufferedReader对象,用于读取文件数据
StringnameOfTextFile="e:count.txt";
//读取
file=newBufferedReader(newFileReader(nameOfTextFile));
StringreadStr=null;
intwriteStr=0;//假如计数文本中的计数值为空则让它显现时酿成1并写进
try{readStr=file.readLine();}
catch(IOExceptione)
{System.out.println("读取数据毛病.");}
if(readStr==null)readStr="没有任何纪录";
//判别cookie,第一次上岸时加1,革新时不累计计数
elseif(request.getHeader("Cookie")==null)
{writeStr=Integer.parseInt(readStr)+1;}
else{writeStr=Integer.parseInt(readStr);}
//写进时把持由于革新引发的反复计数
if(request.getHeader("Cookie")==null){
try{
PrintWriterpw=newPrintWriter(newFileOutputStream(nameOfTextFile));
pw.println(writeStr);
pw.close();}
catch(IOExceptione){
out.println(e.getMessage());}
}
%>
<palign="center">您是傲雪冷梅网站的第<b><fontcolor="red"><%=writeStr%></font></b>位主人。</p>
</body>
</html>
2006-09-12
C#跟java类似,但是在跨平台方面理论上可以跨平台,实际上应用不大,执行性能优于java,跟C++基本一致,但是启动速度还是慢.代码安全,但容易性能陷阱. |
|