線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1295
推到 Plurk!
推到 Facebook!

Jtree利用Socket傳值的問題??

尚未結案
superhank
一般會員


發表:8
回覆:24
積分:6
註冊:2003-06-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-09-23 01:15:02 IP:218.165.xxx.xxx 未訂閱
    如果現在必須利用Socket...    把滑鼠所點選的超連結位址傳到Server端..    不知道client端的程式要如何寫才能到達此功能..    看了一些書..試了一些方法..但都失敗了...< > 希望前輩們能解惑..謝謝...< >
neoart
版主


發表:22
回覆:582
積分:425
註冊:2003-05-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-09-23 09:50:47 IP:61.64.xxx.xxx 未訂閱
dear hank 你把事情想太複雜了.直接在tree(不管是javascript或是applet)所提供的超連結中加上一些參數,讓server端的cgi或是其他程式來分析就可以了. (你是要做client行為蒐集分析的吧?) 還是你有其他的用途?
superhank
一般會員


發表:8
回覆:24
積分:6
註冊:2003-06-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-09-23 14:08:52 IP:218.165.xxx.xxx 未訂閱
恩...我想我要做的東西可能沒辦法單純用您講的方法吧!    因為我不只是要傳一個超連結位址..    傳過去之後經過Servlet 分析.從資料庫取資料出來..    把資料庫中已經預設好的超連結位址.一個一個放進程式中...    構成一顆新的樹...這才是我要的結果..    我覺得很複雜...不知道能不能這麼做...    真是不好意思..問題一大堆...
neoart
版主


發表:22
回覆:582
積分:425
註冊:2003-05-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-09-23 15:09:09 IP:61.64.xxx.xxx 未訂閱
當然可以啦. 用java.net.URLConnection物件取得InputStream/OutputStream,再由IOstream來建立Object Input/OutputStream,再readObject/WriteObject就可以了. 這些東西都是在java.io套件中 (做完麻煩借玩一下)
superhank
一般會員


發表:8
回覆:24
積分:6
註冊:2003-06-30

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-09-23 21:47:44 IP:218.165.xxx.xxx 未訂閱
您的意思是指.. 其實這些功能不需用Socket嗎? 因為之前問過許多人..人人都說用
neoart
版主


發表:22
回覆:582
積分:425
註冊:2003-05-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-09-23 23:14:36 IP:61.56.xxx.xxx 未訂閱
java.net.URLConnection可以提供http建立起來的串流.事實上.都是由socket去實作的.只是包了http的協定罷了. 不知你的server side是不是用java引擎的? 以tomcat為例好了,servlet類別都是有response/request的方法.只要用request.getInputStream...或是response.getOutputStream就可以讀入/輸出物件. ex: =========================================================== public class Servlet1 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try{ java.io.ObjectOutputStream oop=new java.io.ObjectOutputStream(response.getOutputStream()); oop.writeObject(YOUR_OBJECT);//YOUR_OBJECT就是你要傳送出去的物件,要實作java.io.Serializable,也就是該物件所有的元素都是基礎資料形態, }catch(Exception e){ e.printStackTrace(); } } } ======================================================= 而client...也就是你的applet 讀取物件的方法如下... try{ java.net.URLConnection netCon=(new java.net.URL("http://xxxxx")).openConnection(); java.io.ObjectInputStream oip=new java.io.ObjectInputStream(netCon.getInputStream()); YOUR_CLASS obj=(YOUR_CLASS)oip.readObject(); oip.close(); //之後你就可以用你的obj物件了 }catch(Exception e){ e.printStackTrace(); } ================================================================= 印象中,awt或是swing都是有實作serializable的.不過這會很吃網路頻寬的. 建議是...把jtree所要的hashmap組裝好再傳遞吧. 如果你是要用socketListening自己實作的話,也差不多.不過執行緒及資源的控制就很麻煩,加上socket是很脆弱(容易斷線).有現成的web server就直接用吧. 發表人 - neoart 於 2003/09/23 23:21:53
superhank
一般會員


發表:8
回覆:24
積分:6
註冊:2003-06-30

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-09-23 23:40:43 IP:218.165.xxx.xxx 未訂閱
ㄜ.說來慚愧.. 您的程式太高深了. 我的程度還沒到.. 實在是看不懂... 不知道有沒有比較簡單的方式.. 從我卡住的地方先做Applet1.class傳遞所點選的超連結位址.. 這樣子...該怎麼寫?? 真是麻煩您了...
neoart
版主


發表:22
回覆:582
積分:425
註冊:2003-05-09

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-09-24 10:02:15 IP:61.64.xxx.xxx 未訂閱
ok.先說明一下可能的環境.. server: Tomcat client:Applet Applet在你click其他網頁的連結之前.先向你的tomcat server要下個jtree物件,update你的jtree,之後.再以之前你寫的開啟網頁的方式顯示超連結指向的網頁. 至於jtree由server的傳遞至applet.請參考上一個回覆 (有空再做給你看.不過要到下個月了)
superhank
一般會員


發表:8
回覆:24
積分:6
註冊:2003-06-30

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-09-24 11:41:43 IP:218.165.xxx.xxx 未訂閱
恩...我自己也試試看.. 謝謝您...
系統時間:2024-05-20 6:56:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!