如何获取包含参数的请求字符串

spr*_*boy 28 java servlets

我的应用程序中有一个奇怪的异常,我想在它发生时记录并包含完整的请求字符串,包括参数.

当我尝试

log.warn("Weird request " + request.getRequestURL());
Run Code Online (Sandbox Code Playgroud)

我得到了请求字符串,但没有包含的参数?和&.

例:

/testRequest.do?param1=1&param2=2
Run Code Online (Sandbox Code Playgroud)

我只看到了

/testRequest.do
Run Code Online (Sandbox Code Playgroud)

我可以在某个地方找到这整串吗?

Kev*_*vin 70

请参阅HttpServletRequest#getQueryString()

如果你想要整个字符串,你必须将请求url和查询字符串附加在一起,因为没有方法来获取整个字符串.

System.out.println(request.getRequestURL().append('?').append(request.getQueryString()));
Run Code Online (Sandbox Code Playgroud)

  • 如果没有参数,你会显示什么?在末尾. (4认同)
  • 如果你喜欢这个网站,点击复选标记接受这个答案!:) (2认同)
  • @ToKra 只需添加一些逻辑来检查计算结果是否为 null 并基于此构建您的字符串: String finalUrl = (request.getQueryString() != null) ?String.join("", request.getRequestURL(),"?" ,request.getQueryString()) : request.getRequestURL() ; (2认同)