从过滤器获取servlet参数值

时间:2011-10-31 20:41:03

标签: java forms servlets servlet-filters

我正在从表单发送一个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>");

1 个答案:

答案 0 :(得分:1)

生成的HTML中没有ID go的元素。改变

out.println("<form name=\"go\" method=\"post\" action=\"http://" + 
// to
out.println("<form id=\"go\" method=\"post\" action=\"http://" +