如何记录jsp被浏览的次数

解决方案 »

  1.   


    声明一个int count变量
    然后用session记录这个count就行了每次访问这个jsp页面  count就累加1
    然后存入session里就行了
      

  2.   

    bean部分package bean;import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;public class CounterCount {
    int number = 0;
    boolean isCome = true;
    File file = new File("count.txt");
    public void comeOn(){
    if(!file.exists()){
    number++;
    try {
    file.createNewFile();
    FileOutputStream os = new FileOutputStream(file);
    DataOutputStream dos = new DataOutputStream(os);
    os.close();
    dos.close();
    System.out.print(number);
    dos.writeInt(number);
    } catch (IOException e) {
    e.printStackTrace();
    }
    }else{
    FileInputStream fis;
    DataInputStream dis;
    try {
    fis = new FileInputStream(file);
    dis = new DataInputStream(fis);
    number = dis.readInt();
    number++;
    fis.close();
    dis.close();
    FileOutputStream os = new FileOutputStream(file);
    DataOutputStream dos = new DataOutputStream(os);
    dos.writeInt(number);
    os.close();
    dos.close();
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    isCome=false;
    } public int count(){
    if(isCome == true){
    comeOn();
    }
    return number;
    }
    }JSP部分<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
    <%@page import="bean.CounterCount;"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'MyJsp7.jsp' starting page</title>
        
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

      </head>
      <body> 
       <jsp:useBean id="count" class="bean.CounterCount" scope="session"></jsp:useBean>
       您是第<%=count.count() %>个访问本站的人
      
      </body>
    </html>
    如果不限制用户在同一机器上刷新,可以将<jsp:useBean id="count" class="bean.CounterCount" scope="session"></jsp:useBean>
    中的scope="session" 改成scope="application"
      

  3.   

    用session不行,要用application。
      

  4.   

    重启tomcat后,都要丢失
    写在数据库或者一个文件里
      

  5.   

    点击率:
    我做的是, 保存数据库中,
    每次访问时, 都去查数据库, 实现最好是AJAX,
      

  6.   


    确实已经写到文件里面去了。
    看Bean里面的
     File file = new File("count.txt");
        public void comeOn(){
            if(!file.exists()){
                number++;
                try {
                    file.createNewFile();
                    FileOutputStream os = new FileOutputStream(file);
                    DataOutputStream dos = new DataOutputStream(os);
                    os.close();
                    dos.close();
                    System.out.print(number);
                    dos.writeInt(number);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }else{
                FileInputStream fis;
                DataInputStream dis;
                try {
                    fis = new FileInputStream(file);
                    dis = new DataInputStream(fis);
                    number = dis.readInt();
                    number++;
                    fis.close();
                    dis.close();
                    FileOutputStream os = new FileOutputStream(file);
                    DataOutputStream dos = new DataOutputStream(os);
                    dos.writeInt(number);
                    os.close();
                    dos.close();
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            isCome=false;
        }
      

  7.   


    要是记录访问某个具体的jsp页面的次数呢,这个如何实现。
      

  8.   

    将<jsp:useBean id="count" class="bean.CounterCount" scope="session"></jsp:useBean>
    中的scope="session" 改成scope="page"
      

  9.   

    is_zhoufeng的方法确实可以借鉴。
      

  10.   

    在数据库中添加一个字段就行了 每次访问这个页面 update一下这个字段增1