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

使用URL中包含反斜杠的参数处理POST请求

侯涵煦
2023-03-14

我对请求/请求类型/标头/正文没有任何控制。

我正在创建一个servlet,它必须处理一个POST请求,该请求将在请求url中包含多个反斜杠。(例如www.servlet.com/path/foo1/foo2/foo3/foo4/foo5)

我想捕获值"fo1/fo2/fo3/fo4/fo5"和反斜线的数量可能会有所不同。以下解决方案将适用于捕捉一个“foo”,但一旦有更多,它将达到404。

@Path("/path")
@WebService
public interface myService {    
    @POST
    @Path("/{resource}")

{资源}只会传回“fo1”,但是如果我能通过404,我可以通过读取请求地址来检索完整的字符串。

是否有一个“通配符”选项用于POST请求,该选项可以实现以下内容:

@Path("/path")
@WebService
public interface myService {    
    @POST
    @Path("/*")

共有1个答案

凌通
2023-03-14

https://docs.jboss.org/resteasy/docs/3.0.3.Final/userguide/html/Using_Path.html

The @Path annotation is not limited to simple path expressions.
You also have the ability to insert regular expressions into @Path's value. For example:

@Path("/resources)
public class MyResource {

   @GET
   @Path("{var:.*}/stuff")
   public String get() {...}
}
The following GETs will route to the getResource() method:

GET /resources/stuff
GET /resources/foo/stuff
GET /resources/on/and/on/stuff
The format of the expression is:

"{" variable-name [ ":" regular-expression ] "}"

这现在对我有用。我的代码看起来像:

@Path("/path")
@WebService
public interface myService {    
    @POST
    @Path("/{resource: .*}")

它捕捉到了一切,除了“?”这可能只是一个正则表达式。当我找到解决方案时,我将继续讲述如何捕捉那个角色。

编辑: the'?'正在被@QueryParams捕获,因此您可以使用以下内容解析它

@QueryParam("param1") String param1
 类似资料:
  • 问题内容: 我需要按以下方式处理请求: 它应该接受介于和之间的值中的任何类型的字符?。请注意,将位于的值将是一个值,而不是操作的名称。 例如:其中第一个请求应将用户重定向到页面(因为那是名称),第二个请求应将用户lkikf连同参数名称的值一起重定向到页面。 我有下面的控制器来处理它,但是问题是当我的地址中有/时,控制器无法处理它。 我用下面的正则表达式不起作用。 问题答案: 你必须创建两个方法,然

  • 我需要按以下方式处理请求: 它应该接受位于和之间的值中的任何类型的字符。请注意,将位于那里的值将是一个单独的值,而不是一个动作的名称。 我使用了以下正则表达式,但这不起作用。

  • 我需要一个正则表达式,匹配所有被<@包围的数字!或<@和>。匹配项不能跟在奇数个反斜杠后面,但可以跟在零或偶数个反斜杠后面。 目前,我有以下regex: 问题是匹配包括反斜杠,我需要一个不包括反斜杠的正则表达式。 有人能做一个能完成这一点的正则表达式吗? 有效输入字符串: 匹配: 无效的输入字符串: 匹配:无

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

  • 问题内容: 我有一个字符串“ \\ u003c”,它属于UTF-8字符集。由于存在双反斜杠,因此我无法将其解码为unicode。如何从“ \\ u003c”获取“ \ u003c”?我正在使用Java。 我尝试过 但无法实现我想要的。 这是我的代码 文件的内容是 \ u003c 问题答案: 不知道您是否仍在寻找解决问题的方法(因为您已经接受了答案),但是我仍然会添加我的答案作为针对 所述问题 的可

  • Markdown 可以利用反斜杠来插入一些在语法中有其它意义的符号,例如:如果你想要用星号加在文字旁边的方式来做出强调效果(但不用 <em> 标签),你可以在星号的前面加上反斜杠: \*literal asterisks\* Markdown 支持以下这些符号前面加上反斜杠来帮助插入普通的符号: \ 反斜线 ` 反引号 * 星号 _ 底线 {} 花括号 [] 方括号 () 括