0

我的 JSP 之一中有以下代码:

<c:redirect url="someFile.jsp">
    <c:param name="source" value="${param.source}" />
    <c:param name="target" value="${param.target}" />
    <c:param name="value" value="${param.value}" />
</c:redirect>

请求的 JSP [ someFile.jsp ] 通过以下方式访问参数:

String source = request.getParameter("source");
String target = request.getParameter("target");
String value  = request.getParameter("value");

但不是<c:redirect url我需要使用response.sendRedirect("someFile.jsp")方法。但是我不确定如何在 sendRedirect 方法中使用上述参数以及 jsp 文件名。

有人可以帮我看看我应该如何编写我的重定向方法。我们可以做这样的事情吗:

response.sendRedirect("someFile.jsp?source=" + source +  "?target=" +target + "?value=" +value); 

或者

session.setAttribute("source",source)
session.setAttribute("target",target)
session.setAttribute("value",value)

response.sendRedirect("someFile.jsp")
4

1 回答 1

1

您不能这样做,response.sendRedirect因为response.sendRedirect只是要求浏览器向指定路径发送请求,这意味着新请求不会从旧请求中获取任何信息。

您可以使用它来RequestDispatcher#forward将请求从 servlet 转发到服务器上的另一个资源(servlet、JSP 文件或 HTML 文件)。

RequestDispatcher dispatcher = request.getRequestDispatcher("someFile.jsp");
dispatcher.forward(request, response);
于 2021-01-27T14:27:02.840 回答