jsp的记数器~~  不知道能不能不用库。  用库能不能用access的库?~谢谢啊。`

解决方案 »

  1.   

    //不知道能不能不用库。  用库能不能用access的库?~当然可以用数据库。到处都是例子了,贴个我自己写的(文件存储信息的)。
    jsp的实现,如果计数器文件不存在,将自动在jsp文件所在目录下自动创建:counter.jsp
    -----------------------------------------------------
    <%@ page contentType="text/html; charset=GBK" %>
    <%
    response.setHeader("Pragma","No-cache");//HTTP 1.1
    response.setHeader("Cache-Control","no-cache");//HTTP 1.0
    response.setHeader("Expires","0");//防止被proxy
    request.setCharacterEncoding("GB2312");//设置编码
    %>
    <html>
    <head>
    <title>
    计数器
    </title>
    </head>
    <body bgcolor="#ffffff">
    <h1>
    一个简单的计数器
    </h1>
    <%
    try {
    java.io.FileReader fr=new java.io.FileReader(request.getRealPath("/")+"\\counter.txt");
    java.io.BufferedReader br = new java.io.BufferedReader(fr);
    String countno = br.readLine();
    if (countno == null) {
         java.io.FileWriter fw=new java.io.FileWriter(request.getRealPath("/")+"\\counter.txt");
         java.io.PrintWriter pw=new java.io.PrintWriter(fw);
         pw.print("1");
         pw.close();
         fw.close();
    }
    else{
    out.println("本页面是第"+countno+"次被访问!!");
         java.io.FileWriter fw=new java.io.FileWriter(request.getRealPath("/")+"\\counter.txt");
         java.io.PrintWriter pw=new java.io.PrintWriter(fw);
         pw.print(String.valueOf(Integer.parseInt(countno)+1) );
         pw.close();
         fw.close();
    }}
    catch(Exception e){
         java.io.FileWriter fw=new java.io.FileWriter(request.getRealPath("/")+"\\counter.txt");
         java.io.PrintWriter pw=new java.io.PrintWriter(fw);
         pw.print("1");
         out.println("本页面是第"+1+"次被访问!!");
         pw.close();
         fw.close();
    }
    %>
    </body>
    </html>Jsp+JavaBean的实现(就是把代码封装到Bean里去了 :)),
    如果计数器文件不存在,将自动在C:\下自动创建:Bean文件:
    counterbean.java
    ------------------------------------------------------------
    package counter;
    import java.io.*;public class counterBean { private String filepath="C:\\";//默认设置到C盘根目录下
     private String counter; public counterBean() {
     }
     public String getCounter() {
       try {
    java.io.FileReader fr=new java.io.FileReader(filepath+"\\counter.txt");
    java.io.BufferedReader br = new java.io.BufferedReader(fr);
    String countno = br.readLine();//out.println("本页面是第"+countno+"次被访问!!");
          java.io.FileWriter fw=new java.io.FileWriter(filepath+"\\counter.txt");
          java.io.PrintWriter pw=new java.io.PrintWriter(fw);
          pw.print(String.valueOf(Integer.parseInt(countno)+1) );
          pw.close();
          fw.close();
          counter=String.valueOf(Integer.parseInt(countno)+1);
          return counter;
    }
    catch(Exception e){
         try{ java.io.FileWriter fw=new java.io.FileWriter(filepath+"\\counter.txt");
          java.io.PrintWriter pw=new java.io.PrintWriter(fw);
          pw.print("1");
        //  out.println("本页面是第1次被访问!!");
          pw.close();
          fw.close();
          counter="1";
          return counter;
        }
        catch(Exception ee){
          counter="1";
          return counter;
        }
    } }
     public void setCounter(String counter) {
       this.counter = counter;
     }}Jsp文件:counter.jsp---------------------------------------------------------<%@ page contentType="text/html; charset=GBK" %>
    <html>
    <head>
    <title>
    计数器
    </title>
    </head>
    <jsp:useBean id="counter" scope="page" class="counter.counterBean" />
    <body bgcolor="#ffffff">
    <h1>
    一个简单的计数器
    </h1>
    已经有<%=counter.getCounter()%>人次访问这个页面了!!!
    </body>
    </html> 
      

  2.   

    <%
    request.getSession(true);   
    String driver= "org.gjt.mm.mysql.Driver";
    String url = "jdbc:mysql://localhost/fooldockdb";
    String userID= USERNAME ;
    String passwd= PASSWORD ;
    int OldCNT;
    int UserCNT;
    int Index;
    String UserIndex;
    String OldIndex;try{
    Class.forName(driver);
    Connection con = DriverManager.getConnection(url,userID,passwd);
        Statement stmt = con.createStatement();
        String query = "SELECT * FROM counter;";
        ResultSet QRes = stmt.executeQuery(query);
        while(QRes.next()){
         OldCNT = QRes.getInt("times");
            UserCNT = OldCNT + 1;
            UserIndex= UserCNT+"";
           OldIndex=OldCNT+"";
            if(session.isNew()){
             for(Index=0;Index<UserIndex.length();Index++){
                 out.println("<img src=counter/image/c"+UserIndex.charAt(Index)+".gif align=absmiddle>");
          }
             QRes.close();
             query = "UPDATE counter SET times =" + UserCNT;
             stmt.executeQuery(query);
            }
            else{
        for(Index=0;Index<OldIndex.length();Index++){
                 out.println("<img src=counter/image/c"+OldIndex.charAt(Index)+".gif align=absmiddle>");
                }
                QRes.close();
            }
    con.close();
        }
    }
    catch(SQLException e){
    e.printStackTrace();
    out.print("有错误");
    }
    %>