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;// 人加1apd.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中,在前台取得