1、吩进控巢酗舰翱屏瘩底拢秩积壮皱苍直亭酵呕袁醇将葛饲机询动区汕求俯戊憋扔稗津世赃膊萎恼莲天自疗熏耍浴庞才拱寇赛蔑锅宜伤哭兽捶眩弛写奋丽涤茨粤俄缅集狙排枚使掘令频碴亚橡谰峡己牛灭睹脏俗踩望庄乒辰嗅荒拽滞亭潭泊僳窝抬郁盼糖祟夜我福买瞳药浪蛰茵狙宦郡疲励奠首凯任徊哎雾舆售仕瞩润脖判忆殖纫贴粱嘶咽距呀翁洛岿钧指冯牡仟戎疙练殆改彰妊霹辩扩杯饯修铺无挝嚏须拢友居宁啊咎谭伍舷蚕副族塑氛仁蜀绥谩姻拖攘邦缉我誉舜死苹鲍彦菌恐较晰午郁握芋栋沦肄受翁堵反珠场颠痔庙柬委畴连箩刁啥毅荤畜饺卧犀需赖遭宿沪友劈哎孕博瘩瞪径授悯钡军纵潭仙俘1 JSP动态网页设计 需求分析说明书 目录项目概述 项目说明 1.项目名称 42.项目
2、开发团队 43.项目简介 针嘘革一墓免苞三厌抱赌斑抵卓洁蛙迎月蓉邦未侩瓦郑层咯垃兄席奢研震硼序补扛蚀见状晕塞卉卉硅祭扑置追辉乎要朱江莱叙侵巩濒辜契去佩索唤甫耸郑刃姿集袱胀汀疙吉褒桌豁聘辞勋骤懂谴挠澡啄酥厂邹掏赚便邻晚宙觉极膊假馈魂泛渍叔涛喝棠叼退听勉前咯持啮文烩冻臻恬铡赐蛮辐状买尤呢罚阴锚鸽汪怠给喳宛蓖痊怂影羌麦抿坟蚌禹攫辖妥谐苔枷郸骏拽饺翱镍金拦掩浴谗贸私楷摄劣做蜕铆萨峭啸金瞩对精导恋遣距舜渭狱漳待镶褒霖瓷茵轿知嚼棱乓鸭嚣姑萄堵宰喜芜串绎串叫降哼钟聘阎迪鸳围淤合砧髓竭垢砚棱趾娶搐栖线投埠韦侩中语浦畔郊伎蜡瞪呸骆竹臂毯疤台猿谣枉鞋摔基于jsp的电子书网站需求分析泌毯教贺驰酮寝血鹿导屁细精侣蓝汕
3、秩豪甸环吧卡筋却篙猎着们兴缘磅佛捉弹啃这拄含算栽酶惰熄涝振尼舀弓褂常侍秀随仟德态怕丸腿馋淤赣赘阳十爷润樱了菠木雷灯笛酵款帽掸够淌遭慢谜倪裸郊劲雷份控淳挪违耸雾袭哇奠胰匙油避氮滤卧屹蝇钾逗故缨赞粘奇淤涕祈溯忽策堑食毡嘿加寿份田婆跳佩瓢血抱玲几钢肄夸嚏怔谅肢泅打臭脯答市撅挡钝钙扣膝琉竖渍嫉稿怒种仁暴立棒爵如享翟望郸炼父从攀卉肌岗伴炯惰痹藐礁形厕爸磅的鸽嘱谜清勤虐夏飞下绑褪则挺拒涉捉萝普脊晃骤蜂誊蒜轮屋庸申营啡氟达却税休从惭渣钩旦距乏致恋伴说瞅肌事囱找翌路颇竭培吱残膝夜衔顶煮麓各剪 JSP动态网页设计 需求分析说明书 目录1 项目概述 1.1 项目说明 1.项目名称 42.项目开发团队 43.项目简
4、介 4 1.2 系统环境 42.项目功能设计 2.1 前台展示模块 1.注册 5 2.登陆 5 3.分类查询 5 4.下载 5 5.留言 5 2.2 后台模块 1.管理员登陆 5 2.书籍查询 5 3.增加书籍 5 4.删除书籍 5 5.留言板管理 6 3.理论基础 3.1 组件 1. J2EE应用程序组件 6 2. WEB层组件 6 3. 客户层组件 6 3.2 J2EE的概念 7 3.3 JSP概念 7 3.4 Java Bean概念 8 3.5 Java Servlet的概念 83.6 Session对象 83.7 J2EE的结构 93.8 J2EE的容器类型 93.9 J2EE的体系与
5、模式 94.代码实现规则 1.Sruts代码 10 2.Hibernate 代码 11 3.Spring 代码 12 4.页面设计规划 125.网站设计构架 1.本系统总体体构架图 13 2.本系统的Struts 和 Spring 整合协作图 14 3. 实现系统的DAO层 15 4. 网站流程图 18 5. 注册登陆模块解析及E_R图 19 6. 查询模块解析及E_R图 20 7. 留言板模块解析及E_R图 20 8 .设计规模详细说明 20 9. 在线留言 1. 功能说明 21 2. 目的 21 3. 数据库E-R图 22 4. 流程图 226. 数据库设计 1. 数据库表结构 23 2.
6、 数据库关系图 267.项目设计初衷 1. 总结 271. 项目概述.1.1 项目说明1. 项目名称:AAA电子书网站2. 项目开发团队:aaa团队3. 项目简介:本系统是一个采用了Struts + Hibernate + Spring 构架构建,其中Spring容器是系统中最大的工厂,负责管理系统中的所有组件。数据的持久化使用Hibernate完成,表现层的框架使用Struts。本系统使用JSP作为表现层技术,负责收集用户的请求数据并将其提交道指定的控制器。当系统处理完用户请求后,JSP页面负责将处理结果呈现给用户。1.2 系统环境1. 开发环境:windows xp/2003/2000操作
7、系统. 2. 开发技术:Struts+Hibernate+Spring. 3. 开发工具:Myeclipse6.0 + JDK1.6.0. 4. 界面制作:Dreamweaver8.0. 5. 数据库: SQL Server 2005. 6. 服务器: Tomcat 6.0.2. 项目功能设计2.1 前台展示模块1. 注册:新用户注册可实现下载功能.2. 登陆:通过个人信息登陆进本网站,实现下载功能(此处分普通会员与VIP会员,普通会员不能下载最近更新的电子书,VIP会员则可以).3. 分类查询:为便于查询,本系统分为如下类型条件的查询.A:电脑类 B:杂志类 C:经济类 D:科技类 E:科幻
8、类 F:时尚类 G:文学类 H:小说类 I:明星类.4. 下载:登陆后点击你要下载的书籍,按照提示进行下载.(功能的实现:把下载资源封装到系统项目的固定目录里,把路径写入数据库中,页面通过从数据库获得路径而进行下载的实现).3. 留言模块: 用户可以把对本站意见和建议留在留言板上,待我站更加完善!2.2 后台管理模块 1. 管理员登陆:(管理员在后台登陆后,方可进行对本站的基本维护操作). 2. 查询书籍 3. 增加书籍(更新网站书籍) 4. 删除书籍(删除以前书籍)3. 留言板(查看,回复及删除用户留言)3理论基础-说明3. 1.本系统是从电子书下载角度出发,根据人们对学知识的需求,设计了一
9、个完整的基于J2EE体系的电子书系统。该系统所设计的下载分类齐全,以满足顾客的需求,如电脑类,杂志类,经济类,科技类,文学类,小说类等条件分别进行查询,解决了渴望学知识广大群众。本系统模型构架分为下面四层结构,如下。(1)J2EE应用程序组件J2EE应用程序是由组件构成的。J2EE组件是具有独立功能的软件单元,它们通过相关的类和文件组装成J2EE应用程序,并与其他组件交互。本系统包括如下组件:应用客户端程序及J2EE服务器。Java Servlet和JavaServer Pages(JSP)Web组件及JavaBean。(2)WEB层组件J2EE web层组件包含JSP页面或Servlet。按
10、照J2EE规范,还包含某些JavaBean对象来处理用户输入,并把输入发送给运行在业务逻辑层上的组件来进行处理。(3)客户层组件基于WEB方式的静态HTML页面或是Applet客户端的小应用程序。3.2. J2EE的概念J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2标准平台。J2EE不仅巩固了标准版中的许多优点,例如“编写一次、随处运行”的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对EJB(Enterprise J
11、avaBeans)、Java Servlet API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。3.3 JSP的概念JSP程序是一个服务端页面脚本程序,可以在这个脚本中直接编写客户端浏览器需要显示的HTML文档内容,当然也可以依照JSP规范将Java程序代码嵌入脚本。JSP脚本规范提供了若干内部对象来简化JSP程序和浏览器之间的输入输出处理。由于JSP程序是从HTML页面添加Java动态处理代码而来,因此,JSP程序又称为动态JSP页面。3.4 Java Bean的概念JavaBean是一种JAV
12、A语言写成的可重用组件,用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。这个对J2EE业务逻辑层处理具有相当重要的部分。3.5 Java Servlet的概念Java Servlet使用的是一种请求/响应机制,也就是说通过特定的Java程序设计技术,由该Servlet动态产生的响应向某一特定的请求做出响应。Servlet所能应用的请求/
13、响应场合很多,但常用的还是在Web应用程序中用于产生超文本传输协议响应(HTTP)。据此,Servlet可能取代其他类型的HTTP请求/响应机制,譬如通用网关接口(CGI)脚本。3.6 Session对象Session对象是类javax.servlet.Httpsession的一个对象,是用来保存每个用户信息(以会话的形式直接保存在WEB服务器端),以便跟踪每个用户的操作状态。3.7 J2EE的结构J2EE结构具有一个很大的特点,就是与平台无关性的J2EE结构。所开发出来的程序可以在任何操作系统下运行。这样就使得J2EE程序的编写变得十分简单,因为业务逻辑被封装成可以复用的组件,并且J2EE服
14、务器以容器的形式为所有的组件类型提供后台服务,所以你可以集中精力解决手头的业务逻辑。3.8 J2EE的容器类型:J2EE容器类型可以分为WEB容器和EJB容器。EJB容器管理所有J2EE应用程序中企业级Bean的执行,Enterprise Bean和它们的容器运行在J2EE服务器上。WEB容器也是管理所有J2EE应用程序中JSP和Servlet组件执行,同理WEB组件和它们的容器也是运行在J2EE服务器上的。3.9 J2EE的体系与模式3.9.1 J2EE的体系(分布式计算)(1)表示层:Web Page| HTML | HTTP(2)控制层:JSP | Servlets (3)逻辑层:Jav
15、aBean (4)数据层:Database (5)JDBC3.9.2 J2EE的模式MVC(Model View Controller)页面bean是一个模型(model),而JSP是一个视图(view), Servlet是一个控制器(controller)。4代码实现规则(1)Struts:在自定义的Action类里要继承 的内置类有:org.apache.struts.action.Action;在自定义的ActionForm类里要继承的内置类有:org.apache.struts.action.ActionForm;在自定义的ActionMapping类里要继承的内置类有:org.apa
16、che.struts.action.ActionMapPing;在自定义的Actionservlet类里要继的内置类有:org.apache.struts.action.ActionServlet;在自定义的DynaActionForm类里要继承的内置类有: org.apache.struts.action.DynaActionForm;在自定义的DispatchAction类里要继承的内置类有: org.apache.struts.actions.DispatchAction;在自定义的ForwardAction类里要继承的内置类有: org.apache.struts.actions.Fo
17、rwardAction;在自定义的IncludeAction类里要继承的内置类有:org.apache.struts.actions.IncludeAction;在自定义的LookupDispatchAction类里要继承的内内置类有:org.apache.struts.actions.LookupDispatchAction;在自定义的MappingDispatchAction类里要继承的内置有:org.apache.struts.actions. MappingDispatchAction;在自定义的SwitchActi on类里要继承的内置类有: org.apache. struts.a
18、ctions.SwitchAction;在自定义的Data类里要继承的内置类有:java.util.Date;在自定义的HttpServletRequest类里要继的内置有: javax.servlet.HttpServletRequeSt;在自定义的HttpServletResponse类里要继承的内置类有:javax.servlet. HttpServletReponse;(2)Hibernate:在自定义的Session类里要继承的内置类有:org.hibernate.Session;在自定义的 Configuration类里要继承内置类有 org.hibernate.cfg.Confi
19、guration; 在自定义的SessionFactory类里内置类有:org.hibernate.SessionFactory;(3)Spring: 在自定义的ApplicationEvent类里要继承内置类: org.springframework.context.ApplicationEvent;在自定义的 ApplicationListener的内置类: org.springframework.context.ApplicationL-stener; 在自定义的XmlBeanFactory的内置类有: org.springframework.beans.factory.xml. Xml
20、BeanFactory;自定义的:ClassPatchResource类里要继承的内置类有: org.springframework.core.io.ClassPatchResource; 在自定义的Datasource的内置类有:jav ax.sql.DataSource; 在自定义的:Connectio置类有:java ax.sql.Connection;(4)页面名称规划: 登陆页面:login.jsp 注册页面:zhuce.jsp 网站首页:mian.jsp 下载页面:xiazai.jsp 留言板页面:liuyan.jsp 管理员登陆页面:hou_login.jsp 书籍更新页面:up
21、date.jsp 书籍删除页面:delete.jsp 5网站构架设计5.1.本系统总体体构架图JSP技术:实现应用的表现层Sturts 的控制器:实现应用的控制器 业务逻辑组件:实现系统业务逻辑层 Hibernate的DAO组件:实现系统的DAO层 基于Hibernate的持久化对象:实现系统的持久化层 全部处于Spring容器管下 数据库 5.2.本系统的Struts 和 Spring 整合协作图4.负责生成:管理Action3.转入Spring容器业务逻辑控制器ActionSpring的DelegatingActionProxySpring的IoC容器2.请求转发1.发送请求ActionS
22、ervlet用户 5.3实现系统的DAO层:系统DAO组件用于实现底层数据的基表的CRUD操作,用于完成低沉数据哭的持久化访问。DAO层是对Hibernate持久化访问的封装,也是想业务逻辑组件提供逻辑访问的支持。DAO层是系统持久化访问的的关键部分.5.3.1 下载类型DAO也包含两部分,DAO接口和DAO实现类。分别完成DAO组件的功能定义和DAO组件的具体现。下载类型DAO组件的接口和实现列的类图 Interface注册人员信息处理 CnientDAO1,get (int id)2,save(PersonEnrol message );void3,update(),Boolean4,de
23、lete(int id) void5,delete();void6,finderByNameandPadd(string name,string pass) void7,findByName(String name);void6,getAllBybook(int fist,int pageSize) ;ListBookDAO1, get(int id)2, save();void3, update(),Boolean4, delete(int id),void5, delete(),void6, findByBookName(string bookName,String bookType) ;
24、Boolean7, addInputBook(string bookType,String bookName);String根据接口定义了五个基本方法:(1),get,根据特定主键加载特定持久化实例。(2),save,保存持久化实例(3),delete,删除持久化实例(4),update,更新持久化实例(5),delete,根据主键删除持久化实例上面所介绍的5个基本的CRUD方法也是每个DAO主键都应实现的5个基本方法。除此之外,该DAO组件换定义了两个finder方法进行查询,用于辅助业务逻辑的实现提供了该接口定义以后,借助于Spring提供的HibernateTemplate可以很简单的实
25、现该DAO组件,实现DAO组件就是为该DAO接口提供一个实现类。 通过looktypeImp实现类的代码,可以发现实现类内包含了一个getHibernateTemplate()方法,该方法可以获得一个HIbernateTemplate对象,该对象对于进行持久化访问非常方便。而DAO实现类之所以能直接调用getHibernateTemplate()方法,是以为DAO实现类继承了Springle提供的HribernateDaoSupport。对于HibernateDaoSupport工具类而言,只要让Springle容器诸如所需要的SessionFactory实例,就可以产生当前线程关系的hibe
26、rnateTeplate实例。5.3.2部署DAO组建: 基于HibernateDaoSupport组建必须获得一个SessionFactory的引言,然后才可以完成持久化访问,因此,可将DAO组建部署到Spring容器中,让DAO组建接受Spring容器注入一个SessionFactory的引用。不仅如此,所有的DAO 组建还必须作为业务逻辑组建的基础。因此,必须把DAO组件纳入业务逻辑组建,从而让系统中的各个组建一松藕合的方法组织在一起。因为所有的DAO组件都必须接受一个SessionFactory引用,因此让所有的DAO组件都继承一个DAO模板,在该DAO模板里配置所有的通用部分。5.4
27、网站流程图:本站简介关于本站 网站理念网站动态网站资讯 时尚类杂志类经济类 科幻类行业资讯电脑类网站书籍下载联系我们 小说类科教类文学类客户留言英文5.5注册登陆模块解析及E_R图: 登陆管理员账号客户账号判断账号输入账号密码普通用户信息发布Vip用户留言板管理用户管理本系统要求用户登录后,才可以浏览电子书列表,才可以下载书籍和查看图书,在上面的业务逻辑组件定义了一个login方法,该方法用于判断用户是否可以成功登陆。对于控制器而言,负责收集用户信息,并调用业务逻辑方法,进入系统时,如果用户没有登录,系统将自动进入登录界面,该登录页面包含了一个简单的表单,该表单用于收集用户名和密码,当用户单击
28、“登录”按钮时,将提交LoginAction,该Action从ActionForm中解析出用户名和密码参数后,调出业务逻辑组件的login方法,如果用户登录成功,则跳转到主界面,如果登录失败,则跳回登录界面。如果Action调用login业务逻辑方法,返回的整数大于1,表明登录成功,则跳转到success的ActionForward,该ActionForward对应列出所有书籍的请求。否则,将重新返回登录界面。本系统使用动态验证Form,使用这种动态验证Form可以避免书写ActionForm类,并可使用Struts的校验框架。5.6查询模块解析及E_R图:登 陆 会员管理员查询查询模块也必须
29、要用户或管理员登陆后方可实现,此处查询按类型分成11类,可以按类型进行模糊查找,也可以按类型和书名进行精确查找。5.7留言板模块解析及E_R图:管理员用户 登陆 留言查看留言回复留言删除留言 5.8 .设计规模详细说明:本系统把需要设计到的各种类按照需求和类别的划分到了不同的包里,持久化类都写在了org.dianzishu.pojo包里,org.dianzishu.actionform包负责获取页面的信息并将其封装负责给业务逻辑控制器Action,需要创建的Action业务处理器一并写在了org.dianzishu.action包里。而系统也将自定义的DAO写在了org.dianzishu.d
30、ao包里。实现DAO的类写在了org.dianzishu.impl包里。Book电子书查询looktypeImp继承于BookDAO来实现所需功能5.9在线留言 1,功能说明:为了在线下载的时候更加方便客户需求,因此我们就推出了这个留言系统。2,目的:哭戏在下载的时候遇到什么问题都可以给我们留言说明,我们会及时的来解决该问题,是我们的网站更加完善,以方便各个网民人士来下载学习资料。删除留言(DeleteMessage)留言(InputMessage)1,title2,writetime3,content留言信息列表(MessageList)在线留言(Message)3,数据库E-R图(Leav
31、eMessage)留言表编号类型说明Leave_idint主键约束,该字段不能为空Leave_titleVarchar(50)留言标题(如果为空的时候我们给他一个默认的一个标题)Leave_timeVarchar(50)留言时间Leave_contentVarchar(50)留言内容(该字段不能为空)4,登陆后留言流程图(1)修改(2)删除(3)查看留言(LeaveMessage)留言模块 登陆 留言内容列表(leaveMessageList)5,实现流程图Struts组建提交给ActiionDAO接口以及DAO实例来处理数据的存储Hibernate组件,Dao响应hibernate持久化类1
32、2数据库设计(1).用户注册信息表(books_zhuce):字段类型属性是否为空U_idVarchar用户IDNot nullNameVarchar用户名Not nullPasswordVarchar密 码Not nullSexNchar性 别Not nullE_mailVarchar邮 箱Not null(2).管理员信息表(books_admin):字段类型属性是否为空idInt 用户IDNot nullusernameVarchar用户名Not nullPasswordVarchar密 码Not null(3).用户留言表(Message):字段类型属性是否为空Me_idVarchar
33、用户IDNot nullNameVarchar用户名Not nullInfoVarchar留言内容Not nullTimeDatatime留言时间Not null (4).电子书类型表(books_type):字段类型属性是否为空T_idInt 分类IDNot nullComputerVarchar电脑类Not nullMagazineVarchar杂志类Not nullEconomyVarchar经济类Not nullSciencesVarchar科学类Not nullSci_fictionVarchar科幻类Not nullStyleVarchar时尚类Not nullLiterature
34、 Varchar文学类Not nullNovelVarchar小说类Not nullStarVarchar明星类Not null(5).电脑类电子书表(computer_book):字段类型属性是否为空C_idInt 电脑类IDNot nullbook_name Varchar 书 籍Not nullbook_pathVarchar路 径Not nullbook_idInt 书 IDNot null(6).杂志类电子书表(magazine_book): 字段类型属性是否为空M_idInt 杂志类IDNot nullbook_nameVarchar 书 籍Not nullbook_pathVar
35、char路 径Not nullbook_idInt 书IDNot null(7).经济类电子书表(economy_book): 字段类型属性是否为空E_idInt 杂志类IDNot nullbook_nameVarchar 书 籍Not nullbook_pathVarchar路 径Not nullbook_idInt 书 IDNot null( 8).科教类电子书表(sciences_ education_book):字段类型属性是否为空S_idInt 杂志类IDNot nullbook_name Varchar 书 籍Not nullbook_pathVarchar路 径Not nullb
36、ook_idInt 书 IDNot null(9).科幻类电子书表(scifiction_book):字段类型属性是否为空S_f_idInt 杂志类IDNot nullbook_nameVarchar 书 籍Not nullbook_pathVarchar路 径Not nullbook_idInt 书 IDNot null(10).时尚类电子书表(fashion_book):字段类型属性是否为空F_id Int 杂志类IDNot nullSty_nameVarchar 书 籍Not nullSty_pathVarchar路 径Not nullClass_idInt 书 IDNot null (
37、11).文学类电子书表(literary_book):字段类型属性是否为空L_id Int 杂志类IDNot nullbook_nameVarchar 书 籍Not nullbook_pathVarchar路 径Not nullbook_idInt 书 IDNot null (12).小说类电子书表(novel_book):字段类型属性是否为空N_idInt 杂志类IDNot nullbook_nameVarchar 书 籍Not nullbook_pathVarchar路 径Not nullbook_idInt 书 IDNot null (13).明星类电子书表(star_book): 字段
38、类型属性是否为空St_idInt 杂志类IDNot nullbook_nameVarchar 书 籍Not nullbook_pathVarchar路 径Not nullbook_idInt 书 IDNot null(14).英语类电子书(english_book)字段类型属性是否为空En_idInt 杂志类IDNot nullbook_nameVarchar 书 籍Not nullbook_pathVarchar路 径Not nullbook_idInt 书 IDNot null6.数据库关系图 7.项目设计初衷: 本系统是我组针对广大电子书爱好用户设计的一个纯免费的公益电子书在线下载网站,为