简单写一个页面访客数量的语句就是下面的代码了,每次更新count加1。
<body>
This is my JSP page. <br>
<%! int count = 0; %>
<% count++; %>
访客数量为:<%=count %>
</body>
但是这个会有一个问题就是,当我们重启服务器时,count也从0开始了,
这对于访客数量这些数据肯定不是想要的结果。
这个的话,我们是否可以写个数据表专门用一个字段去统计值呢,
每次刷新页面,将新的count值更新到数据库中,
每次重启服务,先查找数据库中的count值
那么首先我们就先创建一个表,
然后再表中先插入一条数据,让count=0即可。
写好以后,那么我们去写.jsp的代码
我们不需要插入数据,只要每次得到的count更新到数据表中即可.
这里只是测试效果,所以只看效果即可.
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="top.hehongfei.util.DBHelper"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
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 'index.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>
This is my JSP page. <br>
<%! int count = 0; %>
<%
// 这个需要先在数据库中定义一条数据,这样下面就可以调用以及更新
// 获取上次关闭服务的值
Connection conn = DBHelper.getConn();
String sql = "SELECT count FROM num WHERE id = 1";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet result = ps.executeQuery();
while(result.next()){
count = result.getInt("count");
}
count++;
// 将每次增加的数据更新到数据库中
sql = "UPDATE num SET count = ? WHERE id = 1";
ps = conn.prepareStatement(sql);
ps.setInt(1, count);
ps.executeUpdate();
DBHelper.close(conn, ps, result);
%>
访客数量为:<%=count %>
</body>
</html>
具体的大家可以去自己试试做一下
我们还可以就是使用io流,我们每次获取文件中的数字,最后将数据再存进文件中,也可以起到保留当前数据的效果.大家有兴趣可以自行尝试一下,