当前位置:编程学习 > JAVA >>

如何记录jsp被浏览的次数

如何记录jsp被浏览的次数 --------------------编程问答--------------------
引用楼主 java122549 的回复:
如何记录jsp被浏览的次数


声明一个int count变量
然后用session记录这个count就行了

每次访问这个jsp页面  count就累加1
然后存入session里就行了 --------------------编程问答-------------------- 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"

--------------------编程问答-------------------- 用session不行,要用application。 --------------------编程问答--------------------
引用 3 楼 bill0605030109 的回复:
用session不行,要用application。

重启tomcat后,都要丢失
写在数据库或者一个文件里 --------------------编程问答-------------------- 点击率:
我做的是, 保存数据库中,
每次访问时, 都去查数据库, 

实现最好是AJAX,
--------------------编程问答--------------------
引用 4 楼 xiukongtiao 的回复:
引用 3 楼 bill0605030109 的回复:
用session不行,要用application。

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


确实已经写到文件里面去了。
看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;
    }

--------------------编程问答-------------------- 学习中。。 --------------------编程问答--------------------
引用 6 楼 is_zhoufeng 的回复:
引用 4 楼 xiukongtiao 的回复:
引用 3 楼 bill0605030109 的回复:
用session不行,要用application。

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


确实已经写到文件里面去了。
看Bean里面的
 File file = new File("count.txt");
  public void comeOn()……


要是记录访问某个具体的jsp页面的次数呢,这个如何实现。 --------------------编程问答--------------------
引用 8 楼 houlianxue 的回复:
要是记录访问某个具体的jsp页面的次数呢,这个如何实现

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

--------------------编程问答-------------------- 在数据库表中新增一个字段或写入服务器本地的文件中都是一个办法。 --------------------编程问答-------------------- is_zhoufeng的方法确实可以借鉴。 --------------------编程问答-------------------- 在数据库中添加一个字段就行了 每次访问这个页面 update一下这个字段增1
补充:Java ,  Web 开发
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,