设为首页 收藏本站
查看: 922|回复: 0

Jakarta Commons

[复制链接]

尚未签到

发表于 2015-5-28 13:03:18 | 显示全部楼层 |阅读模式
  reference:http://www.informit.com/guides/content.asp?g=java&seqNum=40
  尽管jakarta apache组织发布了大量的开放源码的项目,但是最受欢迎、应用最广泛的恐怕要数Tomcat Servlet engine了。如果你曾经实施过类似FTP,Telnet,SMTP,pop3和NNTP这些互联网协议的话,你就会知道检查这些协议具体实施中的错误是何等的困难。不过现在你不用担心这个问题了,apache组织推出的Commons/Nets库使我们从这些协议的具体实施中脱离出来,我们再也不需要绞尽脑汁为实现某个协议而彻夜不眠了。Commons/Nets库包括下面几种协议:
  Finger
  Whois
  TFTP
  Telnet
  Pop3
  FTP
  NNTP
  SMTP
  还有其它一些像Time和Echo这样的协议。
  Commons/Net库的目标就是为程序员提供一个通用、跨平台并易于使用的互联网协议族。如果您非常熟悉这些协议,那么您的知识将非常有助于您对Commons/Net库中一系列API的理解,如果您不是很了解这些协议的话,没关系,这些API将有助于您对协议的了解。
  下面分别介绍如何使用Commons/Net库中的API来实现我们所要的功能。首先介绍FTP(File Transfer Protocol)协议
  File Transfer Protocol
  分布式系统中,从一台机器向另一台机器传输文件是一项非常常见的任务。我们经常使用FTP工具连接到一台远程服务器上,找到所要的文件并下载到本地机器上。一个FTP会话过程如下所示
  C:\> ftp 192.168.1.99
  Connected to 192.168.1.99.
  220 WGB01 FTP server (Version wu-2.6.2-5) ready.
  User (192.168.1.99:(none)): myusername
  331 Password required for myusername.
  Password:
  230 User myusername logged in.
  ftp> cd /apps/mydir
  ftp> ls
  200 PORT command successful.
  150 Opening ASCII mode data connection for directory listing.
  total 6160
  -rw-r--r--  1 501   100    3147032 Mar 31 13:37 myfile.pdf
  226 Transfer complete.
  ftp: 101 bytes received in 0.58Seconds 0.17Kbytes/sec.
  ftp> lcd c:\download
  ftp> bin
  ftp> get myfile.pdf
  
  大致经历了下面几个步骤:
  1.  连接服务器
  2.  输入用户名、密码登录
  3.  改变访问文件夹"/apps/mydir" (cd)
  4.  获得文件列表
  5.  改变本地文件夹路径
  6.  设定传输模式为binary
  7.  下载myfile.pdf文件
  上面的每一个步骤都需要FTP 客户端和FTP服务器端的相互交互,每个步骤都需要进行错误检查。
  
  下面是一段使用Commons/Net库,利用FTP协议从服务器下载文件的代码
  
  
  import org.apache.commons.net.ftp.*;
  public static void getDataFiles( String server,String username,String password,
  String folder,String destinationFolder,Calendar start,Calendar end )
  {
    try
      {
        // Connect and logon to FTP Server
        FTPClient ftp = new FTPClient();//FTPClient对象拥有客户端的各种方法
        ftp.connect( server );
        ftp.login( username, password );
        System.out.println("Connected to " + server + ".");
        System.out.print(ftp.getReplyString());
  
        // List the files in the directory
        ftp.changeWorkingDirectory( folder );
        FTPFile[] files = ftp.listFiles();
        System.out.println( "Number of files in dir: " + files.length );
        DateFormat df = DateFormat.getDateInstance( DateFormat.SHORT );
        for( int i=0; i= 0 &&
            fileDate.compareTo( end.getTime() )

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-71527-1-1.html 上篇帖子: Linux之匿名FTP服务器搭建 下篇帖子: 使用Second Copy同步ftp服务器的差异文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表