多语言展示
当前在线:1792今日阅读:26今日分享:39

springboot实现网站用户访问量

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。      此次实现需要借助于ServletRequestListener获取用户访问信息,统计访问次数和ServletContextListener实现在服务器启动和关闭时初始化加载持久化数据。
工具/原料
1

电脑

2

intellij IDEA

方法/步骤
1

第一步骤:创建一个springboot的项目(也可以创建一个简答的java项目)。1、 打开创建页面 选择File-new-project..2、选择创建的项目为spring initializr 进入springboot项目创建步骤(也可以选择类型java,创建一个普通java项目)3、输入项目名字,选择依赖web(根据项目需求选择,此次需要),选择存放目录-完成(Finish)

2

第二步骤:实现ServletContextListener监听器。1、借助于contextInitialized方法在服务器启动时加载数据2、借助于contextDestroyed方法在服务器关闭时持久化数据3、具体代码如下所示:import javax.servlet.ServletContext;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import javax.servlet.annotation.WebListener;@WebListenerpublic 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

第三步骤:登录控制器实现。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;@RestControllerpublic 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

第四步骤:测试。1、启动服务器2、查看控制台监听的启动初始化数据,页面模拟登录增加访问次数

注意事项

开发环境 jdk 1.8 IDEA 2018.2.2 maven:apache-maven-3.5.4

推荐信息