springboot实现网站用户访问量

      Spring Boot是由Pivotal团队供给的全新框架,其设计目标是用来简化新Spring应用的初始搭建以及开辟过程。该框架利用了特定的体例来进行设置装备摆设,从而使开辟人员不再需要界说样板化的设置装备摆设。经由过程这种体例,Spring Boot致力于在蓬勃成长的快速应用开辟范畴(rapid application development)当作为带领者。

      此次实现需要借助于ServletRequestListener获取用户拜候信息,统计拜候次数和

ServletContextListener实此刻办事器启动和封闭时初始化加载持久化数据。

工具/原料

  • 电脑
  • intellij IDEA

方式/步骤

  1. 1

    第一步调:建立一个springboot的项目(也可以建立一个简答的java项目)。

    1、 打开建立页面 选择File-new-project..

    2、选择建立的项目为spring initializr 进入springboot项目建立步调(也可以选择类型java,建立一个通俗java项目)

    3、输入项目名字,选择依靠web(按照项目需求选择,此次需要),选择存放目次-完当作(Finish)

  2. 2

    第二步调:实现ServletContextListener监听器。

    1、借助于contextInitialized方式在办事器启动时加载数据

    2、借助于contextDestroyed方式在办事器封闭时持久化数据

    3、具体代码如下所示:

    import javax.servlet.ServletContext;

    import javax.servlet.ServletContextEvent;

    import javax.servlet.ServletContextListener;

    import javax.servlet.annotation.WebListener;

    @WebListener

    public class VisitorVolumeContexListener implements ServletContextListener {    

    @Override    

    public void contextInitialized(ServletContextEvent servletContextEvent) {  

    System.out.println("VisitorVolumeContexListener.contextDestroyed()");        //取得ServletContext操尴尬刁难象        

    ServletContext application = servletContextEvent.getServletContext();        //取得数据   获取持久层的数据返回,一般是数据库或者是一个文件中存放放值        

    Integer clientCount = 5;        

    application.setAttribute("clientCount",clientCount);    }    

    @Override    

    public void contextDestroyed(ServletContextEvent servletContextEvent) { 

    System.out.println("VisitorVolumeContexListener.contextInitialized()");        ServletContext application = servletContextEvent.getServletContext();        //在办事器封闭之前将,网站当前拜候量存入持久层        

    Integer clientCount = (Integer) application.getAttribute("clientCount");    }}

    4、启动类添加@ServletComponentScan注解

    @ServletComponentScan

    @SpringBootApplicationpublic class ExcelimportApplication {    

    public static void main(String[] args) {        

    SpringApplication.run(ExcelimportApplication.class, args);    

    }

    }

  3. 3

    第三步调:登录节制器实现。

    1、思绪借助于用户登录时统计登录的次数确定网站拜候量

    import org.springframework.web.bind.annotation.RequestMapping;

    import org.springframework.web.bind.annotation.RestController;

    import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;

    @RestController

    public class UserController {    

    @RequestMapping("/log")    

    public String logUser(HttpServletRequest request, HttpServletResponse response, User user){        

    String name = request.getParameter("name");        

    if("张三".equals(name)){            

    Integer clientCount = (Integer) request.getServletContext().getAttribute("clientCount");            

    request.getServletContext().setAttribute("clientCount",clientCount++);            return name+"登录当作功!当前拜候人数:"+clientCount;        

    }        return name+"登录掉败!";    

    }

    }

  4. 4

    第四步调:测试。

    1、启动办事器

    2、查看节制台监听的启动初始化数据,页面模拟登录增添拜候次数

  5. 5

    第五步调:总结。

    1、网站用户拜候次数本家儿要经由过程ServletContextListener监听器对拜候数据的初始加载和封闭存储

    2、具体统计可以按照分歧的前提实现分歧的统计,这个要按照现实营业需求。本次演示了登录统计,若是需要统计某个页面的拜候次数,在页面跳转请求中添加,全局统计变量。

    Integer clientCount = (Integer) request.getServletContext().getAttribute("clientCount");

    request.getServletContext().setAttribute("clientCount",clientCount++);

注重事项

  • 开辟情况 jdk 1.8 IDEA 2018.2.2 maven:apache-maven-3.5.4
  • 发表于 2019-04-28 20:01
  • 阅读 ( 399 )
  • 分类:其他类型

相关问题

0 条评论

请先 登录 后评论