SSH兑现简单的网站访问人数的统计
SSH实现简单的网站访问人数的统计
首先复写一个Session的监听器,对新创建的session进行监听。
ApplicationListener.java
package dsh.bikegis.listener; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; import dsh.bikegis.dao.AccessPeopleDao; import dsh.bikegis.tool.SpringBeanFactory; /** * 統計網站訪問人數 * * @author NanGuoCan * */ public class ApplicationListener implements HttpSessionListener { /** * 把歷史訪問人數讀取出來,並且把已經加1的訪問人數存入數據庫中 */ public void sessionCreated(HttpSessionEvent se) { AccessPeopleDao apd = (AccessPeopleDao) SpringBeanFactory .getBean("apd"); int count; count = Integer.parseInt(apd.getNum());// 從數據庫中讀取歷史訪問人數 ++count;// 訪問人數加1 apd.updateNum(Integer.toString(count));// 寫入到數據庫 se.getSession().setAttribute("count", count); } /** * Session Destroyed */ public void sessionDestroyed(HttpSessionEvent se) { } }
配置web.xml文件(此文件要配置在Spring监听器文件之后,否则可能造成空指针异常)
<listener> <listener-class> dsh.bikegis.listener.ApplicationListener </listener-class> </listener>
一个工具类,用来获得Spring注入的bean
SpringBeanFactory .java
package dsh.bikegis.tool; import org.apache.struts2.ServletActionContext; import org.springframework.context.ApplicationContext; import org.springframework.web.context.WebApplicationContext; /** * * @author NanGuoCan * */ public class SpringBeanFactory { public static Object getBean(String beanName) { ApplicationContext applicationContext = (ApplicationContext) ServletActionContext .getServletContext() .getAttribute( WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE); return applicationContext.getBean(beanName); } }下面是对数据库的操作了,在此我就不上传代码了,主要就是先读取数据库中的历史访问人数,然后加1,再写入数据库,并且把加1后的数据放在session中,在前台取得