Skip to content

LucasDang/FTPUpAndDown

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FTP项目优化基本完成

前面我做了一个c/s的项目不知道大家看没看,我把它优化了一下转成b/s的项目,基本实现了增删改查等较为常见的功能。并且用json返回了几个接口,给前端和移动端用。

此项目融合了servlet、mybatis、ftp、线程、接口json数据返回、相关知识。有需要的可以来看一看 ####基本架构

用servlet做控制器来获取请求,mybatis来进行数据的增删改查,用一个异常
对象(不是继承异常,是一个对象代表异常)来以json的格式返回处理结果。

详细步骤就不说了,主要几个注意点

1. 自定义一个对象,定义几个属性和构造方法,当有异常的时候对属性进行复制并返回对象至控制层,然后json返回。

自定义异常对象

2. 线程的start和run方法

  • start :在主线程中启用分线程对象的start方法的话,会立即调用分线程的run方法,并且主线程会继续往下走。 但是一个线程已经start了之后就不能再次start。

  • run : 在主线程中启动分线程对象的run方法就会立即调用分线程的run方法,并且主线程不会继续往下走。

    由于我项目本来是启动两个线程,并且不管开关控制线程的时候对象都没有释放。但是由于start之后不能run,因为run的话主线程就无法返回接口数据了。所以现在每次关闭,都是将线程置为null,释放。每次开启都是一个新的线程对象。

    /**
       * 停止任务
       */
      public void cancelTask(String task){
          setClose(true);
          if (task.equals("upload")) {
              uploadThread = null;
          }else {
              downloadThread = null;
          }
      }
    

3. 做接口真的需要判断很多种情况,并且每种情况都需要一个合理的数据返回。这样用户才会有一个好的体验。所以前期的架构设计很重要!不然就会产生很多重复的代码,并且后面只能越来越臃肿。

细的就不多说了。感兴趣的可以下载看一看。

###联系方式

About

ftp的上传和下载操作

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published