我已经构建了一个Spring Restful WebService,然后我创建了一个动态URL。这是我的代码:
@RequestMapping(value = "/dynamicurl/{sp}/**", method = RequestMethod.GET,headers="Accept=application/json")
public Map<String, String> insertsoheaderdinamis(@PathVariable("sp") String sp, HttpServletRequest request) throws ParseException {
String restOfTheUrl = (String) request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
String split[] = restOfTheUrl.split("/");
String strParam="EXEC "+ split[4] + " '";
for (int a=5;a<split.length;a++)
{
strParam=strParam+split[a]+"','";
/*System.out.println(split[a]); */
}
strParam=strParam.substring(0, strParam.length()-2);
Map<String,String> result = new HashMap<String,String>();
try {
userService.dynamicurl(strParam);
} catch (Exception e) {
// TODO Auto-generated catch block
//e.printStackTrace();
result.put("message", "Some notif");
}
return result;
}
当我尝试提交没有&#34;特殊字符&#34;的网址时它完全没问题。但是,当我必须发送一个具有一定价值的网址&#34; SPECIAL CHARATER&#34;它给了我错误,特别是当我发送&#34; /&#34; (削减)。在我的代码中,我试图将SLASH转换为&#34;,&#34; (昏迷)使它成为我想要的字符串。这是我的URL示例:
编码版本:
http://localhost:8080/SpringServiceJsonSample/service/updatepool/dynamicurl/WEB_SP_InsertPool/TRX_SOHEADER/&#39;&#39; OPJ1401577&#39;&#39;%2cCAST(&#39;&#39; 2014年9月6日+ 09%3a30%3a29&#39;& #39; +为+ DATETIME)%2C&#39;&#39; JKT-PAR&#39;&#39;%2C&#39;&#39; JKTB009&#39;&#39;%2C&#39;& #39; NNNN&#39;&#39;%2C&#39;&#39;紧急/ noturgent&#39;&#39;%2cCAST(&#39;&#39; 2014年9月6日+ 09%3a30 %3a29&#39;&#39 + AS + DATETIME)%2C&#39;&#39; PARWIS&#39;&#39;%2cNULL%2cCAST(&#39;&#39; 2014年9月13日+ 09%3a30%3a29&#39;&#39 + AS + DATETIME)%2C&#39;&#39; SHIMIZU&#39;&#39;%2cNULL%2cNULL%2cNULL
解码版本:
http://10.1.48.243:8080/SpringServiceJsonSample/service/updatepool/dynamicurl/WEB_SP_InsertPool/TRX_SOHEADER/&#39;&#39; OPJ1401577&#39;&#39;,CAST(&#39;&#39; 2014年9月6日 09:30:29&#39;&#39;如 DATETIME),&#39;&#39; JKT-PAR&#39;&#39;&#39;&#39; JKTB009&#39;&#39;&#39;&#39; NNNN&#39 ;&#39;,&#39;&#39;紧急/ nourgent&#39;&#39;&#39;&#39;&#39;&#39; 2014-09-06 09:30:29&#39;&# 39;作为 DATETIME),&#39; PARWIS&#39;&#39;,NULL,CAST(&#39;&#39; 2014-09-13 09:30:29&#39;&#39; as DATETIME),&#39;&#39; SHIMIZU&#39;&#39;,NULL,NULL,NULL
在这句话中&#34;紧急/非正常&#34;它有&#34; /&#34;(斜杠)值。我试图编码&#34; /&#34; (斜线)是&#34;%2F&#34;然后我必须在我的网址中替换它,它甚至不能进入我的网络服务,就像它没有在我的网络浏览器中执行,没有任何反应,如果我提交我的网址&#34; /&#34; (斜杠),它将被转换为&#34;,&#34; (昏迷)。我如何用Special Character解决这个问题?