springboot配置过滤器解决html资源路径和接口路径冲突问题
比如:
html文件使用 /
接口路径使用 /api
首先配置文件里肯定配置范围最大的根路径
server:port: 80servlet:context-path: /
过滤器代码
@Slf4j
public class RequestSeparationFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@SneakyThrows@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {HttpServletRequest httpRequest = (HttpServletRequest)request;HttpServletResponse httpResponse = (HttpServletResponse)response;String uri=httpRequest.getRequestURI();//请求路径String apiPath="/api";//接口路径前缀if(apiPath!=null&&httpRequest.getRequestURI().startsWith(apiPath+(apiPath.endsWith("/")?"":"/"))){/** 接口请求分离*/uri=uri.substring(apiPath.length());//删掉请求前缀api,这样接口代码写的时候注解映射不需要加apirequest.getRequestDispatcher(uri).forward(request, response);}else{/** html资源请求分离*///正常文件资源,有后缀名的if(uri.substring(uri.lastIndexOf("/")).contains(".")){chain.doFilter(request, response);}//没有后缀名的,但是以斜杠结尾,自动补全请求文件路径:index.htmlelse if(uri.endsWith("/")){uri+="index.html";request.getRequestDispatcher(uri).forward(request, response);}else{//其他的必须重定向到带斜杠的地址,否则前台浏览器自己解析相对路径会出问题(对后台无影响)httpResponse.sendRedirect(httpRequest.getContextPath() + uri+"/");}}}@Overridepublic void destroy() {}
}
使用转发不会重新触发过滤器,而是直接进入controller层
注解映射也不需要加 /api 只需要写/api后面的路径即可 如 @RequestMapping("/login")
这样/login请求就会转发到 /login/index.html
而/api/login请求会转发到/login接口上
相关文章:
springboot配置过滤器解决html资源路径和接口路径冲突问题
比如: html文件使用 / 接口路径使用 /api 首先配置文件里肯定配置范围最大的根路径 server:port: 80servlet:context-path: / 过滤器代码 Slf4j public class RequestSeparationFilter implements Filter {Overridepublic void init(FilterConfig filterConfi…...
在IDE中使用Git
我们在开发的时候肯定是经常使用IDE进行开发的,所以在IDE中使用Git也是非常常用的,接下来以IDEA为例,其他的VS code ,Pycharm等IDE都是一样的。 在IDEA中配置Git 1.打开IDEA 2.点击setting 3.直接搜索git 如果已经安装了会自…...
【AIGC进阶-ChatGPT提示词副业解析】反向心理学在沟通中的运用:激将法的艺术
引言 在日常沟通和管理中,直接的表达方式并不总能达到预期效果。反向心理学,特别是其中的激将法,作为一种独特的沟通技巧,往往能在看似消极的表达中激发出积极的反应。本文将深入探讨反向心理学中激将法的运用技巧、实施策略及其…...
JeecgBoot passwordChange 任意用户密码重置漏洞复现
0x01 产品简介 Jeecg Boot是一个企业级低代码开发平台,基于前后端分离的架构,融合了SpringBoot、SpringCloud、Ant Design、Vue、Mybatis-plus、Shiro、JWT等多种主流技术,旨在帮助企业快速构建各种应用系统,提高开发效率,降低开发成本。采用最新主流的前后分离框架,使得…...
【智体OS】官方上新发布智体机器人:使用rtrobot智体应用远程控制平衡车机器人
【智体OS】官方上新发布智体机器人:使用rtrobot智体应用远程控制平衡车机器人 dtns.network是一款主要由JavaScript编写的智体世界引擎(内嵌了three.js编辑器的定制版-支持以第一视角浏览3D场馆),可以在浏览器和node.js、deno、e…...
Blazor(.razor)+VUE+elementUI适合一起用吗
在实际项目中,将 Blazor(.razor) 与 Vue.js 和 ElementUI 一起使用是可以实现的,但是否适合取决于你的项目需求、开发团队的技术栈和具体场景。以下是对这种组合的详细分析: 一、适合一起使用的场景 1.1 逐步引入 Bla…...
SpringBoot左脚进门之Maven管理家
一、概念 Maven 是一个项目管理和整合工具。通过对 目录结构和构建生命周期 的标准化, 使开发团队用极少的时间就能够自动完成工程的基础构建配置。 Maven 简化了工程的构建过程,并对其标准化,提高了重用性。 Maven 本地仓库 (Local Reposi…...
188-下翻便携式6U CPCI工控机箱
一、板卡概述 下翻式CPCI便携工控机,系统采用6u cpci背板结构,1个系统槽,7个扩展槽, 满足对携带的需求,可装标准6U8槽CPCI主板,8个扩展槽, 满足客户对空间扩展的需求.可宽温服务的工作产品,15高亮度液晶显示屏,超薄88键笔记本键盘,触摸式鼠标,加固型机箱结构,使它能够适应各种复…...
Ubuntu 挂载目录
1. 临时挂载(重启后失效) 创建挂载点: $ sudo mkdir -p /work临时挂载磁盘到 work 目录: $ sudo mount /dev/nvme0n1p1 /work验证挂载是否成功: $ df -h /work此方法挂载在系统重启后会失效,需手动重新挂载…...
基于IEEE 802.1Qci的时间敏感网络(TSN)主干架构安全分析及异常检测系统设计
中文标题:基于IEEE 802.1Qci的时间敏感网络(TSN)主干架构安全分析及异常检测系统设计 英文标题:Security Analysis of the TSN Backbone Architecture and Anomaly Detection System Design Based on IEEE 802.1Qci 作者信息&…...
2024年食堂采购系统源码技术趋势:如何开发智能的供应链管理APP
本篇文章,小编将与大家一同探讨2024年食堂采购系统的技术趋势,并提供开发更智能的供应链管理APP的策略。 一、2024年食堂采购系统的技术趋势 1.人工智能与机器学习的深度应用 在2024年,AI和机器学习在食堂采购系统中的应用将更加普遍。这些…...
zotero安装教程(包括茉莉花插件)
zotero安装教程(包括茉莉花插件) zotero下载(windows)1-安装 Zotero2-安装 Zotero Connector3-安装浏览器插件--jasminum茉莉花功能:插件下载地址:[https://github.com/search?qjasminum&typerepositories](https://github.c…...
webpack4 - 配置文件分离(详细教程)
webpack根据开发和生成环境一般可以将配置文件拆分,拆分dev和prod两种环境 |- package.json|- /build|- webpack.base.js|- webpack.dev.js|- webpack.prod.js在scripts里修改相应的命令 "dev": "webpack-dev-server --config build/webpack.dev.j…...
MongoDB 分片
MongoDB 分片 MongoDB 分片是一种数据库架构,用于将大量数据分布存储在多个服务器上。这种设计允许数据库扩展,以处理大量数据和高吞吐量操作。分片通过将数据集分割成小块,称为分片,并将这些分片分布到多个服务器上来工作。每个…...
PHP加载MySQL扩展
PHP本身不具备操作MySQL数据库的能力,需要借助PHP操作MySQL的扩展来实现 1、PHP加载MySQL扩展:php.ini文件中 2、PHP中所有的扩展都在ext文件中,需要指定扩展所在路径:extension_dir 3、php.ini 已经被apache加载,所以…...
期末复习-计算机网络篇SCAU
第一章:概述 1.计算机网络的特点,互联网发展的三个阶段 特点:连通性、资源共享 三个阶段: 1969-1990:从单个网络ARPANET向互联网发展 1985-1993:建成了三级结构的互联网 1993-现在:全球范…...
使用LLM进行股价预测(附代码)
使用LLM进行股价预测(附代码) 注意 代码是完整的,但是需要 https://github.com/wxy2ab/akinterpreter 才能完整运行 利用 Python 和 AkShare 进行股票数据分析与预测:以中远海控为例 在本文中,我们将使用 Python 的 akshare 库获取中远海…...
分支限界笔记
文章目录 概要整体架构流程基本概念分支限界法的定义核心思想 简单问题介绍问题:简单背包问题思考:暴力解法聪明的解法:分支限界法直观理解分支限界法的步骤0-1背包问题问题描述问题建模问题分析1. 定义问题的解空间,确定易于搜索…...
PHP Cookie
Cookie 是什么? cookie 常用于识别用户。cookie 是一种服务器留在用户计算机上的小文件。每当同一台计算机通过浏览器请求页面时,这台计算机将会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。 如何创建 Cookie? setcoo…...
Java后端面试场景题汇总
1.50 亿数据如何去重&排序? 如此大的数据集进行去重(例如50亿数据条目),我们需要考虑内存和存储空间的限制,同时还需要有一个高效的算法。一般来说,这样的数据量无法直接载入内存进行处理,因此需要采用磁盘存储和分布式处理的技术。主要有以下几种思路: 外部排序…...
vllm 安装
别在Windows里安装vllm了,总有很多问题, 可以在WSL2的Unbuntu 24.04里安装vllm,轻松完成 一、相关链接 vllm https://docs.vllm.ai/en/latest/index.html github https://github.com/vllm-project/vllm vLLM 中文站 https://vllm.hyper.…...
3个强力方法解决百度网盘下载限速问题:开源工具实现本地优化加速
3个强力方法解决百度网盘下载限速问题:开源工具实现本地优化加速 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 作为技术探索者࿰…...
Qwen-Image-Edit-F2P实战:QT图形界面开发指南
Qwen-Image-Edit-F2P实战:QT图形界面开发指南 1. 学习目标与前置准备 今天咱们来聊聊怎么用QT给Qwen-Image-Edit-F2P模型做个图形界面。这个模型挺有意思的,它能根据一张人脸照片生成全身像,比如你把自拍照传进去,它能给你生成在…...
保姆级教程:用Docker Compose和Nginx给内网Nexus仓库上HTTPS(自签证书避坑指南)
内网Nexus私有仓库HTTPS全栈实战:从Docker部署到证书信任闭环 当开发团队规模超过10人时,私有制品仓库就成了刚需。上周帮某金融客户部署内网Nexus时,发现Maven 3.8.1强制HTTPS的策略让很多工程师措手不及——内网没有公网域名,Le…...
DXVK 2.7.1:Linux游戏图形性能的终极Vulkan转换层深度解析
DXVK 2.7.1:Linux游戏图形性能的终极Vulkan转换层深度解析 【免费下载链接】dxvk Vulkan-based implementation of D3D8, 9, 10 and 11 for Linux / Wine 项目地址: https://gitcode.com/gh_mirrors/dx/dxvk DXVK 2.7.1作为基于Vulkan的Direct3D 8/9/10/11转…...
Mac Mouse Fix:让普通鼠标释放专业级生产力
Mac Mouse Fix:让普通鼠标释放专业级生产力 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 还在忍受MacOS下鼠标滚动卡顿、侧键功能…...
造相-Z-Image-Turbo亚洲美女LoRA入门指南:开箱即用的图片生成服务
造相-Z-Image-Turbo亚洲美女LoRA入门指南:开箱即用的图片生成服务 1. 服务概览与核心价值 造相-Z-Image-Turbo亚洲美女LoRA是一个基于Z-Image-Turbo模型的图片生成Web服务,特别集成了laonansheng/Asian-beauty-Z-Image-Turbo-Tongyi-MAI-v1.0 LoRA模型…...
GitHub中文界面插件:3步告别英文困扰,让中文开发者效率翻倍
GitHub中文界面插件:3步告别英文困扰,让中文开发者效率翻倍 【免费下载链接】github-chinese GitHub 汉化插件,GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 你…...
04月06日AI每日参考:Gemma4颠覆参数论 阿里OpenAI频放新动作
今日概览今日AI圈迎来技术与商业双重爆发,谷歌Gemma 4以小参数模型打破行业"参数迷信",为端侧AI普及按下加速键。阿里、OpenAI等头部玩家同步放出新动作,国产大模型与芯片的组合也传来突破性消息,全行业的技术路线和市场…...
ERNIE-4.5-0.3B-PT企业落地场景:基于vLLM的轻量级智能问答助手搭建
ERNIE-4.5-0.3B-PT企业落地场景:基于vLLM的轻量级智能问答助手搭建 1. 项目概述与价值 智能问答助手已经成为企业提升服务效率和用户体验的重要工具。传统方案往往面临部署复杂、资源消耗大、响应速度慢等问题。今天介绍的基于vLLM部署的ERNIE-4.5-0.3B-PT模型&am…...
