当前位置: 首页 > 知识库问答 >
问题:

如何处理包含正斜杠(/)的请求?

宦炜
2023-03-14

我需要按以下方式处理请求

www.example.com/show/abcd/efg?name=alex&family=moore   (does not work)
www.example.com/show/abcdefg?name=alex&family=moore   (works)
www.example.com/show/abcd-efg?name=alex&family=moore   (works)

它应该接受位于www.example.com/show/之间的值中的任何类型的字符。请注意,将位于那里的值将是一个单独的值,而不是一个动作的名称。

@RequestMapping(value = "/{mystring:.*}", method = RequestMethod.GET)
public String handleReqShow(
            @PathVariable String mystring,
            @RequestParam(required = false) String name,
            @RequestParam(required = false) String family, Model model)     {

我使用了以下正则表达式,但这不起作用。

 /^[ A-Za-z0-9_@./#&+-]*$/

共有1个答案

洪德寿
2023-03-14

您必须创建两个方法,其中一个具有@requestmapping(value={“/{string:.+}”})批注,另一个具有@requestmapping(value={“/{string:.+}”、“/{string:.+}/{mstring:.+}”}),然后对每个方法执行相应的操作,因为您不能有可选的路径变量。

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
@RequestMapping("/show")
public class HelloController {

    @RequestMapping(value = { "/{string:.+}" })
    public String handleReqShow(@PathVariable String string,
            @RequestParam(required = false) String name,
            @RequestParam(required = false) String family, Model model) {
        System.out.println(string);
        model.addAttribute("message", "I am called!");
        return "hello";
    }

    @RequestMapping(value = { "/{string:.+}", "/{string:.+}/{mystring:.+}" })
    public String whatever(@PathVariable String string,
            @PathVariable String mystring,
            @RequestParam(required = false) String name,
            @RequestParam(required = false) String family, Model model) {
        System.out.println(string);
        System.out.println(mystring);
        model.addAttribute("message", "I am called!");
        return "hello";
    }
}
 类似资料:
  • 问题内容: 我需要按以下方式处理请求: 它应该接受介于和之间的值中的任何类型的字符?。请注意,将位于的值将是一个值,而不是操作的名称。 例如:其中第一个请求应将用户重定向到页面(因为那是名称),第二个请求应将用户lkikf连同参数名称的值一起重定向到页面。 我有下面的控制器来处理它,但是问题是当我的地址中有/时,控制器无法处理它。 我用下面的正则表达式不起作用。 问题答案: 你必须创建两个方法,然

  • 我对请求/请求类型/标头/正文没有任何控制。 我正在创建一个servlet,它必须处理一个POST请求,该请求将在请求url中包含多个反斜杠。(例如www.servlet.com/path/foo1/foo2/foo3/foo4/foo5) 我想捕获值"fo1/fo2/fo3/fo4/fo5"和反斜线的数量可能会有所不同。以下解决方案将适用于捕捉一个“foo”,但一旦有更多,它将达到404。 {资

  • 本文向大家介绍Python中的左斜杠、右斜杠(正斜杠和反斜杠),包括了Python中的左斜杠、右斜杠(正斜杠和反斜杠)的使用技巧和注意事项,需要的朋友参考一下 首先,"/"左倾斜是正斜杠,"\"右倾斜是反斜杠,可以记为:除号是正斜杠一般来说对于目录分隔符,Unix和Web用正斜杠/,Windows用反斜杠,但是现在Windows (一)目录中的斜杠们 python读文件需要输入的目录参数,列出以下

  • 我在创建Django URL正则表达式时遇到问题,该正则表达式允许所有字符(包括正斜杠)。更具体地说,我遇到的问题是区分URL参数中使用的正斜杠和URL中用作分隔符的正斜杠。 例如: 我有一个URL,看起来像这样:localhost:8000/jfe/customer/customerNumb/invoice2/portfolio/ 这包括3个URL参数:customerNumb、invoice2

  • 问题内容: 我正在将CSV文件导入MySQL数据库。可以通过支持文件路径中的正斜杠来实现。如果用户给出路径 MySQL不支持这种类型的路径模式。我想在路径中搜索反斜杠并将其替换为正斜杠,以实现以下目的: 怎么做? 问题答案: 在Java中,使用以下命令: 注意,这里不需要replace的正则表达式版本,即;仍会替换所有出现的搜索词,但会搜索 文字 字符串,而不是正则表达式匹配项。

  • 我有一个请求我的服务器,响应是一个类型,如下所示: 我通过如下方式设置改装请求: 并准备如下请求: 但是,始终无法获得响应的代码,并且该代码是”。 如何获得html响应? 非常感谢。