<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 1, 文章 - 44, 評論 - 2, 引用 - 0
    數據加載中……

    Applet與Servlet通信的具體實現

    通信過程包括下述兩個方面:
    2.1 Applet對Servlet的訪問及參數傳遞的實現
    2.1.1創建URL對象
    在JAVA程序中,可以利用如下的形式創建URL對象
    URL servletURL = new URL( "http://localhost:8080/servlet/dbServlet.DbServlet" );
    2.1.2 與URL地址建立連接
    在成功的創建了URL對象之后,可以調用URL類中的openConnection()函數來建立連接。openConnection()函數在建立連接的同時,進行通信連接的初始化工作。
    URLConnection servletConnection = servletURL.openConnection();
    2.1.3 利用URLConnection對象進行讀寫操作
    2.1.3.1 利用URLConnection對象讀取Servlet返回的信息
    在獲得URLConnection對象之后,如果Servlet向Applet傳送的是JAVA對象,則可以利用URLConnection對象的openStream()方法獲得輸入流,然后新生成一個ObjectInputStream對象,利用ObjectInputStream對象的readObject()方法即可得到Servlet傳回的JAVA對象。
    ResultSet rs = null; // Temporary storage for the data.
    URL servletURL = null; // The URL to the servlet.
    URLConnection servletConnection = null; // The connection to the servlet.
    ObjectInputStream dbStream = null; // The stream from the servlet.
    try
    {
    servletURL = new URL( "http://localhost:8080/servlet/dbServlet.DbServlet" );
    servletConnection = servletURL.openConnection();
    dbStream = new ObjectInputStream( servletURL.openStream() );
    // Read an object from the servlet stream and cast it to a DataSetData
    // object.
    data = (ResultSet) dbStream.readObject();
    }
    catch( Exception e )
    {
    。。。
    }
    如果Servlet向Applet傳送的是普通的文本,則可以利用URLConnection對象的getInputStream()方法獲得輸入流,然后新生成一個DataInputStream對象,利用DataInputStream對象的readLine()方法依次取得Servlet傳回的文本。
    DataInputStream dbStream = new DataInputStream ( servletURL.getInputStream() );
    // Read text from the servlet stream line by line.
    While((inputLine= dbStream.readLine())!=null)
    {
    ??????.
    }
    2.3.1.2利用URLConnection對象對Servlet的傳值操作
    Applet向Servlet的有關參數傳遞,可以通過下面兩種方法實現:
    可以通過在URL地址后附加參數以GET的方式實現參數的傳遞:
    servletURL = new URL( "http://localhost:8080/servlet/dbServlet.DbServlet?sql=select * from hklhzsj where total>100" );
    另一種方法是從URLConnection連接獲得輸出流,這個輸出流被連接到公共網關程序的(服務器端)的標準輸入流上,然后把要傳送的有關數據寫入輸出流,發送完畢關閉輸出流。
    servletConnection.setDoOutput(true);
    PrintStream outStream=new PrintStream(servletURL.openConnection());
    outStream.println(“sql=select * from hklhzsj where total>100”);
    outStream.close();
    2.2 Servlet向Applet的數據傳遞的實現
    可以通過Servlet對象的request參數的getParameter()獲得Applet傳遞過來的參數:String sql=request.getParameter("sql");
    通過Servlet對象的request參數的getOutputStream()所得到的輸出流新生成一個對象輸出流ObjectOutputStream類型的對象,然后通過該對象的writeObject()方法輸出JAVA類型的對象。
    Class.forName(“sun:jdbc:odbcdriver”);
    Connection conn =DriverManager.getConnection(connetionString)
    Statement st=conn.createStatement()
    ResultSet rs=st.execute(sql)
    dbStream = new ObjectOutputStream( response.getOutputStream() );
    // Write the object...
    dbStream.writeObject(rs );
    通過request參數的getWriter ()方法得到PrintWriter類型的輸出,通過此對象的println()方法可以從Servlet想Applet輸出文本:
    PrintWriter out = response.getWriter();
    out.println("<head><title>DataCenter</title></head>");
    通過上面的分析我們通過Servlet 實現了對非宿主機上的數據庫的訪問,Servlet 與Applet通信提供了語言級別上的互相傳遞JAVA對象的便利,我們同樣可以利用Applet通過CGI對各種服務器端的CGI程序或其它腳本應用程序(如ASP、JSP等)提供訪問,以文本的方式實現通信。

    posted on 2006-06-19 09:03 ASONG 閱讀(1401) 評論(0)  編輯  收藏 所屬分類: JAVA

    主站蜘蛛池模板: 麻豆国产VA免费精品高清在线| 国产亚洲色婷婷久久99精品| 免费国产不卡午夜福在线| 国产亚洲精品激情都市| 亚洲一区二区三区高清视频| 水蜜桃视频在线观看免费| 久草福利资源网站免费| 日本a级片免费看| 色拍自拍亚洲综合图区| 麻豆安全免费网址入口| 亚洲免费闲人蜜桃| 亚洲综合精品香蕉久久网| 99热亚洲色精品国产88| 久久免费高清视频| 亚洲AV网站在线观看| 亚洲愉拍99热成人精品热久久| 亚洲精品无码久久久久A片苍井空| 嫩草影院在线播放www免费观看| 亚洲AV无码精品无码麻豆| 美女视频黄.免费网址| 亚洲成年看片在线观看| 好猛好深好爽好硬免费视频| 国产一区二区三区免费看| 亚洲入口无毒网址你懂的| 日韩高清在线高清免费| 黄色a级免费网站| 亚洲Av无码专区国产乱码DVD| 99爱在线精品视频免费观看9| 国产亚洲自拍一区| 无码人妻AV免费一区二区三区| 亚洲国产午夜福利在线播放| 亚洲AV噜噜一区二区三区| 毛片a级三毛片免费播放| 亚洲日韩在线视频| 182tv免费观看在线视频| 亚洲AV无码一区二区三区DV| 国产四虎免费精品视频| 亚洲人6666成人观看| 真人做A免费观看| 瑟瑟网站免费网站入口| 亚洲AV无码AV男人的天堂|