Java WebSocket HandshakeRequest getParameterMap 方法

Pat*_*Pat 2 java websocket jakarta-ee

是否该方法getParameterMapHandshakeRequest包括路径参数?我似乎找不到关于此的详细文档。

Bal*_*usC 5

HandShakeRequest#getParameterMap()javadoc说如下:

返回与请求关联的请求参数。

它说的是请求参数,而不是路径参数。

让我们检查一个 URL 是如何组成的:

http://example.com/context/foo/bar?foo=bar&bar=foo
                  ----------------
                  请求 URI
http://example.com/context/foo/bar?foo=bar&bar=foo
                  --------
                  上下文路径
http://example.com/context/foo/bar?foo=bar&bar=foo
                           --- ---
                           路径参数
http://example.com/context/foo/bar?foo=bar&bar=foo
                                   ------- -------
                                   请求参数

当只有HandShakeRequest手头,没有任何方法直接返回路径参数时,最好的办法是使用getRequestURI()并执行字符串操作(拆分、子字符串等)以提取路径参数。

另一种方法是将任务移动到Endpoint#onOpen()or 中@OnOpen,路径参数可以直接通过Session#getPathParameters().