实例介绍
开发案例-Web文件管理系统开发案例-Web文件管理系统开发案例-Web文件管理系统开发案例-Web文件管理系统开发案例-Web文件管理系统开发案例-Web文件管理系统
Preferences I type fiter text Installed Server Runtime Environments D.General Add, remove or edit installed server runtime definitions D. Ant stalled server runtimes D- Data Easy Explore Apace Tomcat v5.5 Tomcat v5.5 DeMLa D- Install Update Remove Internet D.Java D-Pug-in Development DRun/ Debug Serve Installed Runtimes Launching D. Team Validation D- Web and XML D Web services D: /Java/Tomcat 5.5 O Cancel 图5-4 Eclipse中已经配置好的服务器运行时环境 如果我们在 Java Web程序开发中还需要其他服务器,也可以按照这个方法进行配置。 52系统功能与需求分析 52.1系统概述 不论什么类型和用途的 Java Web应用程序,在功能上都有一些共同的部分,最基本的 功能如1)用户填写表单,向服务器提交数据,最常见的是新用户注册,2)向服务器上传 文件和从服务器下载文件,最常见的是在Web上发电子邮件时,添加附件, 本章所讲解的例子“Web文件管理系统”就是向读者展现这两个主要功能的实现。 良好的Web应用程序除了只备满足用户需求的功能外,还应该只备一个良好的结构。本案例 在综合前面学习的 Servlet和JSP的基本知识上,使用Mv模式构建程序的框架,由 Servlet 负责控制用户的请求,JSP负责用户界面的显示,模型部分有服务类和 JavaBeans组成。 用户提交的数据一般需要保存到数据厍中,本案例还使用到JDBC,在构建访问数据库 的代码时,使用DAO模式 5.2.2需求分析 本案例是构建个Wb文件管理系统,就是注册用户个人信息,然后可以上传和下载 文件。任何合法的注册用户都可以上传和下载文件,但是只能删除自己上传的文件,不能删 除其他用户上传的文件。系统需求总结如下 1)注册新用户,删除用户。 2)显示所有用户的列表 3)用户登求 4)已登求用户上传文件 5)显示所有文件的列表 6)下载文件 7)用户删除自己的文件 52.3系统功能预览 1)新用户注册,输入用户名,姓名,电子邮件和口令就可以了,如图5-5所示。 注册新用户傲游[ Maxthon 文伴编辑旧查看⑩收藏(A快捷组选项◎工具①窗口帮助 ·⊙··园·的自旧号·“a 地址·]ht/ localhost: 8080/ File Manager/reguser:sp ·國国区·回回·区 丰1ln「注册新用尸 当前用户:登录注册用户我的文件全部文件全部用户 注册新用户 用户名(最长50英文字符) 姓名(最长5个中文字符) 电子邮件(最长50个英文字 符 口令(最长50字符) 确认口令 提交取消 09。脊② 192168010151宇节 图5-5注册新用户 2)用户登录,如图56所示 @登录-傲游[ Maxthon] 文件编辑妲登看⑩收藏(A快捷组⑥选项◎工具①窗囗帮助 地址]htt:/hot: 080 FieManager login jsp N·國·回·区 Download 登录 当前用户:登录注册用户我的文件全部文件全部用户 登录 用户名 口令 提交重置 回09 19216.0.,1010字节 图5-6用户登录 3)上传文件,如图5-7 上载文件做游[ Maxthon 文件编辑)查看⑩收藏(A快捷組选项(工具①奁口帮助 口·⊙·e国·图·月☆的自旧"a 地址]ht:/ localhost: 8080/FileManager/uploadfile jsp Download 上载文件 当前用户 user1注铠注册用户我的文件全部文件全部用户 上传文件 文件标题 我的测试文件 文件 E:My Document教学工浏苑 提交重置 回09回色脊 192.168.0.10149字节 图5-7上传文件 4)浏览自己上传的文件,如图5-8,在这里还可以删除和下载文件 我的文件做游[ Maxthon 文件)编辑国查看⑩收藏A快捷組选项◎)工具①窗口帮助 口.⊙·困·图,⑥心自是" 地址]ht/ cohost: 8080 FileManager /uploadfile Download 我的文件 当前用户 user1注销注册用户我的文件全部文件全部用户 文件上传成功 上传文件 号八件标题文件名 日期操作 我的測试操作系统教学大纲计算2006-12-除下 文件 机doc 29 载 9回色柴 192160.1013字节 图5-8用户浏览已上传文件 5)浏览全部文件,如图5-9 我的文件傲游[ Maxthon 文件编辑回查看收藏快捷组选项回工具①窗口帮助 ⊙国·a,6P☆白e自回"1 地址]htt:/ almost:0 FileManager/showallfil N因·国因四·回区 丰Dld我的文件 当前用户 user1注铠注册用户我的文件全部文件全部用户 上传文件 序文件标 号题 文件名 所有期操作 者 我的测操作系统教学大纲计算 2006-删除 试文件机doc luser1 12-29下载 2adx阿水实验规范doc 123 2006-删除 12-28 载 A1,A山H 610x427 国090恐※卧 192168.0.101字 图59浏览全部文件 6)浏览所用用户,如图5-1 G所有用户-做游[ Maxthon 文件旧编辑旧查看收快捷组⑤选项@工具窗口D帮助 口···图·的自旧导" 地址(]http:/ocahost/FilemanaGer/showalluser M·四团园·回,区 所有用户 当前用户:d注销注册用户我的文件全部文件全部用户 注册 序号用户D姓名电子邮件 日期 操作 23我是数字112@cqu.edu.cn2006-12-28删除 我是字幕d@ cqu.edu.n2006-12-27删除 5el测试用户Juserl@cqu.edu.cn20612:29删除 回09阅色※园 19216.0.101字 图5-10浏览所有用户 53系统分析设计 需求确定之后需要对系统进行整体分析和设计,包括系统功能的描述和模块划分、数据 库设计、数据库访问设计、整体框架设计、目录与包结构设计和日忐记求。 5.3.1功能模块划分 模块分析是描述系统需求的个过程,需要将需求分析中的感性描述进行抽象,提取岀 需要实现的功能,是整个系统开发的一个关键过程。分析的根本日的是在开发的人和提出需 求的人之间建立一种理解和沟通的机制。在整个软件的构建中使用MVC模式,在模块划分 中同时指岀用仆么技术规范实现。根据前面提岀的系统需求,对其模块的划分与功能描述如 1)用户的管理 用户登录表单的显示,用JSP实现 用户登录和注销操作,用 Servlet实现 用户的删除,用 Servlet实现 查询所有的用户,用 Servlet实现 ●所有用户的显示,用JSP实现 2)文件的管理 文件上传表单的显示,用JSP实现 处玨用户上传的文件,用 Servlet实现 下载或者删除文件,用 Servlet实现 查询所有的文件,用 Servlet实现 显小所有的文件列表,用JSP实现 53.2数据库设计 数据库设计是这个系统设计中非常重要的一环,数据是一切系统设计的基础,如果设计 不合理、不亢善,将在系统开发过程中,设置后期的系统维护、功能变更和功能护充时引起 较多问题,严重时,设置要重新设计项目,重做已经完成的工作 从功能馍块的划分可知,本系统要涉及两类实体:用户和文件。 用户实体:需要记录用户的Ⅲ,姓名,电子邮件,凵令和创建时间 文件实体:需要记录文件的I,文件的名称,在服务器磁盘上存储的路径,文件 的上传时间,文件的所有者。为了更好的描述文件,还需记录文件的标题和类型 这两个实体之间有一种关系,就是每个上传文件的用户是这个文件的所有者。在设计数 据库表时要注意两个实体之间关系的确立。 在设计数据库表时,一般要遵循下面几条原则 数据库的一个表,最好只存储一个实体或者对象的相关信息,最好能够遵循数据厍 设计中的第三范式 ●数据表的信息结构一定要合适,字段的数量一般不要过多。 ●扩充信息和动态变化的信息一定要分别放在不同的表甲。 ●数据库表中最好有一个表示时间的字段。 表的名字最好能够反映实体的含义,名字前最好有一个前缀或者后缀,这样当冋时 使用表和视图时,容易区分 ●宇段的命名规则尽量一致,统一使用英文单词或者汉语拼音。 1.创建数据库和表 首先要创建一个数据库,在这里我们暂且使用 MS SQLServer200。在 SQLServer2000 的企业管理器中创建一个数据库,名称为“ filed"。然后再创建两张表: tblUscr和 tblfilc 在命名衣的名称时使用了前缀“tb",这样就可以在名称上和今后使用的视图区分开来。 表5-1tb1User用户表 序号字段 类型 义 UserID Varchar (50), not null 主键,用户唯一标识 UserName Varchar (10), not null 姓名 234 UserMail Varchar(50), not null 电子邮件 UserPassword Varchar (50), not null 凵令 UserType Int, default o 用户类型,0普通用户,1管理员 6 User Created Datetime default getdate) 创建时间 表5-2 tarfile文件表 序号字段 类型 义 FilelD Int自增 主键,文件唯一标识 FileName Varchar (255), not null 文件原始名称 Filepath Varchar (255), not null 文件的存放路径 FileType Varchar (10) 文件类型,保留 FileOwner Varchar (50) 外键,文件的所有者,用户表的 567 主键 FileSubject Varchar (100),not null 文件的标题 FileCreated Datetime default getdate 创建时问 在创建表的时候,注意两个表之间的关系,用户表的 UserID是文件表的外键。 在 SQL Server2000中创建表的脚本文件如下: 1) tblUser表 CREATE TABLE tblUscr UserID VARCHAR(50)NOT NULL UserName VARCHAR(1O) NOT NULL UserPassword VARCHAR(SO) NOT NULL UserMail VARCHAR(S0) NOT NULL. Uscr Typc INTEGER DEFAULT (O) User Created DATETIME DEFAULT(getdate(NOT NULL GO CREATE INDEX PK tblUser on tblUser (UserID ASC ALTER TaBLE tblUser ADD CONSTRAINT PK tblUser PRIMARY KEY (USerID) GO 2) BfiLe表 CREATE TABLE tblFile( FilelD bIgInt NOT null Flle Name VARCHAR(255)NOT NULL FilcPath VARCHAR(255)NOT NULL FileType VARCHar(1o), FileOwner VARCHAR(SO) NOT NULL, File Created DATETIME DEFAULT(getdate)NOT NULL FileSubject VARCHAR(100)NOT NULL Go CREATE INDEX PK tblFile on tblFile(FileID ASC GO CREATE UNIQUE INDEX IX tblFile on tblFile(FileOwner ASC) GO ALTER TaBLE tblFile Add constraint Pk tblFlle PRiMary Key(FilelD ALTER TABLE tblfilc ADd constraint fk tblfilc tblUscr FOREIGN KEY (FileOwner) REFERENCES tblUser (UserID) ON DELETE RESTRICT ON UPDATE RESTRICT 2对象关系映射 在数据库设计中,另外一个重要的问题就是对象关系映射,把数据库表中的记录映射为 简单的Java对象。般情况个实体映射为个Java类。本系统产生两个类:User和File 通过DAO模式实现简单Java对象和数据表中的数据交互。 在User和Fie类的基础上进一步抽象出一个超类 Unity,定义User和File类共同的组 成部分,也使」统一引用所有的实体类,如图5-11所示 C edu.cqu. common Entity get Tabled C edu. cqu filemanager domain. File D edu. cqufilemanager. domain User 口 file created Dete a userCreated: Date o filelD: string o userID. String o fileName: String a userMait: String a tileowner: String o userName: String a telePath String a userPassword String o tile Subject: String o userType: int a file T ype: String o equals o equals o getKeyo o getKeyo o getKey value ● getKey Value o get Tabled ● getTable0 o hashcodeo o hashcodeo o tostring( ● tostring( 图5-11实体类的设计 在 Entity类中定义了3个方法: getKeyo,返回实体主键的名称; getKey value(,返回实 体主键的值: getTable返回实体的表名称。这写方法都是所有的实体类需要的方法。 在具体的实体类File和User中定义各自的属性,并重写 Entity类和 Object类中的部分 方法 53.3数据库访问设计 为了更好的实现对数据库的相关操作,本系统采用了两个方法:1)创建了一个 DBPool 类,负责数据库的链接;2)在访问数据库的基木操作上使用DAO模式 1. DBPool数据厍连接池 本系统使用υ BOol类封装数据斥连接池进行数据库连接的统·管理,优化了程序结构, 提高了访问效率。 在读写数据库时,首先要连接数据库,如果每一次在需要操作数据库时都做许多重复的 工作,比如裝载驱动程序、创建连接等,既费时费力,也不使」程序修改和维护ε把数据库 连接操作封装在一个类里,在今后移植或者修改稈序时只需要修改几个参数,效率提高很多, 也提高了程序的稳定性。 【实例截图】
【核心代码】
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论