
系统分为三个主要模块,上传、分类检索和关键字搜索。

文件的上传采用HTTP的方式上传到服务器上的临时目录,上传之前通过用户填写的书名、版号和电子书格式判断该文件的唯一性,否则不予上传。此外用户还要填写书的其它一系列相关信息(未来这些信息可能通过豆瓣的API接口自动获得),指定电子书的类别,添加一系列tag。电子书信息被存储在数据库中。服务器端的任务程序每隔30分钟链接FTP服务器,将临时文件移动到工作目录,再将文件上传到FTP服务器。工作目录在每一次任务程序启动时被清空。
文件分类检索是列出所有的分类目录或Tag列表,用户根据这些目录一级一级地查找到自己想找的门类的书。分类支持两级分类,即一级目录下可以有多个子目录。电子书条目中列出电子书的相关信息及FTP文件地址,此FTP可以关闭list权限。今后可以开发基于WebService的文件下载Java Swing客户端,彻底封装FTP的文件下载过程。
文件搜索通过对Lucene生成的索引进行查询,获得相应的结果。Lucene的索引程序在每天的某个时间对数据库中的所有条目做索引。
系统采用Java开发,使用Spring+Struts2+JPA(Hibernate)架构。目前底层已经全部完成,正在进行Web层的工作,Web模版这次决定采用纯JSP+JSTL。

