zoukankan      html  css  js  c++  java
  • jsp 中声明方法的使用

    1、在”<%!”和”%>”之间声明方法,该方法在整个JSP页面有效。可是该方法内定义的变量仅仅在该方法内有效。

    这些方法将在Java程序片中被调用,当方法被调用时,方法内定义的变量被分配内存,调用完成就可以释放内存。当多个客户同一时候请求一个JSP页面时,他们可能用法操作成员变量,对这样的情况应给予重视。

    解决的方法:通过synchronized方法操作一个成员变量来实现一个计数器

    <%@ page contentType="text/html;charset=GB2312"%>
    <HTML>
    <BODY BGCOLOR=cyan>
    <FONT Size=4>
    <%!
     int number=0;
     synchronized void countPeople()
     {
          number++;
     }
     %>
     <%
     countPeople();
     %>
    <p>您是第
               <%=number%>
    		   个訪问本站的客户。
    <p>	
    </FONT>
    </BODY>
    </HTML>

    执行效果:


    上面这个样例,假设Tomcatserver又一次启动就会刷新计数器,因此计数又重0開始。在以下这个样例。我们使用Java的输入输出流技术。将计数保存到文件,当客户訪问该JSP页面时,就去读取这个文件,将server又一次启动之前的计数读入。并在次基础上添加1,然后将新的计数写入到文件。

    <%@ page contentType="text/html;charset=GB2312"%>
    <%@ page import="java.io.*"%>
    
    <HTML>
    <BODY BGCOLOR=cyan>
    <FONT Size=4>
    <%!
     int number=0;
     File file=new File("count.txt");
     synchronized void countPeople()
     {
         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 ee){}
    		 
    	  }
    	  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 ee){}
    	  }
     }
     %>
     <%
     countPeople();
     %>
    <p>您是第
               <%=number%>
    		   个訪问本站的客户。
    <p>	
    </FONT>
    </BODY>
    </HTML>

    执行效果:



  • 相关阅读:
    Xen原理
    KVM系统镜像制作
    KVM原理及使用
    virsh使用总结
    libvirt原理
    虚拟化原理介绍
    TCP协议深度刨析
    TCP Socket通信详细过程
    firewall-cmd 使用总结
    PDO防 SQL注入攻击 原理分析 以及 使用PDO的注意事项
  • 原文地址:https://www.cnblogs.com/lxjshuju/p/7109414.html
Copyright © 2011-2022 走看看