Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何处理包含正向斜杠的请求?_Java_Spring_Model View Controller - Fatal编程技术网

Java 如何处理包含正向斜杠的请求?

Java 如何处理包含正向斜杠的请求?,java,spring,model-view-controller,Java,Spring,Model View Controller,我的URL请求是http://localhost:8080/login/verify/212,32,/cntv5tag07rmy791wbme7xa8x,/SSNZclzqhhH7v6uHIkUsIcPusKo= 我需要得到以下部分:**212,32,/cntv5tag07rmy791wbme7xa8x,/SSNZclzqhhH7v6uHIkUsIcPusKo=** 以下代码不起作用: @RequestMapping(value = "/login/verify/{request:.+}", m

我的URL请求是
http://localhost:8080/login/verify/212,32,/cntv5tag07rmy791wbme7xa8x,/SSNZclzqhhH7v6uHIkUsIcPusKo=

我需要得到以下部分:
**212,32,/cntv5tag07rmy791wbme7xa8x,/SSNZclzqhhH7v6uHIkUsIcPusKo=**

以下代码不起作用:

@RequestMapping(value = "/login/verify/{request:.+}", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
    public ResponseEntity verifyLogin(@PathVariable(value = "request") String request)
            throws InvalidSignatureException
    {
}
错误:HTTP状态404


Spring无法处理此请求

试试这个URL:
http://localhost:8080/login/verify?req=212,32,/cntv5tag07rmy791wbme7xa8x,/SSNZclzqhhH7v6uHIkUsIcPusKo=

然后像这样处理:

@RequestMapping("/login/verify")
public String test(@RequestParam("req") String data) {
    //'data' will contains '212,32,/cntv5tag07rmy791wbme7xa8x,/SSNZclzqhhH7v6uHIkUsIcPusKo='
   String params[] = data.split(",");
}

url中有正向斜杠,这些字符串将被视为路径变量。如果可能只有3个路径变量,请尝试以下代码。请看一看和


}要将uri与斜杠匹配,请使用双精度*

@RequestMapping(value = "/login/verify/**",
然后,在主体中获取值,您将使用

String str = (String) request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE)
示例代码:

@RequestMapping(value = "/login/verify/**", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) 
public ResponseEntity verifyLogin(HttpServletRequest httpServletRequest) throws InvalidSignatureException {
    String str = (String) request.getAttribute( HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE)
}

你能写成:()吗?其中,“212”、“32”和“cntv5tag07rmy791wbme7xa8x,/ssnzclzqhh7v6uhikusicpusko=”将是不同的参数。你想这样吗?谢谢你的回答。不,我需要解析整个字符串,它包含4个参数,除以“,”。有时4参数可以包含斜杠(/),我不能,请求不是由我形成的。我不能使用查询参数我知道这个解决方案,但在本例中,我得到了string1=212,string2=32,string3=cntv5tag07rmy791wbme7xa8x,string4=SSNZclzqhhH7v6uHIkUsIcPusKo=。不带斜杠(/)的字符串3和字符串4,我需要在代码中附加条件来处理此问题。在这种情况下,您可以使用@RequestMapping(“/login/verify/**”),使用request.getRequestURI()然后解析它。完全正确!谢谢其中request是HttpServletRequest@RequestMapping(value=“/login/verify/**”,method=RequestMethod.POST,products={”application/json;charset=UTF-8“})公共响应验证登录(HttpServletRequest HttpServletRequest)抛出InvalidSignatureException{String str=(String)request.getAttribute(HandlerMapping.PATH_在处理程序中_映射_属性)}
@RequestMapping(value = "/login/verify/**", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) 
public ResponseEntity verifyLogin(HttpServletRequest httpServletRequest) throws InvalidSignatureException {
    String str = (String) request.getAttribute( HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE)
}