Spring MVC开发用户流量拦截器

简介: 你好看官,里面请!今天笔者讲的是Spring MVC开发用户流量拦截器。不懂或者觉得我写的有问题可以在评论区留言,我看到会及时回复。 注意:本文仅用于学习参考,不可用于商业用途,如需转载请跟我联系。

Spring MVC开发用户流量拦截器

如果觉得写的还可以,点个赞支持一下笔者呗!你的点赞和关注会让我更快更新哦。笔者会持续更新关于Java和大数据有关的文章。目前集中精力在更新java框架的内容。


首先增加如下maven依赖

<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version></dependency>

同时在运行前要把依赖加入到lib目录中具体步骤如下:

image.png

image.png

image.png

再创建如下logback.xml文件

image.png

注意:TimeBasedRollingPolicy是每隔一天就会产生一个log文件,其中%d可以包含一个java.text.SimpleDateFormat指定的时间格式,如:%d{yyyy-MM}。如果直接使用 %d,默认格式是 yyyy-MM-dd。

<rollingPolicyclass="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>d:/logs/history.%d.log</fileNamePattern></rollingPolicy>

image.png

<?xmlversion="1.0" encoding="UTF-8"?><configuration><appendername="console"class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>[%thread] %d %level %logger{10} - %msg%n</pattern></encoder></appender><appendername="accessHistoryLog"class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicyclass="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>d:/logs/history.%d.log</fileNamePattern></rollingPolicy><encoder><pattern>[%thread] %d %level %logger{10} - %msg%n</pattern></encoder></appender><rootlevel="debug"><appender-refref="console"/></root><loggername="com.zjc.restful.interceptor.AccessHistoryInterceptor"level="INFO"additivity="false"><appender-refref="accessHistoryLog"/></logger></configuration>

同时在SpringMVC.xml配置文件中加入拦截器配置:

指的是不拦截resources下的所有文件以及子文件。(一般是不拦截静态资源)

<mvc:interceptors><mvc:interceptor><mvc:mappingpath="/**"/><mvc:exclude-mappingpath="/resources/**"/><beanclass="com.zjc.restful.interceptor.AccessHistoryInterceptor"/></mvc:interceptor></mvc:interceptors>

再加入如下拦截器类

publicclassAccessHistoryInterceptorimplementsHandlerInterceptor {
privateLoggerlogger=LoggerFactory.getLogger(AccessHistoryInterceptor.class);
publicbooleanpreHandle(HttpServletRequestrequest, HttpServletResponseresponse, Objecthandler) throwsException {
StringBuilderlog=newStringBuilder();
log.append(request.getRemoteAddr());//获取用户远程ip地址log.append("|");
log.append(request.getRequestURL());//获取用户访问的哪个urllog.append("|");
log.append(request.getHeader("user-agent"));//用户的客户端环境保存在请求头的user-agent属性中logger.info(log.toString());
returntrue;
    }
}

以下是log文件的内容,与我们设置的保持一致:

image.png

image.png

image.png

相关文章
|
3天前
|
监控 前端开发 Java
Spring Boot 拦截器(Interceptor)详解
本文介绍Spring Boot拦截器的原理与使用,涵盖自定义拦截器创建、注册配置、执行顺序及典型应用场景,助力提升系统安全性与可维护性。(238字)
146 0
|
4天前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
|
2月前
|
前端开发 Java API
利用 Spring WebFlux 技术打造高效非阻塞 API 的完整开发方案与实践技巧
本文介绍了如何使用Spring WebFlux构建高效、可扩展的非阻塞API,涵盖响应式编程核心概念、技术方案设计及具体实现示例,适用于高并发场景下的API开发。
276 0
|
7天前
|
设计模式 前端开发 Java
《深入理解Spring》:Spring MVC架构深度解析与实践
Spring MVC是基于Spring框架的Web开发核心模块,实现Model-View-Controller设计模式。它通过DispatcherServlet统一调度请求,结合注解驱动的控制器、灵活的数据绑定与验证、丰富的视图支持及拦截器、异常处理等机制,提升开发效率与系统可维护性,助力构建高性能、易测试的现代Web应用。
|
7天前
|
缓存 监控 Java
《深入理解Spring》拦截器(Interceptor)——请求处理的艺术
Spring拦截器是Web开发中实现横切关注点的核心组件,基于AOP思想,可在请求处理前后执行日志记录、身份验证、权限控制等通用逻辑。相比Servlet过滤器,拦截器更贴近Spring容器,能访问Bean和上下文,适用于Controller级精细控制。通过实现`HandlerInterceptor`接口的`preHandle`、`postHandle`和`afterCompletion`方法,可灵活控制请求流程。结合配置类注册并设置路径匹配与执行顺序,实现高效复用与维护。常用于认证鉴权、性能监控、统一异常处理等场景,提升应用安全性与可维护性。
|
7天前
|
前端开发 Java 微服务
《深入理解Spring》:Spring、Spring MVC与Spring Boot的深度解析
Spring Framework是Java生态的基石,提供IoC、AOP等核心功能;Spring MVC基于其构建,实现Web层MVC架构;Spring Boot则通过自动配置和内嵌服务器,极大简化了开发与部署。三者层层演进,Spring Boot并非替代,而是对前者的高效封装与增强,适用于微服务与快速开发,而深入理解Spring Framework有助于更好驾驭整体技术栈。
|
7天前
|
安全 前端开发 Java
《深入理解Spring》:现代Java开发的核心框架
Spring自2003年诞生以来,已成为Java企业级开发的基石,凭借IoC、AOP、声明式编程等核心特性,极大简化了开发复杂度。本系列将深入解析Spring框架核心原理及Spring Boot、Cloud、Security等生态组件,助力开发者构建高效、可扩展的应用体系。(238字)
|
1月前
|
安全 数据可视化 Java
AiPy开发的 Spring 漏洞检测神器,未授权访问无所遁形
针对Spring站点未授权访问问题,现有工具难以检测如Swagger、Actuator等组件漏洞,且缺乏修复建议。全新AI工具基于Aipy开发,具备图形界面,支持一键扫描常见Spring组件,自动识别未授权访问风险,按漏洞类型标注并提供修复方案,扫描结果可视化展示,支持导出报告,大幅提升渗透测试与漏洞定位效率。
|
2月前
|
缓存 Java API
Spring WebFlux 2025 实操指南详解高性能非阻塞 API 开发全流程核心技巧
本指南基于Spring WebFlux 2025最新技术栈,详解如何构建高性能非阻塞API。涵盖环境搭建、响应式数据访问、注解与函数式两种API开发模式、响应式客户端使用、测试方法及性能优化技巧,助你掌握Spring WebFlux全流程开发核心实践。
480 0
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
404 0

热门文章

最新文章