//****************************************************************************** //** //** APPLET-SERVLET間データ送受信 テスト用サーブレット //** //** 概要:APPLETからストリームを受信し、APPLETへストリームを送信する。 //** //** 作成:株式会社システムインフィニティ //** //****************************************************************************** import javax.servlet.http.*; import javax.servlet.*; import java.io.*; import java.net.*; public class TESTSERVLET extends HttpServlet{ public void init(ServletConfig SC) throws ServletException{ //初期処理 super.init(SC); System.out.println("INIT TESTSERVLET"); } protected void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException{ try { //アプレットからのストリームを受信する //下記コメントの文では、java.io.StreamCorruptedExceptionが発生して受信できないので、 //BufferedInputStreamを使用して受信する。 //ObjectInputStream oin = new ObjectInputStream(req.getInputStream()); ObjectInputStream oin = new ObjectInputStream( new BufferedInputStream(req.getInputStream(), 4096)); //受信したストリームをオブジェクト配列へ格納 Object[] obj = (Object[])oin.readObject(); //受信ストリームを破棄 oin.close(); ////////////////////////// //サーブレットの業務処理// ////////////////////////// //アプレットへストリームを送信する //アプレットへの送信も同様にして、BufferedOutputStreamを使用して受信する。 ObjectOutputStream oout = new ObjectOutputStream( new BufferedOutputStream(res.getOutputStream(), 4096)); //送信ストリームへ書きこみ(受信したオブジェクト配列をそのまま送信する) oout.writeObject(obj); //送信ストリームの送り出し oout.flush(); //送信ストリームを破棄 oout.close(); } catch (Exception ex) { ex.printStackTrace(); } } }