私は次の問題を扱っています。
私は、(doPost と doGet がオーバーライドされた) サーベルトと、次のコードを含むアプレットを持っています。
String urlStr="blabla";
URLConnection conn = StartConnection("http","localhost",8084,urlStr);
InputObject obj = GetInputObject();
ObjectOutputStream oos = new ObjectOutputStream(conn.getOutputStream());
oos.writeObject(obj);
oos.flush();
このコードでは、サーブレットは何のアクションも行いません (doPost または doGet)。しかし、私が追加すると
BufferedReader in=new BufferedReader(new InputStreamReader(conn.getInputStream()));
String result = in.readLine();
log(result);
doPost本体に入ります。グーグルは何も与えません。必要がないのに、なぜ応答を読み返す必要があるのですか?
追加した:
private URLConnection StartConnection(String protocol,String host,int port, String urlStr){
URLConnection conn = null;
try
{
URL currentPage=getCodeBase();
URL dataURL=new URL(protocol,host,port,urlStr);
conn = dataURL.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
}
catch(Exception ee){
log(ee.getMessage().toString());
}
return conn;
}