我后台接收到请求以后,可能是service/dictory?name=aa&password=bb&123(里面随机数在中间)
还有可能是service/dictory?name=aa&123&password=bb(随机数在中间)等等
接收到请求的随机数可以在url的任意一个后缀属性加我在程序中使用了memached来将url设置为主键,所以一旦有了随机数,就很难通过url为主键取值了
所以,我要去除url中的随机数,如何去除???谢谢啦%>_<%~
还有可能是service/dictory?name=aa&123&password=bb(随机数在中间)等等
接收到请求的随机数可以在url的任意一个后缀属性加我在程序中使用了memached来将url设置为主键,所以一旦有了随机数,就很难通过url为主键取值了
所以,我要去除url中的随机数,如何去除???谢谢啦%>_<%~
解决方案 »
- 我的netbeans7.0运行Java程序,输入英文没问题,为什么输入中文出问题了?
- java rt.jar中访问受限的问题
- 什么样的java程序可以转成windows服务?
- 网页加载applet时能不能不显示虚拟机自带的那个动画
- 求教:TextField向上滚动效果怎么实现
- 请教 乱码问题的解决方法~~~~~ 在线等............................
- 问类设计的两个小问题
- 如何用程序设置某一行被选中?
- Applet已经被放弃了,是吗?
- 我想问关于scjp的事
- 为什么JTable表单和里面的数据都显示不出来
- 添加和删除数据没有发现LinkedList比ArrayList快
再用split根据&符号分割各个参数,得到一个字符串数组
分析数组,去除不带"="符号的参数再将url和字符串数组拼接起来这是比较简单的做法
String url = "service/dictory?name=aa&password=bb&123"
url = url.replaceAll("&\\d+(&|$)", "&");
"&\\d+(&|$)", "&"& 就是 & 了,没啥特别;
\\d 是指数字;
\\d+ 是指1~N个数字;
| 是“或”的意思
$ 是特殊含义字符,代表“串结束”总的来说就是从字符串中寻找:以 & 开头,中间有1个或多个数字,结尾是&或者正行都结束了的情况,然后替换为:&
public static void main(String args[]){
String URL = "service/dictory?name=aa&password=bb&123";
Matcher m =Pattern.compile("&[^=]+(&|$)").matcher(URL);
while(m.find()){
System.out.println(m.group());
}
URL = URL.replaceAll("&[^=]+(&|$)","");
System.out.println(URL);
}
public static void main(String[] args) {
//考虑三种情况
String str1 = "service/dictory?123&name=aa&password=bb"; //随机数在开头
String str2 = "service/dictory?name=aa&123&password=bb";//随机数在中间
String str3 = "dictory?name=aa&password=bb&123"; //随机数在结尾
String reg = "((?<=\\?)\\d+&)|((?<=&)\\d+&)|(&\\d+(?=$))";
System.out.println(str1.replaceAll( reg, ""));
System.out.println(str2.replaceAll(reg, ""));
System.out.println(str3.replaceAll(reg, ""));
}