java 能获取带参数的url吗

java 能获取带参数的url吗,第1张

解析url,本想用正则表达式处理,但正则表达式速度较慢。用split处理一下就可以了。

package RequestPackage;

import javautilHashMap;

import javautilMap;

public class CRequest {

/

解析出url请求的路径,包括页面

@param strURL url地址

@return url路径

/

public static String UrlPage(String strURL)

{

String strPage=null;

String[] arrSplit=null;

strURL=strURLtrim()toLowerCase();

arrSplit=strURLsplit("[]");

if(strURLlength()>0)

{

if(arrSplitlength>1)

{

if(arrSplit[0]!=null)

{

strPage=arrSplit[0];

}

}

}

return strPage;

}

/

去掉url中的路径,留下请求参数部分

@param strURL url地址

@return url请求参数部分

/

private static String TruncateUrlPage(String strURL)

{

String strAllParam=null;

String[] arrSplit=null;

strURL=strURLtrim()toLowerCase();

arrSplit=strURLsplit("[]");

if(strURLlength()>1)

{

if(arrSplitlength>1)

{

if(arrSplit[1]!=null)

{

strAllParam=arrSplit[1];

}

}

}

return strAllParam;

}

/

解析出url参数中的键值对

如 "indexjspAction=del&id=123",解析出Action:del,id:123存入map中

@param URL url地址

@return url请求参数部分

/

public static Map<String, String> URLRequest(String URL)

{

Map<String, String> mapRequest = new HashMap<String, String>();

String[] arrSplit=null;

String strUrlParam=TruncateUrlPage(URL);

if(strUrlParam==null)

{

return mapRequest;

}

//每个键值为一组 >

在公司的业务中,有如下的业务场景:

在app端中点击活动banner图,跳转到H5端的活动页面;

若用户已在app中登陆,则在跳转到H5端时,携带一个后台下发的参数(autoLogin),表明用于已在app端登陆;

H5页面获得参数后,通过ajax请求后台,获得用户的账户信息;

在此实现了H5端 自动登陆 的功能。

然而,在测试阶段,我们发现有时候出现自动登陆失败的情况。

根据 前言 中提及到的业务流程,我们一开始怀疑在自动登陆失败时,app未带上表面已登陆的参数(autoLogin)。

通过 Fiddlerexe 抓包,我们发现发生自动登陆失败时,并非是未从url获取到autoLogin参数,而是在H5端ajax请求用户信息时后台报错。

问题都这么明了,此时不怼后台,更待何时

此处省去联调、扯皮、打脸等过程。。。。。。。

我们经过艰苦卓绝的抓包,发现当自动登陆失败时,H5端提交的autoLogin有一个 空格 !!!

然后对比了后台下发给app的autoLogin参数,H5端提交的autoLogin少了个 加号 !!!

当app打开H5页面时,若autoLogin参数携带 加号 ,

由于浏览器 自动编码 url的机制,将 加号 编码成 空格 %20 ,而不是 %2B

导致H5端获取了一个错误的autoLogin参数,导致自动登陆失败。

url中的 空格 会自动编码,但 加号 在某些站点会编码,某些又不会。

这不是第一个坑,也不会是最后一个坑,未完待续

两个页面之间传递值是可以用request来管理,没有必要使用session。有点太浪费。你可以先在一个页面往请求写你的数据,由于你是需要从url中获得值,所以可以直接在另一页面中通过

requestgetParameter("key")来获得你的值这样是最简单的方法。

也可以使用requestsetAttribute("key"),

然后使用(String)requestgetAttribute("key")来获取。建议使用第一种。

以上就是关于java 能获取带参数的url吗全部的内容,包括:java 能获取带参数的url吗、jQuery获取点击的URL里面的参数,就是点击那个URL就获取那个URL里面的参数,不是当前浏览器里面的参数。、踩坑系列:获取url中参数时,+号变成空格的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9749021.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存