使用的技术:
- Apache Tomcat 9
- Java 8
- 雅加达EE
我一直在与一家商业供应商的前端合作,仅限于从该前端发送GET请求。
请求中有一些信息,我不希望他们通过更改该请求的查询字符串中的值而意外更改(到目前为止,已有超过1个用户更改)。
我的想法是通过Servlet重定向GET请求,在那里我可以删除查询字符串,这样他们就不会编辑它,并将其作为POST与表单数据一起提交,这样我仍然可以获取数据。
我无法修改发送请求的页面,因为它是供应商提供的软件。
之前使用GET的查询字符串是为了克服这个限制,如果我们对这个前端有完全的控制,我们只需将其更改为带有formdata的POST。
我可以执行此重定向以避免从供应商的前端创建更复杂的登录页吗?
我已经研究了转发,但这不会改变URL。我已经研究过从中间的页面发送请求并返回响应,但这并不会更改URL。我研究过嵌入在提交隐藏表单的JSP中的Javascript,但这可能会导致负载问题。
我真的希望有一种简单的方法可以从Servlet内部使用修改后的请求对象进行重定向,但我没有找到任何方法。
当前来自用户的示例请求:方法:GETURL:http://www.your.domain.com/service-get-or-post?field1=foo&field2=条形图&;字段3=42
所需的新目标:方法:GETURL:http://www.your.domain.com/service-trampoline?field1=foo&field2=条形图&;字段3=42
所需的新重定向:方法:POSTcontent:application/x-wwww-form-urlencodedURL:http://www.your.domain.com/service-get-or-postbody:field1=foo&;field2=条形图&;字段3=42