java - 如何使用JSP翻页保留参数

标签 java jsp servlets

a.jsp:

<form method=post action="b.jsp">
<INPUT TYPE="text" name="test" value="hello world!">
</form>

b.jsp:

<%@ page language="java" contentType="text/html;charset=UTF-8" %><%
response.sendRedirect("http://example.com/c.jsp");
%>

<强> http://example.com/c.jsp :(此页面在其他服务器中)

<%@ page language="java" contentType="text/html;charset=UTF-8" %><%
System.out.println(request.getParameterValues("test")); //must use request.getParameter
%>

如何在c.jsp中获取参数test

请不要使用 GET 方法,例如:response.sendRedirect("c.jsp?test=helloworld!");

我尝试使用forward,但抛出异常:

404 Not Found
/acc/http:/example.com/ccc.jsp was not found on this server. 

感谢您的帮助:)

最佳答案

你不能(除了你提出的 GET 解决方案,事实上这并没有那么糟糕)。

好吧,您可以使用 session 来存储输入值并在读取后将其删除(类似于闪存范围),但是如果使用使用同一 session 的多个选项卡,您可能会遇到麻烦。

如果您想使用客户端重定向。如果您可以使用转发(服务器端重定向): request.getRequestDispatcher("/c.jsp").forward(request, response) - 因此请求保持不变并且您拥有请求参数可用。

最后 - 不要在 JSP 中这样做。使用 servlet 来编写逻辑。

更新:由于您的 c.jsp 位于另一台服务器上,因此您实际上没有任何选项(除了 GET)

看来您可以使用 307 重定向来使重定向使用 post - check this question (是关于asp.net的,但是java响应类中也有类似的方法)

关于java - 如何使用JSP翻页保留参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5618887/

相关文章:

java - getParameter() 的行为

java - hibernate : Is it possible to "save cascade" only on test?

java - jsp中 session 超时后如何重定向到登录页面?

jsp - 如何删除项目上所有 JSP 页面的 .JSP 扩展名

java - 在JSP技术中,翻译错误和编译错误有什么区别?

java - 表模型监听器

java - UTF8编码问题

java - 控制台中仍然有输出

java - 如何使用 jsp 将单选按钮和复选框的值插入到我的数据库中?

java - Servlet 问题 - 资源不可用