java url解码_如何从REST WebService 调用中解码路径参数
How to decode path parameters in All REST WebServices calls
太长;不读
TL:DR
如果有多个位置需要在WebServices RESTful调用期间解码参数,则可以使用springframework中的UrlPathHelper在中央位置执行此操作
想像在一个RESTful URL中有一个参数1
,其中可能包含一些非URL友好
字符,例如正斜杠/
。您当然可以在每次调用时都去使用URLCodec()。decode(param1
。但这不但麻烦且容易出错。
借助于springframework对URL Intercepor的支持,您可以扩展UrlPathHelper并覆盖encodePathVariables,这样就可以集中在一个地方进行所有此类操作。
以下是仅供参考的kotlin
和java
示例:
Kotlin
import org.apache.commons.codec.net.URLCodec
import org.springframework.web.util.UrlPathHelper
import javax.servlet.http.HttpServletRequestclass MyPathHelper : UrlPathHelper() {override fun decodePathVariables(request: HttpServletRequest, vars: MutableMap<String, String>): MutableMap<String, String> {val map = super.decodePathVariables(request, vars)map.computeIfPresent("param1") { _, v -> URLCodec().decode(v) }return map}
}
Java
import org.apache.commons.codec.DecoderException;
import org.apache.commons.codec.net.URLCodec;
import org.springframework.web.util.UrlPathHelper;import java.util.Map;public class MyPathHelper extends UrlPathHelper {@Overridepublic Map<String, String> decodePathVariables(javax.servlet.http.HttpServletRequest request, Map<String, String> vars) {Map<String, String> map = super.decodePathVariables(request, vars);map.computeIfPresent("param1", (k,v) -> {try {return new URLCodec().decode(v);} catch (DecoderException e) {e.printStackTrace();}return v;});return map;}
}
期望这个对你有所帮助
--End--
java url解码_如何从REST WebService 调用中解码路径参数相关推荐
- java for update 无效_java.sql.BatchUpdateException:调用中的无效参数
检查此循环. 这里,在i = 0的情况下,取出(0-1)为-1. 我们知道List提供了基于0的索引,所以你的str.get(..)应该从0开始,而不是从-1开始 试试这个 public void i ...
- java安装的时候无效参数_使用Oracle 11g时,保存数据时SQLException: 调用中的无效参数...
背景与问题描述: 项目环境:jfinal:3.5,druid:1.0.29,oracle11g 驱动:ojdbc6.jar 项目开发完成时切换到Oracle 11g数据库时,某张表save的时候发生S ...
- java.lang.UnsupportedClassVersionError: JVMCFRE003解决方法--jdk 1.6 中switch的参数无法使用String类型
java.lang.UnsupportedClassVersionError: JVMCFRE003解决方法--jdk 1.6 中switch的参数无法使用String类型 参考文章: (1)java ...
- java url参数转换:_提示:通过URL激活并发送参数
java url参数转换: 世界上最安全的密码是不存在的密码. 使用完全随机的密钥从等式中删除用户. 公平地说,这有一些缺点,并且密码仍然存在于某处(在您的电话/电子邮件中),但通常这样效果很好... ...
- java 获取 海康 视频流_海康网络摄像机调用SDK解码Java版
两个回调函数: FRealDataCallBack 实现预览回调数据 DecCallBack 解码回调函数 在HCNetSDK.java补充相关函数和结构声明 //播放库函数声明,PlayCtrl.d ...
- java 事件链_供应链攻击事件——针对Github中Java项目的定向攻击
阅读: 1,446 前言 2020年5月28日,Github安全团队发表了文章称Github上存在一组代码仓库正在服务于感染了恶意代码的开源项目(https://securitylab.github. ...
- 火狐浏览器设置url编码_浅谈不同浏览器地址栏中编码的差异
今天是上交学院专业 ,权当是娱乐而已,拿不拿奖就是另外一回事了.貌似这篇论文跟我的专业没什么必然的联系,倒是他们网工专业的刚好适合,但不知为什么写这类型的我就特别顺手... 摘要: 本文介绍了中文版本 ...
- mac电脑配置java环境变量_教你在Mac系统中配置JAVA环境变量的方法
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征.下面向大家介绍Mac电脑上如何配置Java ...
- java input属性_如何在h:inputText中指定命令属性?
我有一个函数,我在我的经理中derclare bean,我想在inputText中返回值,但是当我将函数的名称放在inputText标记的value属性中时,如下所示: 出现此错误: Etat HTT ...
- java绘制流程图_如何才能更好地绘制计算机毕业设计中各种图表
" 毕设论文中的各种图表是不可或缺的,如果只是单纯的文字,或者图表较少,达不到要求的话,最终是通过不了答辩审核的!" 目前绘制图表的软件很多,比如VISIO等,切记尽量不要使用wo ...
最新文章
- 你动、蒙娜丽莎跟着一起动,OpenCV这么用,表情口型造假更难防了
- java中的IO操作总结(一)
- 一、“用黑色的眼睛寻找光明”
- 跨域解决请求限制(script标签)(热门搜索出现对应的词条)
- 华中农业大学2018考研真题之867-数据结构与算法
- Nuxt中如何使用Vuex-Store异步获取数据
- leetcode 703. 数据流中的第 K 大元素(堆)
- alidata mysql 卸载_mysql相关(一)、基本知识
- java实现面向对象编程_java实现面向对象编程
- SugarCRM 去掉 header 应用程序 下拉菜单
- [转帖]Windows7 结束更新 以及后期更新花费。
- 5G+北斗RTK定位:高精度定位技术发展更进一步
- 火山视频在一键去水印网站上解析教程,火山视频去水印教程
- 快手调整员工福利,​减少房补,增加生育津贴;百度网盘青春版正式上线,被吐槽;雷军回应小米对标苹果遭冷嘲热讽 | EA周报...
- Oracle的 alter table table_name nologging; 的使用
- 利用python爬取甲骨文图片及其对应的汉字含义,共1062个甲骨文,百度云下载
- 电脑右下角WIFI图标上出现的长方形白框
- OFD格式的电子发票文件怎么免费转换成PDF
- ThingsBoard 3.2.1 发布
- 进制转换--《十六进制》