鷹翔宇空

          學習和生活

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            110 Posts :: 141 Stories :: 315 Comments :: 1 Trackbacks

          公告

          歡迎和大家成為朋友!
          歡迎和大家就任何技術進行交流!
          QQ:77542728
          MSN:hnlyhyq@hotmail.com
          Email:hnlyhyq@163.com

          常用鏈接

          留言簿(16)

          隨筆分類(107)

          隨筆檔案(109)

          文章分類(145)

          文章檔案(141)

          收藏夾(22)

          java

          javascript

          jdbc

          web

          其它

          開源項目

          我的好友

          最新隨筆

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          服務器端代碼:
          在HttpServlet中的doPost(HttpServletRequest request, HttpServletResponse response)方法中:
              ObjectInputStream in = new ObjectInputStream(new BufferedInputStream(request.getInputStream()));(這一步特別容易出錯,網上所留言的以及尋求答案的多為這一步,主要是方法位置,如果是doGet方法,我在使用過程中,也一直跑異常,java.io.EOFException,但是換成doPost后就沒有了,不知道為什么)。
              ObjectOutputStream out = new ObjectOutputStream(response.getOutputStream());

          客戶端:
               String sMessage = "test";//此處是需要發(fā)送的可序列化的對象。
                URL url = newURL("http://localhost:8080/test/servlet");
                URLConnection con = url.openConnection();
                con.setDoInput(true);
                con.setDoOutput(true);
                con.setRequestProperty("Content-type", "application/octest-stream");
                out = con.getOutputStream();
                objStream = new ObjectOutputStream(out);
                objStream.writeObject(sMessage);
                objStream.flush();
                InputStream in = con.getInputStream();
                ObjectInputStream back = new ObjectInputStream(in);
                back.readObject();
                objStream.close();
                back.close();

          不知道為什么,必須要有后一部分的,即:必須從連接中獲取一個流對象,然后才能觸發(fā)寫入的事件,如果不獲取,則沒有任何效果,沒有研究,下一步再努力研究吧,現在突然對網絡編程產生了很大興趣,可惜啊,出差在外,忙著做項目。
          希望有能解釋上述原因的朋友不吝賜教。
          posted on 2007-09-19 21:11 TrampEagle 閱讀(5519) 評論(6)  編輯  收藏 所屬分類: 學習體會

          Feedback

          # re: 如何通過URLConnection向HttpServlet發(fā)送信息 2007-09-19 23:15 ky
          用commons-httpclient包還是不錯的...  回復  更多評論
            

          # re: 如何通過URLConnection向HttpServlet發(fā)送信息 2007-09-19 23:36 千里冰封
          commons-httpclient包是不錯,但是一般的應用,JAVA的標準庫也可以的  回復  更多評論
            

          # re: 如何通過URLConnection向HttpServlet發(fā)送信息 2007-09-20 08:30 TrampEagle
          @千里冰封
          謝謝,我還沒有用過commons-httpclient包,抽空我會研究一下的。  回復  更多評論
            

          # re: 如何通過URLConnection向HttpServlet發(fā)送信息 2007-09-20 14:53 Alexander.Yu
          httpclient很好用。  回復  更多評論
            

          # re: 如何通過URLConnection向HttpServlet發(fā)送信息 2007-09-20 20:48 BeanSoft
          建議用 GET/POST 方式或者編碼為 XML. 如果兩臺電腦 JVM 版本不一致的話這種方式有時候會出現問題, 例如某些 JDK 類序列化之后內容不一致, 這個是以前用 JDK 的序列化了參數, 完了后來換用 1.5 的運行, 發(fā)現參數反序列化不了了.

          GET/POST: http://www.aygfsteel.com/beansoft/archive/2007/05/23/119444.html
          AJAX入門介紹 - (2) GET 和 POST 配合表單

          XML 方式參考 /*
          * @(#)BeanXML.java 1.00 2005-10-7
          *
          * Copyright 2005 BeanSoft Studio. All rights reserved.
          * PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
          */
          package beansoft.xml;

          import java.beans.XMLDecoder;
          import java.beans.XMLEncoder;
          import java.io.ByteArrayInputStream;
          import java.io.ByteArrayOutputStream;
          import java.io.UnsupportedEncodingException;

          /**
          * BeanXML
          *
          * Chinese documents:
          *
          * @author BeanSoft
          * @version 1.00 2005-10-7
          */
          public class BeanXML {
          /**
          * 使用 java.beans.XMLEncoder 將 對象編碼為 XML.
          * @param bean 對象
          * @return String - 編碼后的 XML
          */
          public static String encodeBean(Object bean) {
          ByteArrayOutputStream out = new ByteArrayOutputStream();
          XMLEncoder encoder = new XMLEncoder(out);
          encoder.writeObject(bean);
          encoder.close();

          return out.toString();
          }

          /**
          * 使用 java.beans.XMLDecoder 將 XML 解碼為 對象.
          * @param xml - 編碼后的 XML
          * @return Object 反編碼后的對象
          */
          public static Object decodeBean(String xml) {
          try {
          // FIXME 必須使用 GBK 解碼才對, 否則出來的文字是亂碼?
          XMLDecoder decoder = new XMLDecoder(new ByteArrayInputStream(xml.getBytes("GBK")));
          return decoder.readObject();
          } catch (UnsupportedEncodingException e) {
          }

          return null;
          }
          }
            回復  更多評論
            

          # re: 如何通過URLConnection向HttpServlet發(fā)送信息 2007-09-22 00:50 梧桐
          期待  回復  更多評論
            

          主站蜘蛛池模板: 乐陵市| 洛阳市| 张家口市| 平江县| 桂林市| 福建省| 庆阳市| 旌德县| 兴山县| 石林| 抚顺市| 黔西县| 桐梓县| 赤城县| 突泉县| 安泽县| 青冈县| 河津市| 社会| 金门县| 长子县| 兴安盟| 顺平县| 白水县| 庆阳市| 合川市| 余姚市| 东光县| 九龙坡区| 光泽县| 聂拉木县| 万源市| 黄大仙区| 柘荣县| 墨竹工卡县| 虹口区| 南城县| 巴南区| 博乐市| 寿阳县| 东光县|