如何使用一些隐藏参数从Servlet重定向到第三方URL

时间:2016-11-22 04:54:59

标签: java jsp servlets

我要求使用一些参数调用我的第三方网站(MoneyPayment)。我只需要使用JSP和Servlet。我正在尝试提交表单,我正在调用我正在尝试的Servlet:

pRequest.setAttribute("gatewayparam",vGateparam);
pRequest.setAttribute("checksum", vChecksum);
RequestDispatcher dispatcher = pRequest.getRequestDispatcher("https://MoneyPaymentURL");
try {
    dispatcher.forward( pRequest, pResponse );
} catch (IOException e) {
    log.info("IOException-: "+e);
}

这给了我FileNotFoundException:

java.io.FileNotFoundException: SRVE0190E: File not found: /ProjectName/https:/MoneyPaymentURL

我也尝试使用send.redirect(URL)但在这种情况下如何传递参数?

有人请建议我如何前进。

2 个答案:

答案 0 :(得分:1)

要从Servlet重定向到第三方网址,您应该使用response.sendRedirect("theURL")

  • 您可以将URL中的参数作为queryString传递
    • 示例:response.sendRedirect("theURL?paramName=paramValue")
    • 这将不是隐藏参数,将在URL栏中显示
  • 您可以将参数设置为session属性
    • 例:
      session.setAttribute("paramName", "Parameter Value");
      response.sendRedirect("theURL");
    • 获取JSP中的会话属性 out.println(session.getAttribute("paramName").toString()); session.removeAttribute("paramName");

希望这能解决你的问题。

答案 1 :(得分:0)

我也尝试使用send.redirect(URL)但在这种情况下如何传递参数?
是的,您无法使用POST发送send.redirect(URL)请求参数,但您可以使用会话属性来传递参数。

<强>例如

HttpSession session = request.getSession(false);

session.setAttribute("gatewayparam",vGateparam);
session.setAttribute("checksum", vChecksum);

response.sendRedirect("https://MoneyPaymentURL");

因此,您可以通过相关用途获取新第三方网站的会话价值。使用scriptletsJSTL等等......