我想从Java应用程序调用一个Servlet。问题是,似乎没有调用到Servlet。我没有收到任何错误信息,但是也没有到达Servlet中的第一个输出“doPost”。如果我在Web浏览器中打开URL,我会得到“不支持GET”等错误,但至少我可以看到一些事情发生了。
我使用以下代码(ActionPackage类仅包含参数向量并且可序列化):
Java应用程序:
我使用以下代码(ActionPackage类仅包含参数向量并且可序列化):
Java应用程序:
ActionPackage p = new ActionPackage();
p.addParameter("TEST", "VALUE");
System.out.println(p);
URL gwtServlet = null;
try {
gwtServlet = new URL("http://localhost:8888/app/PushServlet");
HttpURLConnection servletConnection = (HttpURLConnection) gwtServlet.openConnection();
servletConnection.setRequestMethod("POST");
servletConnection.setDoOutput(true);
ObjectOutputStream objOut = new ObjectOutputStream(servletConnection.getOutputStream());
objOut.writeObject(p);
objOut.flush();
objOut.close();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Servlet:
public class PushServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doPost");
ObjectInputStream objIn = new ObjectInputStream(request.getInputStream());
ActionPackage p = null;
try {
p = (ActionPackage) objIn.readObject();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
System.out.println("Servlet received p: "+p);
}
有什么想法是出了什么问题吗?
谢谢。
<FORM METHOD="POST" ACTION="http://localhost:8888/app/PushServlet">
提交到 PushServlet。我相信即使是本地 HTML 文件,只要它提交到正确 URL 的 servlet 就可以工作。 - Bert F