【发布时间】:2010-12-20 19:41:25
【问题描述】:
对于一个客户,我需要编写一个可以在表单发布中打印值的 Servlet。该表单托管在另一台服务器上,看起来有点像这样:
<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 1.4 jdk 上运行,所以我制作了一个简单的 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 中是否缺少一些配置设置? 有什么提示或建议下一步该去哪里看吗? 非常感谢您的帮助。
【问题讨论】:
标签: java html tomcat forms post