对于一个客户,我需要编写一个可以在表单发布中打印值的Servlet。形式托管在其他服务器上,有些看起来是这样的:跨站点tomcat表单发布不起作用
<form action="http://myserver/myServlet" method="POST">
<input type="text" id="someName" value="someInterestingValue"/>
<input type="submit" value="submit" />
</form>
我提供一个Tomcat 5.0.28服务器上的Java JDK 1.4运行的,所以我做了一个简单的servlet:
public class ProxyServlet extends HttpServlet {
public void doPost(HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException {
PrintWriter out = res.getWriter();
Enumeration a =req.getAttributeNames();
while (a.hasMoreElements()){
String attrname = (String) a.nextElement();
out.println(attrname+"="+req.getAttribute(attrname)+"<br/>");
}
out.close();
}
}
当我通过URL访问servlet时,所有内容都与预期相符。当我发送带有一些参数的GET请求时,我可以在doGet()方法的调试器中看到这些属性(方法被忽略)。
但是,在doPost()中,我的表单字段似乎丢失了。我查看了Tomcat日志文件,没有记录任何特别的东西。我试图添加crossdomain.xml到一些目录,但没有找到一种方法来改变这种行为。
所以要清楚:上面列出的表单位于服务器A上。我的servlet运行在服务器B上托管的现有传统Tomcat/Java应用程序上。当表单类型为“POST”时,没有任何字段到达服务器B上的Servlet。Apache不在Tomcat的“前面”。
是否有一些配置设置我在Tomcat中缺少? 任何提示或建议在哪里看下? 非常感谢帮助。
啊,那也错过了我的眼睛。这太明显了。如果你真的说getParameter()的东西也不起作用,它会有更多的帮助。不过很高兴你自己解决了它。 – BalusC 2009-11-26 22:28:21
是的,我的不好,我最初有getParameter()代码,但是我认为我可以放松它,使问题缩短一点。 – Rolf 2009-11-26 22:51:29