当前位置: 技术问答>java相关
<***——急!关于applet通过HTTP与servlet对话的问题!——***>
来源: 互联网 发布时间:2015-02-11
本文导语: 参考程序: Applet端: try{ URL url=new URL("http://localhost:8080/servlet/ServerServlet?Action=3"); URLConnection connect=url.openConnection(); connect.setDoOutput(true); ObjectOutputStream objOut=new ObjectOutputStream(connect.getOutputStream()); objOut....
参考程序:
Applet端:
try{
URL url=new URL("http://localhost:8080/servlet/ServerServlet?Action=3");
URLConnection connect=url.openConnection();
connect.setDoOutput(true);
ObjectOutputStream objOut=new ObjectOutputStream(connect.getOutputStream());
objOut.writeObject("sdfsdfs");
objOut.flush();
objOut.close();
}catch(Exception e){
System.out.println(e);
}
servlet端:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("connection");
try{
ObjectInputStream objIn=new ObjectInputStream(request.getInputStream());
Object obj=objIn.readObject();
System.out.println(obj);
}catch(IOException ioe){
System.out.println("IOException:"+ioe);
}catch(ClassNotFoundException notFound){
System.out.println("ClassNotFoundException:"+notFound);
}
}
applet向servlet提交串行化的对象后,servlet没有任何响应,doGet方法没有执行!!
但是applet从servlet端读取串行化的对象是可以响应的:
ObjectInputStream inputStream=new ObjectInputStream(connect.getInputStream());
这是怎么回事啊!!!
Applet端:
try{
URL url=new URL("http://localhost:8080/servlet/ServerServlet?Action=3");
URLConnection connect=url.openConnection();
connect.setDoOutput(true);
ObjectOutputStream objOut=new ObjectOutputStream(connect.getOutputStream());
objOut.writeObject("sdfsdfs");
objOut.flush();
objOut.close();
}catch(Exception e){
System.out.println(e);
}
servlet端:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("connection");
try{
ObjectInputStream objIn=new ObjectInputStream(request.getInputStream());
Object obj=objIn.readObject();
System.out.println(obj);
}catch(IOException ioe){
System.out.println("IOException:"+ioe);
}catch(ClassNotFoundException notFound){
System.out.println("ClassNotFoundException:"+notFound);
}
}
applet向servlet提交串行化的对象后,servlet没有任何响应,doGet方法没有执行!!
但是applet从servlet端读取串行化的对象是可以响应的:
ObjectInputStream inputStream=new ObjectInputStream(connect.getInputStream());
这是怎么回事啊!!!
|
好了,你的问题我总算调试过去了。
我也不知道为什么,不能只输出或只输入,必须同时输入和输出双向。
我把那本javaservlet编程指南书上的例子运行了一下,没问题,然后我一点一点去掉里面的东西,发现如果我在client只送不收,在servlet中只收不发,就铁定没有响应,……
即使我把system.out.println(strValue)放在前面,照理说收到信息也该在这里打印出来,可是也没有办法,非得加上整个输出的功能。
你试一下,源程序可以去这个站点: http://www.servletguru.com 有下的,你调试一下吧。
有什么心得与我分享。