远方的灯塔 - 专注于服务端技术分享 远方的灯塔 - 专注于服务端技术分享
首页
  • Java SE
  • Struts2
  • Hibernate
  • MyBatis
  • JAX-WS
  • 并发
  • 分布式
  • Git
  • 文章分类
  • 文章标签
  • 文章归档
  • 《C程序设计语言》
心情随笔
友情链接
给我留言 (opens new window)
关于我
GitHub (opens new window)

Terwer Green

一个后端老菜鸟
首页
  • Java SE
  • Struts2
  • Hibernate
  • MyBatis
  • JAX-WS
  • 并发
  • 分布式
  • Git
  • 文章分类
  • 文章标签
  • 文章归档
  • 《C程序设计语言》
心情随笔
友情链接
给我留言 (opens new window)
关于我
GitHub (opens new window)
  • Mac使用iTerm2代替默认终端
  • 使用SSH方式操作GitHub
  • 使用GitHub Actions完成ci自动化部署
  • 介绍一个Go实现的内网穿透神器frp
  • IDEA自定义Maven的archetype
  • Java中HTML与Textarea换行符的相互转换
  • 通过Sonatype发布Maven项目到中央仓库
  • 利用Nginx的map实现301重定向
  • NodeJS创建一个空文件
  • 解决jenkins使用sodo出现的Authentication error in jenkins on using sudo错误
  • Mac安装Nginx
  • 关于Springboot配置thymeleaf的404问题
  • Java的重载、覆盖和隐藏的区别
  • 在SpringBoot的maven插件中设置命令行参数
  • 利用Nginx的stream实现Netty的TCP负载均衡
  • Mac Big Sur 安装CocoaPods
  • SpringBoot访问webapp下面的html等静态资源文件出现404解决方案
  • 使用pnpm管理nodejs项目
  • TomEE的使用与版本对比
  • Struts1页面表单提交给action后页面一片空白解决
  • Struts1实现国际化
  • 解决macOS Monterey 12.3没有python2的问题
  • 在 macOS 上共存 VirtualBox 和 VMWare Fusion
  • Java中的静态代码块、构造代码块、构造函数以及Java类初始化顺序
  • Linux获取文件名以及后缀名
  • 一个令人沮丧的问题:Mac的unzip竟然不支持中文名
  • IDEA的大坑:src目录丢失Source Root标记就不会编译
  • vagrant用户无法访问vboxsf的共享文件夹解决方案
  • mysql查看my_cnf位置
  • docker中的centos7安装中文输入法
  • MySQL57查看与修改数据库编码为utf8
  • 给阿里云docker中的Nginx配置SSL证书开启https服务
  • Deepin20.5 安装 docker 与 docker-compose
  • Deepin配置Typora和PicGo实现GitHub图床
  • 利用 vim 在文档内容的中英文之间添加一个空格
  • 在Docker中部署confluence和jira
  • Confluence安装MetaWeblogApi插件配合MWeb打造知识库
  • deepin的vscode怎么更新
  • 解压AppImage的方法
  • JS去除日期date格式化中的T和Z
  • 卸载Wine版本的微信导致文泉字体被删掉解决
  • 简单测试CORS
  • 阿里云Anlolis安装docker并开启docker的compose插件
  • 阿里云效流水线构建Spring_Boot的Maven项目时环境变量的使用
  • 利用maven-help-plugin在shell中读取pom_xml的变量
  • docker运行思源笔记
  • iframe父子方法相互调用总结
  • linux 上传文件 rz命令 提示command not found 解决方法
  • Deepin搭建GO开发环境
  • Mac最小化窗口的方法
  • 向google提交sitemap.xml总是报时间错误解决
  • IDEA自定义生成注释与作者版权信息
  • Deepin_linux_An_error_occurred_while_applying_changes_xdg_desktop-menu_No_writable_system_menu_directory_found解决方案
  • pnpm安装electron报错404解决方案
  • 后端服务CORS预检请求验证问题探究
  • Charles代理支持localhost
  • Win10导入Deepin到WSL
  • bat脚本乱码问题解决方案
  • Spring-Boot新项目启动总是提示:Process-finished-with-exit-code-0
  • docker的WordPress启用https
  • JDK之JavaBean内省机制
  • 解决一个maven的site命令报错问题
  • git修改提交的用户名
  • Microsoft Visual C++ 6.0 简体中文版
  • IDEA开启GO模块
  • Java生成验证码图片
  • SpringBoot中https的配置
  • docker部署思源笔记并配置nginx支持https
  • git删除所有分支
  • plantuml配合graphviz
  • Struts2使用标签库找不到URI:[struts-tags]的taglib[s]问题解决
  • 搭建一个轻量级的ftp服务器
  • 解决Tomcat8+设置allowLinking不生效问题
  • Java获取url中参数
    • 方案
    • 代码示例
  • 经验分享
terwer
2023-02-03
目录

Java获取url中参数

# 方案

在 Java 中,你可以利用 URLEncoder ​ ​和 URLDecoder ​ ​来对 URL 字符串进行编解码,然后使用 String.split()​ 方法或者使用 正则表达式​ 来从 URL 字符串中获取参数。

# 代码示例

/**
 * 获取url中的参数
 *
 * @param url 链接
 * @param key 参数key
 * @return 参数值
 */
public static String getParameterFromUrl(String url, String key) {
	String[] params = url.split("\\?");
	String[] queryParams = params[1].split("&");

	String result = "";
	for (String queryParam : queryParams) {
		String[] param = queryParam.split("=");
		// System.out.println("key: " + param[0] + " value: " + param[1]);
		if (param[0].equals(key)) {
			result = param[1];
			break;
		}
	}

	return result;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

注意:上面的参数值有 =​ 会有 bug,建议使用下面的:

/**
 * 获取url中的参数
 *
 * @param url 链接
 * @param key 参数key
 * @return 参数值
 */
public static String getParameterFromUrl(String url, String key) {
	HashMap<String, String> urlMap = new HashMap<String, String>();
	String queryString = StringUtils.substringAfter(url, "?");
	for (String param : queryString.split("&")) {
		urlMap.put(StringUtils.substringBefore(param, "="), StringUtils.substringAfter(param, "="));
	}
	return urlMap.get(key);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
编辑 (opens new window)
#参数#获取#字符串#使用#方案
上次更新: 2023/02/22, 13:47:25
解决Tomcat8+设置allowLinking不生效问题

← 解决Tomcat8+设置allowLinking不生效问题

最近更新
01
解决css部分border被圆角切掉之后圆角的边框消失问题
03-18
02
使用TypeScript开发一个自定义的Node-js前端开发脚手架
03-08
03
Github-Actions使用release-please实现自动发版
03-06
更多文章>
Theme by Vdoing | Copyright © 2011-2023 Terwer Green | MIT License | 粤ICP备2022020721号-1 | 百度统计
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式