2011-10-31 71 views
0

我正在向表单发送发送请求到重定向servlet。然后,servlet将一个表单写入其响应(getWriter)对象。该表格包含许多隐藏字段。我使用JavaScript来提交这个表单(JavaScript也被写入响应对象)。这个表单的目标是另一个servlet。从过滤器获取servlet参数值

现在,我正在编写一个过滤器来拦截我发送给另一个servlet(在另一个服务器上)的隐藏参数。但是,当我这样做: String [] values = req.getParameterValues(name);

我没有得到任何我放入字符串“name”中的参数的值。我不能改变代码的架构(不是我的)。我只需要获取由我的过滤器中的第一个servlet发送的参数,但我一直得到空值。任何帮助是极大的赞赏。

我的第一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

难以不说不看一些代码 –

+0

Matt,我用一些代码更新了我的问题。这个servlet将使用javascript将表单提交给指定的远程servlet。我想在远程servlet的机器/服务器上使用servlet过滤器拦截此请求。 – berto77

+4

你真的应该考虑将JSP用于HTML部分,Servlet用于逻辑部分。 –

回答

1

有与该ID go没有元件生成的HTML。变更

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

良好的捕获,但是这在调用远程servlet方面工作...我会改变,看看它是否有所作为。谢谢!:刚试过..似乎它在IE中没有什么不同。我可以得到很好的头,但不是隐藏的参数。 – berto77