gpt4 book ai didi

java - 跨站点 tomcat 表单发布不起作用

转载 作者:行者123 更新时间:2023-11-28 23:08:59 24 4
gpt4 key购买 nike

对于客户,我需要编写一个 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 中是否缺少某些配置设置?有什么提示或建议下一步该看哪里?非常感谢您的帮助。

最佳答案

请求属性?您不需要使用 HttpServletRequest#getParameter() 将它们作为请求参数访问吗?等等?

更令人困惑的是你说它在 doGet() 中工作。那么它的代码是什么样子的呢?它是否也将它们作为属性访问?这在普通的 JSP/Servlet 环境中(即您没有使用将参数复制到属性等的过滤器)是不可能的。

关于java - 跨站点 tomcat 表单发布不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1805819/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com