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

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

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

    vickzhu

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      151 隨筆 :: 0 文章 :: 34 評論 :: 0 Trackbacks

    #

    使用group by子句的注意事項:

    (1)在SELECT子句的字段列表中,除了聚集函數外,其他所出現的字段一定要在group by子句中有定義才行。例如“group by A,B”,那么“SELECT SUM(A),C”就有問題,因為C不在group by中,但是SUM(A)是可以的。

    (2)SELECT子句的字段列表中不一定要有聚集函數,但至少要用到group by子句列表中的一個項目。例如“group by A,B,C”,則“SELECT A”是可以的。

    (3)在SQL Server中text、ntext和image數據類型的字段不能作為group by子句的分組依據。

    posted @ 2009-04-21 18:26 筱 筱 閱讀(158) | 評論 (0)編輯 收藏

    格式 
    定義變量:
    $identifier
    $(identifier)
    $(identifier:conversion)

    變量的字符串級別最高,如果遇到相同的字符串,首先被認為是變量。顯示$,需要后面在跟一個,$$。例如:
    You account has $$1650.00 in it.

    變量名稱規則:
    1、變量名是由US-ASCII碼、下劃線和數字組成;
    2、只能以US-ASCII碼開頭;
    3、變量名大小寫敏感。
    注意:
    1、WML變量沒有類型,均表示為字符串;
    2、變量沒有被賦值的時候,內容為空,即空字符串。
    3、可以在運行過程中改變它的值。

    創建變量
    最簡單的方法是使用<setvar>元素,語法如下:
    <setvar name="string" value="string" />

    <setvar>只能在<go>、<prev>和<refresh>中使用。
    下例定義了一個叫vNAME的變量并賦值為“Jeff”:
    <setvar name="vNAME" value="Jeff" />

    另外,還可以在<input>、<select>和<postfield>中定義變量。

    替換文本 
    變量可以用作替換用途,但只能在文本類型(如顯示字符、URL等)中使用。
    任何元素和屬性都不能使用變量來替代。例如:
    Hello, $vNAME.
    將顯示:
    Hello, Jeff.

    ESCAPE
    轉換

    前面說過變量可以用作替換用途,但是在URL中使用時,變量的內容必須遵守[RFC2396]標準。
    這個標準規定某些特殊字符在URL里使用的時候必須用特殊表示方法,即ESCAPE八進制表示。
    例如:
    list.asp?id=3

    在URL中要表示為:

    list.asp%3fid=3

    所以變量有可能需要標志為是否對其內容進行ESCAPE轉換,變量定義就有如下幾種特殊方式:

    效果 表達方式1 表達方式2 表達方式3
    對變量中ESCAPE字符進行轉換 $(var:e) $(var:E) $(var:escape)
    不進行ESCAPE轉換 $(var:u) $(var:U) $(var:unesc)
    變量中沒有ESCAPE字符 $(var:n) $(var:N)

    $(noesc)


    給變量進行ESCAPE轉換是WML的默認方式。
    posted @ 2009-04-13 14:11 筱 筱 閱讀(148) | 評論 (0)編輯 收藏

    概述:
    Servlet監聽器用于監聽一些重要事件的發生,監聽器對象可以在事情發生前、發生后可以做一些必要的處理。
    接口:
    目前Servlet2.4和JSP2.0總共有8個監聽器接口和6個Event類,其中HttpSessionAttributeListener與
    HttpSessionBindingListener 皆使用HttpSessionBindingEvent;HttpSessionListener和 HttpSessionActivationListener則都使用HttpSessionEvent;其余Listener對應的Event如下所 示:

    Listener接口

    Event

    ServletContextListener

    ServletContextEvent

    ServletContextAttributeListener

    ServletContextAttributeEvent

    HttpSessionListener

    HttpSessionEvent

    HttpSessionActivationListener

    HttpSessionAttributeListener

    HttpSessionBindingEvent

    HttpSessionBindingListener

    ServletRequestListener

    ServletRequestEvent

    ServletRequestAttributeListener

    ServletRequestAttributeEvent

    分別介紹:
    一 ServletContext相關監聽接口
    補充知識:
    通過ServletContext 的實例可以存取應用程序的全局對象以及初始化階段的變量。
    在JSP文件中,application 是 ServletContext 的實例,由JSP容器默認創建。Servlet 中調用 getServletContext()方法得到 ServletContext 的實例。
    注意:
    全局對象即Application范圍對象,初始化階段的變量指在web.xml中,經由<context-param>元素所設定的變量,它的范圍也是Application范圍,例如:

    <context-param>
    <param-name>Name</param-name>
    <param-value>browser</param-value>
    </context-param>
    當容器啟動時,會建立一個Application范圍的對象,若要在JSP網頁中取得此變量時:
    String name = (String)application.getInitParameter("Name");
    或者使用EL時:
    ${initPara.name}
    若是在Servlet中,取得Name的值方法:
    String name = (String)ServletContext.getInitParameter("Name");


    1.ServletContextListener:
    用于監聽WEB 應用啟動和銷毀的事件,監聽器類需要實現javax.servlet.ServletContextListener 接口。
    ServletContextListener 是 ServletContext 的監聽者,如果 ServletContext 發生變化,如服務器啟動時 ServletContext 被創建,服務器關閉時 ServletContext 將要被銷毀。

    ServletContextListener接口的方法:
    void contextInitialized(ServletContextEvent sce)
    通知正在接受的對象,應用程序已經被加載及初始化。
    void contextDestroyed(ServletContextEvent sce)
    通知正在接受的對象,應用程序已經被載出。

    ServletContextEvent中的方法:
    ServletContext getServletContext()
    取得ServletContext對象


    2.ServletContextAttributeListener:用于監聽WEB應用屬性改變的事件,包括:增加屬性、刪除屬性、修改屬性,監聽器類需要實現javax.servlet.ServletContextAttributeListener接口。

    ServletContextAttributeListener接口方法:
    void attributeAdded(ServletContextAttributeEvent scab)
    若有對象加入Application的范圍,通知正在收聽的對象
    void attributeRemoved(ServletContextAttributeEvent scab)
    若有對象從Application的范圍移除,通知正在收聽的對象
    void attributeReplaced(ServletContextAttributeEvent scab)
    若在Application的范圍中,有對象取代另一個對象時,通知正在收聽的對象


    ServletContextAttributeEvent中的方法:
    java.lang.String getName()
    回傳屬性的名稱
    java.lang.Object getValue()
    回傳屬性的值

    二、HttpSession相關監聽接口
    1.HttpSessionBindingListener接口
    注意:HttpSessionBindingListener接口是唯一不需要再web.xml中設定的Listener

    當我們的類實現了HttpSessionBindingListener接口后,只要對象加入Session范圍 (即調用HttpSession對象的setAttribute方法的時候)或從Session范圍中移出(即調用HttpSession對象的 removeAttribute方法的時候或Session Time out的時候)時,容器分別會自動調用下列兩個方法:
    void valueBound(HttpSessionBindingEvent event)
    void valueUnbound(HttpSessionBindingEvent event)

    思考:如何實現記錄網站的客戶登錄日志, 統計在線人數?

    2.HttpSessionAttributeListener接口
    HttpSessionAttributeListener監聽HttpSession中的屬性的操作。
    當 在Session增加一個屬性時,激發attributeAdded(HttpSessionBindingEvent se) 方法;當在Session刪除一個屬性時,激發attributeRemoved(HttpSessionBindingEvent se)方法;當在Session屬性被重新設置時,激發attributeReplaced(HttpSessionBindingEvent se) 方法。這和ServletContextAttributeListener比較類似。

    3.HttpSessionListener接口
    HttpSessionListener監聽 HttpSession的操作。當創建一個Session時,激發session Created(HttpSessionEvent se)方法;當銷毀一個Session時,激發sessionDestroyed (HttpSessionEvent se)方法。

    4.HttpSessionActivationListener接口
    主要用于同一個Session轉移至不同的JVM的情形。

    請注意HttpSessionAttributeListener與HttpSessionBindingListener的區別:
    1.前者是需要在web.xml中進行描述的,后者不需要。
    2.前者是在任何session的屬生變化時都會觸發執行其方法中的代碼,而后者只是在實現它的對象被綁定到會話屬性或被從會話屬生中解除綁定時,才會觸發執行那個對象的valueBound和valueUnboundy這兩個方法的代碼。比如說有兩個對象A和B都實現了HttpSessionBindingListener接口,當A被綁定到會話屬性中時,只是A的valueBound()方法被觸發執行。


    三、ServletRequest監聽接口
    1.ServletRequestListener接口
    和ServletContextListener接口類似的,這里由ServletContext改為ServletRequest
    2.ServletRequestAttributeListener接口
    和ServletContextListener接口類似的,這里由ServletContext改為ServletRequest

      下面說明如何在web.xml中布署事件監聽器以實現對事件的處理,格式如下:
    <listener>
      <listener-class> 
        fey.servlet.listener.CustomServletContextListener 
      </listener-class >  
    </listener>
      其中fey.servlet.listener.CustomServletContextListener是實現上述各事件監聽器接口的類名。當然,你需要將這些類放入Web容器的Web應用的classes或lib目錄下以讓Web容器可以找到。
      另外說明一點,一個類可以一個或多個監聽器接口。

    有的listener可用于統計網站在線人數及訪問量。 如下:

    服務器啟動時(實現ServletContextListener監聽器contextInitialized方法),讀取數據庫,并將其用一個計數變量保存在application范圍內

    session創建時(實現HttpSessionListener監聽器sessionCreated方法),讀取計數變量加1并重新保存

    服務器關閉時(實現ServletContextListener監聽器contextDestroyed方法),更新數據庫

    簡例一

    監聽用戶上線與退出,顯示在線用戶

    1、登陸頁面 Login.jsp

    <%@page pageEncoding="gb2312" contentType="text/html; charset=gb2312" %>
    <%
    session=request.getSession(false);
    if(session!=null)session.invalidate();
    %>
    <html>
    <head><title></title></head>
    <body>
    <form action="isOnline.jsp" method="post">
    用戶名:<input type="text" name="uName"/>
    <input type="submit" value="上線">
    </form>
    </body>
    </html>

    2、控制頁面(只是為了說明監聽器問題,所以簡單了點...) isOnline.jsp

    <%@page pageEncoding="gb2312" contentType="text/html; charset=gb2312" %>
    <html>
    <head><title></title></head>
    <body>
    <%
    session=request.getSession();
    session.setAttribute("userName",request.getParameter("uName"));
    response.sendRedirect("showOnline.jsp");
    %>
    </body>
    </html>


    3、顯示頁面 showOnline.jsp

    <%@page pageEncoding="gb2312" contentType="text/html; charset=gb2312" import="java.util.ArrayList" %>
    <html>
    <head><title></title></head>
    <body>
    <%
    ArrayList showList=(ArrayList)(getServletContext().getAttribute("list"));
    out.print("在線人數 "+showList.size()+"<br>");
    for(int i=0;i<showList.size();i++){
    out.print(showList.get(i)+"在線"+"<br>");
    }
    %>
    <br>
    <a href="Login.jsp">退出</a>
    </body>
    </html>

    4、配置頁面 web.xml

    <?xml version="1.0" encoding="gb2312"?>
    <!DOCTYPE web-app
        PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "
    http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
    <listener>
        <listener-class>org.xiosu.listener.onlineListener</listener-class>
    </listener>
    </web-app>

    5、監聽器 onlineListener.java

    package org.xiosu.listener;

    import java.util.ArrayList;
    import javax.servlet.ServletContext;
    import javax.servlet.http.HttpSessionAttributeListener;
    import javax.servlet.http.HttpSessionBindingEvent;
    import javax.servlet.http.HttpSessionEvent;
    import javax.servlet.http.HttpSessionListener;

    public class onlineListener implements HttpSessionListener,
    HttpSessionAttributeListener {
    // 參數
    ServletContext sc;
    ArrayList list = new ArrayList();
    // 新建一個session時觸發此操作
    public void sessionCreated(HttpSessionEvent se) {
    sc=se.getSession().getServletContext();
    System.out.println("新建一個session");
    }
    // 銷毀一個session時觸發此操作
    public void sessionDestroyed(HttpSessionEvent se) {
    System.out.println("銷毀一個session");
    if (!list.isEmpty()) {
       list.remove((String) se.getSession().getAttribute("userName"));
       sc.setAttribute("list", list);
    }
    }
    // 在session中添加對象時觸發此操作,在list中添加一個對象
    public void attributeAdded(HttpSessionBindingEvent sbe) {
    list.add((String) sbe.getValue());
    sc.setAttribute("list", list);
    }
    // 修改、刪除session中添加對象時觸發此操作
    public void attributeRemoved(HttpSessionBindingEvent arg0) {
    }
    public void attributeReplaced(HttpSessionBindingEvent arg0) {
    }
    }

    在Web開發中關于監聽器的應用
    首先,也要在web.xml配置文件中進行聲明:
            在web.xml文件中的聲明如下:(聲明片斷)    要放在filter過濾器聲明和filter-mapping聲明后面
       
       <listener>
            <listener-class>markchen.web.listener.MySessionListener</listener-class>
        </listener>
        <listener>
             <listener-class>markchen.web.listener.MyServletContextListener</listener-class>
        </listener>


    //這兩個java類的內容都和簡單,僅僅是為了演示說明而已

    //MySessionListener.java文件的內容如下
         //Web應用程序中會話的生命周期監聽器實現   
    package markchen.web.listener;

    import javax.servlet.http.HttpSession;
    import javax.servlet.http.HttpSessionEvent;
    import javax.servlet.http.HttpSessionListener;

    public class MySessionListener implements HttpSessionListener {
       
        //在會話一創建時該方法被調用,可以在此處編寫自己需要做特殊處理的程序代碼
         public void sessionCreated(HttpSessionEvent event) {
                   
                      HttpSession session = event.getSession();       
                      String sessionId=session.getId();
                      System.out.println("Session::::::"+sessionId+"******Created******");
            }
           
         //在會話即將銷毀時該方法被調用,可以在此處編寫自己需要做特殊處理的程序代碼
         public void sessionDestroyed(HttpSessionEvent event) {
                   
                     HttpSession session = event.getSession();       
                     String sessionId=session.getId();
                     System.out.println("Session::::::"+sessionId+"******Destroyed******");
           
                    }       
    }
        
          注意:在sessionDestroyed()方法中一定不要再調用session.invalidate()方法了
                因為每調用一次session.invalidate()方法都會觸發sessionDestroyed()方法的調用
                 進而形成死循環,最終使Web應用程序意外終止

          //MyServletContextListener.java
                //Web應用程序的生命周期監聽器實現
    package markchen.web.listener;

    import javax.servlet.ServletContextEvent;
    import javax.servlet.ServletContextListener;

    public class MyServletContextListener implements ServletContextListener {
           
             //在Web應用程序初始化后該方法被調用
             public void contextInitialized(ServletContextEvent event) {
                  
                  System.out.println("******Application started******");               
             }
           
             //在Web應用程序銷毀時該方法被調用
           public void contextDestroyed(ServletContextEvent event) {

                     System.out.println("******Application ended******");               
            }
    }

    posted @ 2009-04-08 10:07 筱 筱 閱讀(1565) | 評論 (0)編輯 收藏

    一,查看linux的ssh服務是否已經啟動:service sshd status;
        如果沒有啟動則執行:service sshd start 或者 service sshd restart
    二,使linux防火墻開啟22端口,因為ssh是通過22端口提供服務的
        1.在/etc/sysconfig/iptables里添加

    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT


        2.重啟iptables

    [root@localhost ~]# /etc/init.d/iptables restart


        3.看下狀態

    [root@localhost ~]# /etc/init.d/iptables status

    三,使用SSH Secure shell連接,選接連接方式為:password。

    四,OK

    posted @ 2009-03-28 21:56 筱 筱 閱讀(574) | 評論 (0)編輯 收藏

    redhat9下安裝VMware Tools

    下面是安裝步驟:
    1.啟動Rad Hat 9.0(圖形界面方式登陸),并且以管理員的身份登陸。
    2.在VMware虛擬機的菜單中點擊:虛擬機->安裝VMware 工具->install。
    3.Red Hat 9.0自動掛載VMware Tools的虛擬光驅,并顯示在桌面。
    4.進去VMware Tools的虛擬光驅里,把VMwareTools-5.5.1-19175.tar.gz復制到/tmp目錄。
    5.進去/tmp目錄,把VMwareTools-5.5.1-19175.tar.gz解壓到當前目錄下。
    6.打開一個終端(shell),并以root身份登陸。
    7.輸入以下命令:cd /tmp/vmware-tools-distrib(進入vmware-tools-distrib目錄)。
    8.輸入:./vmware-install.pl(執行vmware-install.pl文件)。
    9.然后一路“回車”,就OK。
    10. 輸入reboot命令(重新啟動)。
    OK?。?!

    posted @ 2009-03-26 17:03 筱 筱 閱讀(125) | 評論 (0)編輯 收藏

      Web2.0時代,大家都一再強調互動! 互動! 互動! 企業級網站需要與客戶溝通互動,所以我們之前介紹了10款免費的網站在線客服系統,個人站長們也越來越追求互動,博客從一開始就為互動而生,好像不互動就不像個博客似兒的.雖然本博早已厭倦互動,但還是為大家介紹10多款基于Web的網頁即時聊天程序.使用網頁即時聊天程序的好處就是,讓訪客能即時的和站長或博客主溝通交流,形成良好的氛圍,甚至成為朋友.尤其對博客來說,能很好的增加穩定的讀者群.

    注:下面的其中幾個程序并非標準的Web即時聊天程序,只能算留言本而已.但其實他能當聊天程序用,只是少了”即時”…

    Plugoo

    plugoo不需要額外的帳號,只需要你經常使用的IM帳號即可(目前plugoo支持的IM 有: MSN Messenger/ Yahoo! Messenger/ GoogleTalk/ Jabber ),注冊成功以后系統會自動添加 plugoo@plugoo.com為你IM的好友,同時生成一段代碼,掛在自己的網站上便可以直接于你網站的訪客進行Web網頁即時聊天。via

    Hab.la

    一款十分高效且簡潔的網頁即時聊天程序序,一段簡單的Javascript代碼可以幫助你完善個人站點的客服系統。Hab.la 目前仍然是一款測試中的產品,他們提供了一整套高效的網頁客服解決方案。缺少了MSN、AIM、Y! Messenger等多款IM通信協議的支持外,Hab.la 幾乎同Plugoo實現的功能如出一轍——只需要在自己的站點中添加上一小段輕量級的Javascript代碼,便可以很輕松的幫助站長和管理員來連接自己用戶和讀者,并建立相對比較完善的客服系統。目前,Hab.la 已經能夠全面支持Jabber與Google Talk!via

    Chatback Badge

    Chatback Badge是Google Talk團隊發布的一款很有意思的網頁即時聊天小工具,它可以在頁面上實時顯示你的GT在線狀態以及個性化簽名等信息;不僅如 此,Chatback 還是一款可以即時引導用戶進入Google Talk 網頁版 Badge進行實時交流狀態的擴展,這樣,你的訪客便可以借助網頁版GT和你的客戶端GTalk進行即時聊天了,簡單而快捷,你的讀者甚至不需要獨立的 GTalk帳戶也能夠輕松和你交流。via

    TocPlus

    TocPlus是讓您直接與網上商城、博客、網頁的訪客進行實時對話的通訊系統。如果將TocPlus的服務適用于網上商城,就如地面商城可以向顧客直接推薦合適的商品或即時回答顧客所提出的咨詢,因此可提高營業效益。TocPlus的所有服務為免費。

    vawkr

    一個即時的視頻聊天服務,通常我們需要使用同一種IM即時聊天工具,才能實現和別人視頻聊天,但是通過vawkr,只要雙方都有攝像頭,那么無需下載任何 IM工具,雙方都可進行視頻聊天,你可以創建一個永久的聊天室,然后得到一個url地址,將這個地址發給你要邀請的人,當他點擊進入后,如果允許 vawkr使用其攝像頭和麥克風,那么你們就可以進行視頻聊天了,vawkr還支持將聊天室放在MySpace 、Facebook、 blog 或者web上。via

    -以下5個來自web20share

    Gabbly

    可 以在瀏覽器,網頁中嵌入聊天系統,可以自定義用戶名,顯示在線訪問人數,訪客登陸/離開網站提示(可以選擇關閉),訪客登陸提示音(可以選擇關閉),所有 聊天記錄都可以被RSS訂閱保存。Gabbly還有一個功能,任何一個網頁,即便沒有裝Gabbly 在線聊天器,你只要在網址前加上’gabbly.com/’,如gabbly.com/hopesome.com,就可以和同在這個頁面的人即時聊天。

    Blobber

    功能和Gabbly類似,需要注冊。

    Woocall

    新浪推出的服務,和新浪網頁上的差不多。需要郵件申請,感覺用戶的可定制性不是很強.

    MeeboMe
    作 為一個可以嵌入website/blog的flash widget,本身并不突出,但是當它和Meebo結合起來之后,任何人都會覺得眼前一亮!換句簡單點的話說,登錄Meebo之后,你不僅可以同時和 MSN、Y!M、Jabber/Gtalk以及AIM中的聯系人進行交流,而且還能實時地和你的website/blog上的讀者進行交流,而這一切都在 你的瀏覽器頁面中完成.

    Cbox-blog
    Cbox-更像是一個可以嵌入到blog中的留言本服務,使用非常簡單方便,通過調用一段代碼就可插入到blog中。并且還可以自定義大小和顏色樣式等,以便符合自已的blog風絡。

    Twitterchat

    通過twitter也可以做個簡單的聊天室. 你必須有個twitter帳號,然后在 twitterchat.com注冊一個帳號,需要用twitter的用戶名及密碼,郵箱填自己的隨便一個.注冊后會得到一段代碼,可以自己修改聊天窗口寬和高。然后掛在自己上的blog 即可。via

    chirrup

    Chirrup是一個基于twitter的簡單的評論/留言系統,可以很方便地加入到自己blog/wiki/Web中。如果你的blog或者其他web沒有評論或者留言本系統,除了以前介紹的js-kit外,chirrup也是一個不錯的選擇,在twitter“大行其道”的網絡時代,所謂“鳥隨鸞鳳飛騰遠,人伴賢良品質高”,安裝一個基于twitter的留言或評論系統,對提高blog的流量、人氣等等也是很有幫助的。使用方法

    Aimboo

    是一個類似于Plugoo的 即時通訊服務,可通過代碼調用放置一個聊天窗口在你的Blog上,并與你的本地IM軟件連接,這樣當你的讀者訪問你的Blog時,就可以與你及時聯絡了, 目前 Aimboo支持Jabber、Gtalk、MSN、AIM及ICQ等常用的IM協議。

    posted @ 2009-03-24 11:33 筱 筱 閱讀(2871) | 評論 (0)編輯 收藏

    FTPClient client = new FTPClient();
      client.connect("ip地址", 21);
      client.login("用戶名", "密碼");
      client.setSoTimeout(5000);//設置連接超時時間為5000毫秒
      // 在嘗試連接以后,你應該檢查返回碼驗證是否連接成功!
      int reply = client.getReplyCode();
      if (!FTPReply.isPositiveCompletion(reply)) {
       client.disconnect();
       System.err.println("FTP 服務器拒絕連接.");
       System.exit(1);
      }
      System.out.println("連接正在建立中......");
      if (client.isConnected()) {
       System.out.println("連接已建立!");
       client.setControlEncoding("gb2312");// 設置編碼方式,默認編碼方式為:ISO8859-1
       client.changeWorkingDirectory("archives");// 改變當前ftp的工作目錄
       // client.changeToParentDirectory();//回到上級目錄
       FTPFile[] fs = client.listFiles(); // 得到當前工作目錄下的所有文件
       for (FTPFile ff : fs) {
        if (ff.getName().equals("test.txt")) {
         File file = new File("E:\\ftpdata" + File.separator
           + "test.txt");
         RandomAccessFile rfile = new RandomAccessFile(file, "rw");// 隨機訪問文件類
         long offset = rfile.length();
         client.setRestartOffset(offset);
         rfile.seek(offset);
         InputStream input = client
           .retrieveFileStream("test.txt");
         byte[] data = new byte[1024];
         System.out.println(new Date() + " 數據寫入中...");
         while (input.read(data) != -1) {
          rfile.write(data);
         }
         System.out.println(new Date() + " 所有數據已接受完成!");
         input.close();
         rfile.close();
        }
       }
      }
      client.logout();
      client.disconnect();
    posted @ 2009-03-20 11:20 筱 筱 閱讀(1914) | 評論 (0)編輯 收藏

    基本步驟:
        1,創建連接
        2,登錄
        3,上傳或下載文件
        4,退出
        5,斷開連接
    常用方法:
        void setControlEncoding(String encoding):設置FTP控制連接的編碼方式(默認讀取中文文件名時為亂碼)
        boolean changeWorkingDirectory(String pathname):設置當前的工作目錄
        boolean changeToParentDirectory():返回上級目錄
        void setRestartOffset(long offset):設置重新啟動的偏移量(用于斷點續傳)
    下載文件:
        boolean retrieveFile(String,remote,OutputStream local):從服務器返回指定名稱的文件并且寫入到OuputStream,以便寫入到文件或其它地方。
        InputStream retrieveFileStream(String remote):從服務器返回指定名稱的文件的InputStream以便讀取。
    上傳文件:
        boolean storeFile(String remote,InputStream local):利用給定的名字(remote)和輸入流(InputStream)向服務器上傳一個文件。
        OutputStream storeFileStream(String remote):根據給定的名字返回一個能夠向服務器上傳文件的OutputStream。
        boolean storeUniqueFile(InputStream local):根據服務器自己指定的唯一的名字和輸入流InputStream向服務器上傳一個文件。
        boolean storeUniqueFile(String remote,InputStream local):根據指定的名字和輸入流InputStream向服務器上傳一個文件。
        OuputStream storeUniqueFileStream():返回一個輸出流OutputStream,以便向服務器寫入一個文件,該文件由服務器自己命名。
        OutputStream storeUniqueFileStream(String remote):返回一個輸出流OutputStream,以便向服務器寫入一個文件,該文件由用戶自己指定。

    posted @ 2009-03-20 10:57 筱 筱 閱讀(496) | 評論 (0)編輯 收藏

        OutputStream os=new FileOutputStream("");
      OutputStreamWriter osr=new OutputStreamWriter(os);
      BufferedWriter bw=new BufferedWriter(osr);
        
        InputStream is = new FileInputStream("");
      InputStreamReader isr=new InputStreamReader(is);
      BufferedReader br=new BufferedReader(isr);

        
    posted @ 2009-03-19 09:47 筱 筱 閱讀(566) | 評論 (0)編輯 收藏

    oracle占領http8080端口的問題最近得以解決
    最簡單的一種:
    登錄oracle enterprise manager console 選擇獨立登錄,選擇xml數據庫,配置,直接修改http-port就ok了!
    posted @ 2009-03-13 14:59 筱 筱 閱讀(294) | 評論 (0)編輯 收藏

    僅列出標題
    共9頁: 上一頁 1 2 3 4 5 6 7 8 9 下一頁 
    主站蜘蛛池模板: 亚洲综合精品网站| 亚洲第一成人影院| 亚洲欧洲日本精品| 69免费视频大片| 亚洲网站视频在线观看| 99re免费在线视频| 亚洲国产精品一区| 久久午夜夜伦鲁鲁片免费无码影视| 亚洲综合在线视频| 香蕉97超级碰碰碰免费公| 亚洲人成片在线观看| 午夜毛片不卡高清免费| 国产精品亚洲专区一区| 亚洲一级片免费看| 中文字幕一区二区免费| 久久av无码专区亚洲av桃花岛| 欧洲乱码伦视频免费| 国产精品日本亚洲777| 亚洲日韩中文在线精品第一 | 国产高清视频在线免费观看| 亚洲av色香蕉一区二区三区| 亚洲一区二区三区免费| 国产麻豆成人传媒免费观看| 亚洲第一区视频在线观看| 毛片免费在线观看网站| 特级毛片A级毛片100免费播放| 国产亚洲成av片在线观看| 在线免费中文字幕| 亚洲精品无码人妻无码| 亚洲色婷婷综合久久| 91嫩草免费国产永久入口| 精品亚洲国产成人av| 亚洲国产精品特色大片观看完整版| h视频在线观看免费网站| 偷自拍亚洲视频在线观看99| 亚洲AV无码第一区二区三区| 毛片网站免费在线观看| 亚洲五月午夜免费在线视频| 亚洲欧洲精品久久| 亚洲男人的天堂在线va拉文| 一色屋成人免费精品网站|