老码农教你 Solon Web Context-Path 的两种配置方式
context-path 概念早期可能是出现在 servelt 容器。比如 tomcat 在部署应用(或模块)时,每个应用(或模块)会配置一个 context-path,起到隔离和避免路径冲突的效果。
对 solon 而言,相当于一个 webapp 的“路径前缀”(与友商的配置略有不同)。
1、所谓路径前缀
比如果有应用地址(未配置 context-path 时):http://xxx/test/get。
当配置了context-path /demo/ 后就需要用 http://xxx/demo/test/get 发起请求(在域名之后,多了段前缀)。
2、关于 context-path 的两种配置(基于 pathNew 的变化实现)
| 配置 | 差别 | 差别说明 |
|---|---|---|
server.contextPath: "/test-service/" |
原路径仍能访问(v1.11.2 后支持) | |
server.contextPath: "!/test-service/" |
! 开头 |
强制,原路径不可访问(v2.6.3 后支持) |
当有 context-path 配置时
| 接口 | 说明 |
|---|---|
ctx.path() |
是原始请求路径 |
ctx.pathNew() |
是去掉 context-path 后的请求路径 |
3、两种配置效果示例说明
比如有原始地址:http://xxx/test,使用不同配置的效果:
| 请求地址 | "/test-service/" |
"!/test-service/" |
|---|---|---|
http://xxx/test |
(原路径)可访问 | (原路径)404 错误 |
http://xxx/test-service/test |
可访问 | 可访问 |
提醒:一般情况使用,添加 ! (表示强制)才是大多数人的预期效果。
4、为什么要有两种配置?
在集群环境(比如微服务)做内部的 http rpc (或者 http call)请求时。如果 server 加了 context-path(或者变更),client 就必须要修改请求路径。没办法作到一套代码到处可用。
所以有了 “原路径仍能访问” 的配置策略。可以实现外部如何变化,内部请求都可不变!
5、为什么默认不是“强制”的策略?
在生产部署时,当遇见有 context-path 需求的场景。一般会有 nginx 或 tomcat 等,本身就有 path 前缀配置,相当于已经起到了过滤的效果,应用只需要支持有前缀的需求。
所以默认不采用“强制”方式,可以同时兼容两种应用需求。(但有些场景下,确实需要强制)
老码农教你 Solon Web Context-Path 的两种配置方式的更多相关文章
- 老码农教你在 StackOverflow 上谈笑风生
作为一个高大上的码农,你肯定用到过 StackOverflow,必须的.会有人否定这个断言么?那他恐怕不是真正的码农,或者说还没入门.StackOverflow 对于码农的重要性,基本就和诸葛亮对刘备 ...
- IOC容器在web容器中初始化——(一)两种配置方式
参考文章http://blog.csdn.net/liuganggao/article/details/44083817,http://blog.csdn.net/u013185616/article ...
- web前台界面的两种验证方式
JSON的全称是"JavaScript Object Notation",意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式. 第一种: 用户体 ...
- 老码农冒死揭开行业黑幕:如何编写无法维护的代码[ZZ]
下面是一篇有意思的"代码大全",可谓 逆软件工程. 老码农冒死揭开行业黑幕:如何编写无法维护的代码 原文如下 让自己稳拿铁饭碗 ;-) – Roedy Green(翻译版略有删节) ...
- Solon 的过滤器 Filter 和两种拦截器 Handler、 Interceptor
在web开发中,过滤器.拦截器是经常用到的功能.它可以帮我们限制流量.验证是否登陆.记录日志以及统计执行效率等等. 今天主要交流一下 Solon 框架中的过滤器和拦截器. Solon 是什么框架? S ...
- Web APi之认证(Authentication)两种实现方式【二】(十三)
前言 上一节我们详细讲解了认证及其基本信息,这一节我们通过两种不同方式来实现认证,并且分析如何合理的利用这两种方式,文中涉及到的基础知识,请参看上一篇文中,就不再叙述废话. 序言 对于所谓的认证说到底 ...
- 转 Web APi之认证(Authentication)两种实现方式【二】(十三)
前言 上一节我们详细讲解了认证及其基本信息,这一节我们通过两种不同方式来实现认证,并且分析如何合理的利用这两种方式,文中涉及到的基础知识,请参看上一篇文中,就不再废叙述废话. 序言 对于所谓的认证说到 ...
- 亿级Web系统搭建 Web负载均衡的几种实现方式(阿里)
我还写了两篇详细的 参考:六大Web负载均衡原理与实现 参考:LVS(Linus Virtual Server):三种IP负载均衡方式比较+另三种Web负载均衡方式 其中LVS.HAProxy可以工作 ...
- web 中常用的两种上传文件的方法总结
这里我们来总结整理一下常用的两种文件上传方式以及要注意的东西: 1.springmvc .MultipartFile 的上传方式. 2.org.apache.commons.fileupload 使用 ...
- Web负载均衡的几种实现方式
Web负载均衡的几种实现方式摘要:负载均衡(Load Balance)是集群技术(Cluster)的一种应用.负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力.目前最常见的负载均衡应用是 ...
随机推荐
- 【拥抱鸿蒙】HarmonyOS NEXT实现双路预览并识别文字
我们在许多其他平台看到过OCR功能的应用,那么HarmonyOS在这方面的支持如何呢?我们如何能快速使用这一能力呢?使用这一能力需要注意的点有哪些呢?就让我们一起来探究吧~ [开发环境] 版本规则号: ...
- 「Log」2023.8.21 小记
序幕 七点到校,管理整理博客. 然后开始写博客,SAM 的. 学长开始讲题,2-SAT,还算好理解,写完博客过了下板子题. \(\color{royalblue}{P4782\ [模板]2-SAT 问 ...
- 2025盘古石决赛-计算机&手机
手机取证 分析鸿蒙手机检材,打网球定的日期是?[标准格式:4月5日] 在日历数据中 3月3日 分析鸿蒙手机检材,哪个浏览器搜索过鸿蒙开发教程?[标准格式:百度浏览器] uc数据搜索过 UC浏览器 分析 ...
- Maven导入本地依赖包
maven pom 引入本地jar包 在pom.xml同级目录下新建lib文件夹,并放入本地jar包. 配置Jar包的dependency,包括groupId,artifactId,version三个 ...
- 科学做Leetcode,拒绝思维懒惰
思考题目10分钟左右完全没有思路可以看题解,不要一道题自己整个30分钟,还是不会 => 这种行为属于思维上的懒惰,我们不要做一个懒惰的人 看题解: 10分钟左右完全没有思路看题解 做完题目一定要 ...
- 超实用!10 个 Excel 数据验证技巧,轻松解决数据录入难题
[Excel基础系列之十二] 嗨,宝子们,我是社会牛马"表哥"--EETools. 在数据管理与日常办公中,Excel 数据验证如同一位 "数据质检员",从源头 ...
- DRF之请求执行流程和APIView源码分析
DRF之请求执行流程和APIView源码分析 [一]路由入口 from django.contrib import admin from django.urls import path from bo ...
- 真正的生产力来了!Docker迁移部署两步搞定!
前言 最近遇到了需要部署一套比较复杂的应用场景,刚好这套应用我在其他服务器部署过,为了节省折腾的时间,我打算直接把服务器上已有的搬过去. PS:没想到这个过程比从头开始来耗费时间 好在是把一键迁移的脚 ...
- 在C#中使用 System.Threading.Timer 实现定时任务
在C#中使用 System.Threading.Timer 实现定时任务 (qq.com) 前言 在编写应用程序过程中,高效的任务调度都是必不可少的,无论是在实现后台服务.自动化任务或者定期数据处理. ...
- 从Linux系统SSH到Windows系统。
以管理员身份运行powershell. PS C:\Windows\system32> Get-WindowsCapability -Online | ? Name -like 'OpenSSH ...