我将如何传递隐藏参数?我想调用一个页面(test.jsp),但也像帖子一样传递 2 个隐藏参数。
response.sendRedirect("/content/test.jsp");
原文由 Ashish Anand 发布,翻译遵循 CC BY-SA 4.0 许可协议
我将如何传递隐藏参数?我想调用一个页面(test.jsp),但也像帖子一样传递 2 个隐藏参数。
response.sendRedirect("/content/test.jsp");
原文由 Ashish Anand 发布,翻译遵循 CC BY-SA 4.0 许可协议
通常,您不能使用 sendRedirect() 方法发送 POST 请求。您可以使用 RequestDispatcher 在相同的 Web 应用程序、相同的上下文中使用参数 转发() 请求。
RequestDispatcher dispatcher = servletContext().getRequestDispatcher("test.jsp");
dispatcher.forward(request, response);
HTTP 规范规定所有重定向必须采用 GET(或 HEAD)的形式。如果存在安全问题,您可以考虑加密查询字符串参数。另一种方法是您可以通过使用 POST 方法隐藏表单并在加载页面时使用 javascript 提交它来 POST 到目标。
原文由 AllTooSir 发布,翻译遵循 CC BY-SA 3.0 许可协议
8 回答6.6k 阅读
4 回答724 阅读✓ 已解决
2 回答3.4k 阅读
3 回答1.9k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
1 回答2.1k 阅读✓ 已解决
1 回答975 阅读✓ 已解决
TheNewIdiot 的回答 成功地解释了问题以及无法通过重定向在请求中发送属性的原因。可能的解决方案:
ServletRequest#getAttribute
的形式使用它们,或者使用 Expression Language 和 JSTL 。简短示例(重用 TheNewIdiot 的答案] 代码)。控制器(你的 servlet)
查看(您的 JSP)
使用小脚本:
这仅供 参考。 必须避免 使用 Scriptlet: 如何避免 JSP 文件中的 Java 代码? .下面是使用 EL 和 JSTL 的示例。
控制器
看法
同样,使用 scriptlet 显示它,然后使用 EL + JSTL: