REST URL分隔符中的问题

时间:2014-10-17 07:37:25

标签: java rest url java-ee delimiter

我在tomcat上运行了一个基于REST的java模块,我在URL下面调用。当我在URL下面调用它时工作正常:

https://xx.xx.xx.xx/emp/salary?query=(FirstName startswith anil)

现在我希望在&分隔符的基础上在URL中支持多查询,为此我已经完成了一些代码更改,如下所示。基本上是基于&

分割字符串
String[] fArray = filterstr.split("&");

https://xx.xx.xx.xx/emp/salary?query=(FirstName startswith anil%26LastName startswith singh)

%26基本上是&

使用上面的网址也可以正常使用。

问题是,在我们的数据库中,我们还支持firstname为"anil&kumar",使用其他接口的管理员admin可以使用所有分隔符创建用户名。

现在当您使用:query=(FirstName startswith anil%26kumar)调用第一个网址时,它失败了,因为我们的拆分代码会将此用户分为2个部分anilkumar。但它应该是一个,以便它可以在DB中匹配。

所以想到我怎么能解决这个问题。

当我在查询参数中有下面的字符串时,我能够使用分割方法与&分开,我得到2个部分

 query= (FirstName startswith anil&LastName startswith singh)
  • 第1部分:FirstName startswith anil
  • 第二部分:LastName startswith singh

但是让查询参数为,

query= (FirstName startswith bob&smith&LastName startswith singh) 

现在使用拆分它将bob&smith分为两部分(bobsmith),但我不想要,因为用户是bob&smith。 它在分裂后返回 -

[FirstName startswith bob, smith, LastName startswith singh] 

想要更好的解决方案。第一,第二查询都应该有效。

1 个答案:

答案 0 :(得分:0)

https://xx.xx.xx.xx/emp/salary?query=(FirstName=bob%26smith&LastName=singh)

这应该可以正常工作。 我在我的机器上试过这个......对我来说工作正常

如果您的数据库在名称上使用拆分方法,那么就这样做

https://xx.xx.xx.xx/emp/salary?query=(FirstName=bob|smith&LastName=singh)

这是一个PIPE标志,分成