SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,SpringBoot致力于在蓬勃发展的快速应用开发领域(rapidapplicationdevelopment)成为领导者。此次实现需要借助于ServletRequestListener获取用户访问信息,统计访问次数和ServletContextListener实现在服务器启动和关闭时初始化加载持久化数据。
工具/原料
电脑
intellijIDEA
方法/步骤
1、第一步骤:创建一个springboot的项目(也可以创建一个简答的java项目)。打开创建页面选择File-new-project..选择创建的项目为springinitializr进入springboot项目创建步骤(也可以选择类型java,创建一个普通java项目)输入项目名字,选择依赖web(根据项目需求选择,此次需要),选择存放目录-完成(Finish)
2、第二步骤:实现ServletContextListener监听器。借助于context诔罨租磊Initialized方法在服务器启动时加载数据借助于艘早祓胂contextDestroyed方法在服务器关闭时持久化数据具体代码如下所示:importjavax.servlet.ServletContext;importjavax.servlet.ServletContextEvent;importjavax.servlet.ServletContextListener;importjavax.servlet.annotation.WebListener;@WebListenerpublicclassVisitorVolumeContexListenerimplementsServletContextListener{@OverridepublicvoidcontextInitialized(ServletContextEventservletContextEvent){System.out.println("VisitorVolumeContexListener.contextDestroyed()");//取得ServletContext操作对象ServletContextapplication=servletContextEvent.getServletContext();//取得数据获取持久层的数据返回,一般是数据库或者是一个文件中存放放值IntegerclientCount=5;application.setAttribute("clientCount",clientCount);}@OverridepublicvoidcontextDestroyed(ServletContextEventservletContextEvent){System.out.println("VisitorVolumeContexListener.contextInitialized()");ServletContextapplication=servletContextEvent.getServletContext();//在服务器关闭之前将,网站当前访问量存入持久层IntegerclientCount=(Integer)application.getAttribute("clientCount");}}启动类添加@ServletComponentScan注解@ServletComponentScan@SpringBootApplicationpublicclassExcelimportApplication{publicstaticvoidmain(String[]args){SpringApplication.run(ExcelimportApplication.class,args);}}
3、第三步骤:登录控制器实现。思路借助于用户登录时统计登录的次数确定网站访问量import咯悝滩镞org.springframework.web.bind.annota墉掠载牿tion.RequestMapping;importorg.springframework.web.bind.annotation.RestController;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;@RestControllerpublicclassUserController{@RequestMapping("/log")publicStringlogUser(HttpServletRequestrequest,HttpServletResponseresponse,Useruser){Stringname=request.getParameter("name");if("张三".equals(name)){IntegerclientCount=(Integer)request.getServletContext().getAttribute("clientCount");request.getServletContext().setAttribute("clientCount",clientCount++);returnname+"登录成功!当前访问人数:"+clientCount;}returnname+"登录失败!";}}
4、第四步骤:测试。启动服务器查看控制台监听的启动初始化数据,页面模拟登录增加访问次数
5、第五步骤:总结。网站用户访问次数主要通过ServletContextListener监听器对访问数据的初始加载和关闭存储具体统计可以根据不同的条件实现不同的统计,这个要根据实际业务需求。本次演示了登录统计,如果需要统计某个页面的访问次数,在页面跳转请求中添加,全局统计变量。IntegerclientCount=(Integer)request.getServletContext().getAttribute("clientCount");request.getServletContext().setAttribute("clientCount",clientCount++);