我正在从表单发送一个post请求到一个重定向servlet。然后,servlet将表单写入其响应(getWriter)对象。此表单包含许多隐藏字段。我使用javascript来提交此表单(javascript也会写入响应对象)。此表单的目标是另一个servlet。
现在,我正在编写一个过滤器来拦截我发送到另一个servlet(在另一台服务器上)的隐藏参数。但是,当我这样做时: String [] values = 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>");
答案 0 :(得分:1)
生成的HTML中没有ID go
的元素。改变
out.println("<form name=\"go\" method=\"post\" action=\"http://" +
// to
out.println("<form id=\"go\" method=\"post\" action=\"http://" +