<%
  Integer count=null;
  synchronized(application)
   {
     count=(Integer)application.getAttribute("basic");
     if(count==null)
      count=new Integer(0);
     count=new Integer(count.intValue()+1);
     application.setAttribute("basic",count);
     
    }
%>
<%=count%>

解决方案 »

  1.   

    to:wandou999(弯豆) 
    完全同意,强!顺便景仰你一下.
    因为我没有想到synchronized的问题.自卑一下.......哎.
      

  2.   

    to:coaa(我吃多了) 
    太客气了,有时间大家多交流!!
      

  3.   

    给你个读写文件的
    <!--jsp计数器--> 
    <%@ page import="java.io.*" %>
    <HTML>
    <HEAD>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <TITLE>
    计数器演示程序
    </TITLE>
    </HEAD>
    <BODY>
    <% 
    //out.println(request.getHeader("Cookie")); 
    String currentRecord = null;//保存文本的变量 
    BufferedReader file; //BufferedReader对象,用于读取文件数据 
    //File f1=new File("count.txt");
         // if(!f1.exists())f1.createNewFile();File nameOfTextFile = new File(application.getRealPath("counter.txt")); 
    if(!nameOfTextFile.exists()) nameOfTextFile.createNewFile();
    //读取 
    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 FileWriter(nameOfTextFile)); 
              pw.println(writeStr); 
              pw.close();
        } 
        catch(IOException e) { 
              out.println(e.getMessage());
        } 

    String count = String.valueOf(writeStr);
    out.println(count);
    %>
    </BODY>
    </HTML>