七:javaee会议管理系统实现过程之网站访问次数统计功能的代码(完整详细有注释)

统计当前会议管理系统的次数,希望服务器发生意外时,停止了,重启了服务器

希望访问次数是累加的

 

使用上下文属性实现:如果服务器重启,数据会丢失

使用数据库存储,使用监听器来监听服务器重启的事件

 

使用上下文:

 

使用监听器

 

counter表

1.新增CounterDAO

package com.meeting.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.meeting.util.ConnectionFactory;

public class CounterDAO {
	private Connection conn;
	
//	      更新
	  public void update(int visitcount){
		  conn=ConnectionFactory.getConnection();
		  String sql="update counter set visitcount=?";
		  try {		
			PreparedStatement pstmt = conn.prepareStatement(sql);
			pstmt.setInt(1, visitcount);
			pstmt.executeUpdate();	
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			ConnectionFactory.closeConnection();
		}	  
	  }
	  
//	  查询
	  public int select(){
		  int visitcount=0;
		  conn=ConnectionFactory.getConnection();
		  String sql="select * from counter";
		  try {		
			PreparedStatement pstmt = conn.prepareStatement(sql);
			
			ResultSet rs=pstmt.executeQuery();	
			if(rs.next()){
				visitcount=rs.getInt("visitcount");
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			ConnectionFactory.closeConnection();
		}	  
		return  visitcount;
	  }
	  
	  public static void main(String[] args){
		  CounterDAO dao=new CounterDAO();
		  dao.update(2);
		  System.out.println(dao.select());
	  }
	  
}

2.新增监听器CounterListener

package com.meeting.listener;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import com.meeting.dao.CounterDAO;

public class CounterListener implements ServletContextListener {
	/**
	 * 上下文对象销毁时,自动调用
	 */
	@Override
	public void contextDestroyed(ServletContextEvent arg0) {
		ServletContext ctxt=arg0.getServletContext();
		int visitcount=Integer.parseInt(ctxt.getAttribute("visitcount").toString());
		CounterDAO dao=new CounterDAO();
		dao.update(visitcount);
	}
	/**
	 * 上下文创建时候,自动调用
	 */
	@Override
	public void contextInitialized(ServletContextEvent arg0) {
		CounterDAO dao=new CounterDAO();
		int visitcount=dao.select();
		ServletContext ctxt=arg0.getServletContext();
		ctxt.setAttribute("visitcount", visitcount);

	}

}

3.配置web.xml

 

4.LoginServlet.java

 

 

5.top.java

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>无标题文档</title>
 <link rel="stylesheet" href="styles/common.css"/>
</head>
<body>
  <div class="page-header">
            <div class="header-banner">
                <img src="images/header.png" alt="CoolMeeting"/>
            </div>
            <div class="header-title">
                欢迎访问Cool-Meeting会议管理系统
            </div>
            <div class="header-quicklink">
              欢迎您,<strong>${sessionScope.employeename}</strong>
       <a href="#">[修改密码]</a>
            </div>
             <div class="header-quicklink">
            目前网站访问次数:<font color='red'>${applicationScope.visitcount}</font>
            </div>
        </div>
</body>
</html>

 

 

 

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
系统是应用于企业会议管理系统实现自动管理会议室,及时准确得知会议室空闲、预定情况,规范公司会议管理实现公司信息资源在各部门之间快速有效传递,避免资源的冲突。提高了会议室的使用率,节省会议组织者的时间,妥善保管了会议记录。 学习目标 本系列讲座主要讲述如何利用Servlet3.0+mybatis+bootstrap+mysql构建企业级应用解决方案,主要分为三部分完成 第一部分:技能储备阶段,学习项目所需要的技能知识 第二部分:设计部分,通过需求分析,设计物理模型,画出原型界面(HTML) 第三部分:编码部分,具体实现各个功能模块 学完本系列课程后,学员将会达到以下学习目标: 本课程针对有一定程序开发基础并有志于JAVA WEB开发的学员,理解MVC开发模式,能够熟练使用PowerDesigner 设计数据库,熟练使用mybatis进行开发,熟悉Servlet3.0的一些新特性,掌握bootstrap基本用法 课程大纲 (一)会议管理系统之技能储备 第01课 项目简介、环境搭建 第02课 servlet3.0新特性之@WebServlet(登录示例) 第03课 servlet3.0新特性之@WebServlet_@WebInitParam详解 第04课 servlet3.0新特性之@WebFilter_@WebListener 第05课 JQuery AJAX 注册验证+二级菜单(JSON) 第06课 mybatis 框架搭建 第07课 mybatis 增删改查 第08课 mybatis 动态sql 第09课 bootstrap的搭建+栅格系统+table 第10课 bootstrap 表单 (二)会议管理系统之设计部分 第11课 原型设计_设备管理 第12课 原型设计_会议管理+预约会议室 第13课 原型设计_会议管理+系统管理 第14课 数据库设计 第15课 框架搭建+html替换成jsp (二)会议管理系统之编码部分 第16课 用户登录 第17课 防止非法登录+个人信息显示 第18课 用信息添加+上传头像 第19课 用户信息管理(查询) 第20课 用户信息管理(修改) 第21课 删除用户+查看用户+权限变更 第22课 设备添加 第23课 设备管理(查询+修改) 第24课 设备管理(删除)+设备信息(多表联查) 第25课 查询设备信息(根据会议室条件查询) 第26课 添加会议室 第27课 会议管理(查询+修改) 第28课 会议管理(修改+删除) 第29课 会议室查询(查看)+ajax验证会议室编号 第30课 会议室预约(1) 第31课 会议室预约(2) 第32课 会议室预约修改(查询) 第33课 会议室预约修改(1) 第34课 会议室预约修改(2) 第35课 会议室预约审核 第36课 预约审核(2)+预约查询(1) 第37课 预约查询(2) 第38课 预约查询(3)+权限设置 第39课 工作台

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一身正气z

打赏随心就好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值