🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: cn.bbs.comp.lang.java
Article #21779

��̹���applet��servletͨ�ŵ����⡣��

#21779
From: nick
Date: Wed, 12 Nov 2003 14:39
202 lines
6328 bytes

�������£�
class ServletProxy {
    public ServletProxy(){
    }

    public void setupServletConnection() {
      if (servletLinkup == null) {
        try {
          urlLocation = new URL(location);
        }
        catch (MalformedURLException e) {
          e.printStackTrace(System.err);
        }
      }
      if (urlLocation == null) {
        System.out.println("can't connect to host!");
      }
      else {
        System.out.println("urlLocation connected!");
      }
    }

     public void createServletLink() {
   if (servletLinkup == null) {
     try {
       servletLinkup = (HttpURLConnection)
           urlLocation.openConnection();
     }
     catch (IOException ioe) {
       System.out.println("Failed to connect to servlet!!");
       ioe.printStackTrace(System.err);
     }
   }
   servletLinkup.setDoInput(true);
   servletLinkup.setDoOutput(true);
   servletLinkup.setUseCaches(true);
   servletLinkup.setDefaultUseCaches(true);
   servletLinkup.setRequestProperty(
       "Content-Type","application/x-java-serialized-object");
   //open Servlet Output Stream, for "sending to" servlet
   try{
              bufferedSOS = new BufferedOutputStream(
          servletLinkup.getOutputStream());
      servletOOS = new ObjectOutputStream(bufferedSOS);
    }
    catch(IOException ioe){
      System.out.println(
          "error to open outputstream to servlet!!!");
    }

    if (servletLinkup != null){
      System.out.println("connected!");
    }
    //open servlet input stream, for "receiving from" servlet
    try{
      bufferedSIS = new BufferedInputStream(
          servletLinkup.getInputStream());
      servletOIS = new ObjectInputStream(bufferedSIS);
    }
    catch(IOException ioe){
      System.out.println(
          "error to open input stream to servlet!!");
      ioe.printStackTrace();
       }
 }

 public void writeToServlet(Object o){
   System.out.println("writeToServlet!");
   if (servletOOS != null){
     try{
       servletOOS.writeObject(o);
       System.out.print("success!");
     }
     catch (IOException ioe){
       System.out.print("failed!");
       ioe.printStackTrace(System.err);
     }
   }
 }

 public void writeToServlet(String s){
   System.out.println("write string to servlet!");
   if (servletOOS != null){
     try{
                 servletOOS.writeChars(s);
         System.out.print("success!");
       }
       catch (IOException ioe){
         System.out.print("failed!");
         ioe.printStackTrace(System.err);
       }
     }
   }

   public void readFromServlet(Object o){
     if (servletOIS != null){
       try{
              bufferedSIS.reset();
      o = servletOIS.readObject();
    }
    catch(IOException ioe){
      ioe.printStackTrace(System.err);
    }
    catch (ClassNotFoundException cnfe){
      cnfe.printStackTrace(System.err);
    }
  }
}

public void readFromServlet(String s){
  if (servletOIS != null) {
    try {
      bufferedSIS.reset();
      s = servletOIS.readLine();
    }
    catch (IOException ioe) {
      ioe.printStackTrace(System.err);
          }
    }
  }
     private String location = new String(
     "http://localhost:8083/ControlServlet");
 private URL urlLocation = null;
 private HttpURLConnection servletLinkup = null;

 private BufferedOutputStream bufferedSOS = null;
 private BufferedInputStream bufferedSIS = null;

 private ObjectOutputStream servletOOS = null;
 private ObjectInputStream servletOIS = null;
  }

public class ControlServlet extends HttpServlet{
  BufferedInputStream bufferedSIS = null;
  ObjectInputStream servletIS = null;

  BufferedOutputStream bufferedSOS = null;
  ObjectOutputStream servletOS = null;

  public ControlServlet(){
  }

  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
      throws ServletException, IOException{
    doPost(request,response);
  }
  public void doPost(HttpServletRequest request,
                    HttpServletResponse response)
      throws ServletException, IOException{
    try{
      System.out.println("servlet response!");
      if (servletIS == null) {
        bufferedSIS = new BufferedInputStream(request.getInputStream());
        servletIS = new ObjectInputStream(bufferedSIS);
      }
      if (servletOS == null) {
        bufferedSOS =
            new BufferedOutputStream(response.getOutputStream());
        servletOS = new ObjectOutputStream(bufferedSOS);
      }
     Object o = null;
     try {
       bufferedSIS.reset();
       o = servletIS.readObject();
     }
     catch (Exception e) {
       e.printStackTrace(System.err);
     }

     String msg = "";
     if (o != null) {
       msg = o.toString();
     }

     System.out.println("success!!!");
     servletOS.writeObject(o);
   }
 }
����һ���쳣��
java.io.EOFException
    at
java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2165)
    at
java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:
2634)
    at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:734)
    at java.io.ObjectInputStream.<init>(ObjectInputStream.java:253)
    at xu.test.Test$ServletProxy.createServletLink(Test.java:256)
    at xu.test.Test.main(Test.java:179)

���Ϻָ��һ����������ˣ�
���������޸ġ���
лл����




--
�� ��Դ:���㽭��ѧ���ɰٴ�վ bbs.zju.edu.cn��[FROM: whiIe]
Technical Details
Message-ID: <49EkbW$AyT@bbs.zju.edu.cn>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!cyclone.bc.net!sjc70.webusenet.com!news.webusenet.com!maily.cic.tsinghua.edu.cn!news.ccie.net.cn!ZJUBBS

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII
X-Google-Thread: f6cb0,850e874024ee5a19,start
X-Google-Attributes: gidf6cb0,public
X-Google-ArrivalTime: 2003-11-12 06:41:05 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!cyclone.bc.net!sjc70.webusenet.com!news.webusenet.com!maily.cic.tsinghua.edu.cn!news.ccie.net.cn!ZJUBBS
From: whiIe.bbs@bbs.zju.edu.cn (nick)
Newsgroups: cn.bbs.comp.lang.java
Subject: ��̹���applet��servletͨ�ŵ����⡣��
Date: 12 Nov 2003 14:39:51 GMT
Organization: �㽭��ѧ���ɰٴ�
Message-ID: <49EkbW$AyT@bbs.zju.edu.cn>
X-Filename: Java/M.1068647696.A