我正在从表单向重定向 servlet 发送一个 post 请求。然后,Servlet 将表单写入其响应 (getWriter) 对象。该表单包含许多隐藏字段。我使用 javascript 提交此表单(javascript 也被写入响应对象)。该表单的目标是另一个servlet。
现在,我正在编写一个过滤器来拦截我发送到另一个 servlet(在另一台服务器上)的隐藏参数。但是当我这样做时: String[] 值 = req.getParameterValues(name);
我在字符串“name”中输入的任何参数都没有得到任何值。我无法更改代码的架构(不是我的)。我只需要获取过滤器中第一个 servlet 发送的参数,但我一直得到 null。非常感谢任何帮助。
我的第一个 servlet 代码:
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>redirectServlet</title></head>");
out.println("<body>");
out.println("<form name=\"go\" method=\"post\" action=\"http://" +
remotehost + "/somerep/someservlet?\">");
out.println("<input type=hidden name=userid value=" + conn + "> ");
out.println("<input type=hidden name=paramform value=no> ");
out.println("<input type=hidden name=nonblocksql value=no> ");
out.println("<input type=hidden name=recursive_load value=no> ");
out.println("<input type=hidden name=job_seq_id value=" + jobId + ">");
out.println("<input type=hidden name=destype value=cache> ");
out.println("<input type=hidden name=desformat value=pdf> ");
out.println("</form> ");
out.println("<script language=\"JavaScript\" type=\"text/javascript\"> ");
out.println("document.getElementById('go').submit();");
out.println("</script>");
out.println("</body>");
out.println("</html>");
最佳答案
在生成的 HTML 中没有 ID 为 go
的元素。改变
out.println("<form name=\"go\" method=\"post\" action=\"http://" +
// to
out.println("<form id=\"go\" method=\"post\" action=\"http://" +
关于java - 从过滤器获取 servlet 参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7959469/