2013-01-09 40 views
0

我有一个奇怪的场景。查询字符串具有价值first=second=12123423423423432323234Java字符串(查询字符串)操作

String queryString = request.getParameter("first=second=12123423423423432323234") 

所以我要:

  1. 捕获“第一”和“第二”值
  2. 验证查询字符串有“第一”和“第二”。

请问有人可以分享我如何以最好的方式实现这一目标吗?

我真的很感激你对此的帮助。

+4

它看起来不像'first =&second = 12123423423423432323234'吗?如果没有'key = value'对之间的分隔符/分隔符,那么您被刷新 – Bohemian

+3

这不是一个有效的查询字符串... – fge

+0

您需要用'&'然后用'='分割并使用Map 来映射查询参数键和查询参数值。这几乎是Java中所有的Web框架都可以完成的。 – Srinivas

回答

0

我相信您的查询字符串应该像

first=firstvalue&second=secondvalue 

你可以使用这个在你的servlet打印查询字符串

String firstValue = request.getParameter("first"); 
String secondValue = request.getParameter("second"); 
System.out.println("Query String:first="+firstValue+"second=+"secondValue); 

在你的情况,那里的查询字符串

first=second=12123423423423432323234 

您可以做到这一点

String first = request.getParameter("first"); 
String second = request.getParameter("second"); 
if(first.contains("second=")){ 
    second = first.split("second=")[1]; 
    first = first.split("second=")[0]; 
} 
out.println("[First:"+first+"][Second:"+second+"]"); 
+0

它为我的用例工作。谢谢你Avinash奈尔。 – user1635014

0

如果您的参数被&(即: first=&second=something),然后简单地.getParameter("first").getParameter("second")

否则,你需要用字符串玩 - 大概分成左右=,并且直到second首次降息的值遇到。虽然我没有看到如果first的值为:first=foosecond=bar,那么这将如何工作?