版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 . . . 基于JSP模式电子宠物系统的开发The development ofElectronic Pet System Based On JSP Pattern目 录摘要IABSTRACTII第1章绪论11.1 系统开发背景与意义11.2 系统开发的解决方案1第2章系统结构和开发工具的概述22.1 系统开发结构22.1.1 MVC模式简介22.1.2 JDBC简介32.1.3 Struts架构简介32.2 系统开发工具32.2.1 Tomcat 5.5简介32.2.2 SQL Server 2000简介4第3章电子宠物系统的需求分析53.1 系统功能分析53.2 系统性能分析53.3 系
2、统可行性分析6第4章电子宠物系统设计与实现74.1 MVC结构的整体流程设计74.2 电子宠物系统的数据库系统设计84.2.1 数据库设计94.2.2 数据连接的实现114.3 电子宠物系统的实现124.3.1 电子宠物系统界面的实现124.3.2 系统功能的实现14结论18参考文献1917 / 19摘 要电子宠物系统是电子商务分支下的一个项目,其开发目的不仅给运行商带来利益,更为消费者带来精神上的享受,是满足消费者心理的一个系统。系统采用了J2EE(即Java2SDK,Enterprise Edition)开发模式,在系统具体实现上采用比较成熟的JSP+Struts+JDBC架构。文中首先介
3、绍了系统开发的背景和意义,以与系统的解决方案;然后介绍了主要的设计方法和现在最流行的MVC开发模式,并简要介绍系统开发所用到软件;接着进行了系统的需求分析和数据库设计;最后围绕着MVC的本文设计思路,对各个功能模块进行了详细设计,包括界面的设计和代码的实现。关键词 电子宠物,J2EE,JSP,Struts架构,MVC模型ABSTRACTThe electronic pet system is a sub-project of the e-commerc, not only the business men who operating it benefit from its functions,
4、 but also did the consumers.This system was based on J2EE pattern of the specific systems ,and completed by the JSP+Struts+JDBC frame.First I will introduce the systems development background and significance, as well as its solutions. Then I will introduce the main designed methods , one of the mos
5、t popular development model:MVC, and some softwares which the system used.Then I will do the the analysis design and database design of the system.Lastly, I will do each models detailed design including interface design and the realization of the code.Keywords:J2EE-Standard, JSP, Struts-Frame, MVC-M
6、odel第1章 绪论电子宠物系统作为一个综合性的商务,目标是能够深得用户喜爱,以简易的操作,丰富的容来吸引客户。本章主要介绍网络宠物系统的开发背景和意义,以与开发的解决方案,对本系统有一个初步的认识。1.1 系统开发背景与意义电子商务的形式多种多样,有C2C(CustomtoCustom),B2B(BusinesstoBusiness)等等。基于J2EE模式的电子宠物系统属于B2C(CustomtoBusiness)模式,是一个实现电子商务主体功能的多功能,目的是为了促进消费。这次课题的研究就是从满足客户精神需求出发来进行设计开发的。研究此课题项目的意义在于:一方面对使用本电子商务网的商家来说
7、达到赢利目的,对客户来说能在网络中领养电子宠物达到愉悦身心,放松休闲的目的;另一方面,对开发者来说,在提高自己的实际动手能力的同时,更加深入的了解了电子商务的含义,更好的熟悉和掌握了怎样运用J2EE模式来设计和完善类似于电子商务这样项目的开发和研究,为以后的工作打好了基础也积累了经验。1.2 系统开发的解决方案本系统是基于Web的B/S(即Browser/Server)结构开发的电子宠物。具有维护方便,操作简单,技术先进等优点。本系统是基于JSP+Struts+JDBC的结构来实现的。视图层采用JSP(即Java Server Pages)来实现,业务层采用JavaBean(即数据存储的一种形
8、式)来实现,使用JDBC(即JavaDataBaseConnection)来连接数据库SQL Sever 2000。控制层采用Struts(即一种架构)来实现。第2章 系统结构和开发工具的概述系统性能的优良很大程度上是在开发前期,由开发者选择不同的结构决定的。好的结构给开发和维护带来很大的便利,而选择一些陌生的,或者已经被淘汰的结构,或根本不用到结构,则给开发者和维护者带来很大的麻烦。本章主要介绍系统的结构和开发工具。2.1 系统开发结构本系统的开发是在基于MVC模式下进行的,采用了目前流行的JSP+Struts+JDBC的结构。2.1.1MVC模式简介MVC是Model(模型)、View(视
9、图)和Controller(控制)的缩写。MVC模式的目的就是实现Web系统的职能分工。Model层实现系统中的业务逻辑,通常可以用JavaBean来实现。View层用于与用户的交互,通常用JSP来实现。Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。在MVC模式中,三个层各司其职。所以一旦哪一层的需求发生了变化,就只需要更改相应的层中的代码即可,而不会影响到其它层中的代码,这样有利于开发中的分工。在MVC模式中,由于按层把系统开,那么就能更好的实现开发中的分工。网页设计人员
10、可以进行开发视图层中的JSP,对业务熟悉的开发人员可开发业务层,而其它开发人员可开发控制层。有利于组件的重用,分层后更有利于组件的重用。如控制层可独立成一个能用的组件,视图层也可做成通用的操作界面。2.1.2 JDBC简介JDBC是个“低级”接口,也就是说,它用于直接调用SQL命令。在这方面它的功能极佳,并比其它的数据库连接API(即Application Programming Interface)易于使用,但它同时也被设计为一种基础接口,在它之上可以建立高级接口和工具。本系统利用JDBC连接数据库,通过建立Connection对象、DriverManager对象、Statement对象、P
11、reparedStatement接口、ResultSet对象等来进行数据交互,在下面的介绍中会具体给出示例来展示。2.1.3 Struts架构简介Struts最早于2002年5月作为Jakarta项目的组成部分问世,Jakata项目由ApacheFoundation运做。项目的创立者希望该项目的研究改进和提高JSP、Servlet、标签库以与面向对象的技术水准。Struts为使用MVC体系来编写应用提供了一个架构。Struts使用ActionMapping,它允许Servlet将用户的请求转变为应用行为。ActionMapping通常指定一个请求的路径、在请求上进行动作的对象类型,以与指定其它
12、需要的属性。Struts应用程序的视图部分通常用JSP技术来构造;模型部分通常包含定义系统部状态的JavaBean类,这些类也指定用于改变此状态的操作,Struts中Controller的主要组件是ActionServlet类和RequestProcessor类的一个Servlet。2.2 系统开发工具本系统采用了Tomcat服务器和SQL Server 2000数据库。2.2.1 Tomcat 5.5简介Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其它一些公司与个人共同开发而成。由于有了Sun的参与和支
13、持,最新的Servlet和JSP规总能在Tomcat中得到体现。在Tomcat中,应用程序的部署很简单,用户只需将WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。在浏览器中访问JSP时,通常第一次会很慢,因为Tomcat要将JSP转化为Servlet文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于FTP(即File Transfer Protocol),可以在远程通过Web部署和撤销应用(本地也可以)。2.2.2 SQL Se
14、rver 2000简介SQL Server 2000能够满足今天的商业环境下不同类型的数据库解决方案。它是一种应用广泛的数据库管理系统,具有许多显著的优点:易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等等。除这些核心企业品质外,SQL Server 2000还为数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,从而获得竞争优势。从数据管理和分析角度看,将原始数据转化为商业智能和充分利用Web带来的机会非常重要。作为一个完备的数据库和数据分析包,SQL Server 2000为快速开发新一代企业级商业应用程序、为企
15、业赢得核心竞争优势打开了胜利之门。作为重要的基准测试可伸缩性和速度奖的记录保持者,SQL Server 2000是一个具备完全Web支持的数据库产品,提供了对可扩展标记语言(XML)的核心支持以与在Internet上和防火墙外进行查询的能力。第3章 电子宠物系统的需求分析需求分析通过对功能,性能和可行性的要求进行分析,从而在系统开发之前能够规划出开发的基本轮廓和大纲。本章从功能和性能两方面对系统进行详细的需求分析。3.1 系统功能分析电子宠物系统预计实现如下功能:(1) 登录和注册功能。登录能在各个界面实现,以便用户随时登录,然而在购物结束后的结帐前必须先实现登录。注册实现比较齐全,包括宠物领
16、养,宠物注册,和初始值的分配。(2) 宠物状态功能。该功能预计实现一个线程类,用于实时监测,实现宠物各个状态属性的即时值,并在JSP界面上显示出来。(3) 宠物超市功能。该功能预计能实现一个完整的电子购物系统,包括主要的购物车,商品购买,商品选择等功能,还有如公告栏等辅助功能,要求功能尽可能丰富。(4) 宠物喂养功能。该功能预计实现一个用户储藏箱,把购物后的商品放于其中,能通过使用改变宠物当前状态。(5) 其他功能。预计在时间允许的围,实现宠物学习和打工,用户讨论功能等。3.2 系统性能分析系统对性能有如下要求。1. 系统安全性要求要求在必要的界面实现Session控制用户登录,不能在没有登录
17、条件下访问带权限的界面;宠物状态改变时要与时表现给用户知道,特别是生病时。2. 数据库管理数据库支持SQL Server 2000,使用通用的SQL语句。语言采用以Java为主。要求数据库管理系统具有数据一致性,安全性,数据导入、导出等的服务功能。3. 界面风格界面字体要求统一,所有表格都用同一的CSS(即Cascading Style Sheets)样式规,所有JSP都要求通过统一框架组合。4. 运行环境服务器:Tomcat5.0/WebSphere/WebLogic 服务器。客户端:Windows2000/XP;Linux;Unix。数据库平台:SQL Server 2000。网络协议:
18、协议。3.3 系统可行性分析系统实现用户上网后对宠物的领养和宠物诞生后的生活。主要针对青年人的休闲娱乐,满足他们热爱宠物的心理需求。系统要求两人合作开发,包括数据库,JSP和后台控制,按模块进行分工,在固定结构的约束下可以有不同的编程风格。通过毕业实习,两人应能很好完成该系统的开发。技术上难点在与Struts中JavaBean的运用,和数据库开发,已经通过参考相应文献来解决该困难。开发环境要求在Eclipse下进行,安装JDK1.6,目前已经设置好。第4章 电子宠物系统设计与实现电子宠物系统的整体流程设计对系统进行总体的分析,能对MVC的开发有明确的规划,数据库设计对各个表进行具体实现,能体现
19、关系数据库的特点。本章全面详细地介绍了电子宠物系统详细开发的流程,整个过程贯彻着MVC的设计思想。4.1 MVC结构的整体流程设计按MVC结构把系统分为视图(View)、数据访问(Model)、业务控制(Controller)模块。如图4-1所示。图4-1 功能流程图1. View模块View在J2EE开发环境中即以JSP页面来实现所有视图功能,所有网页都以.jsp作为后缀。运用JSP,JSTL,Struts标签实现了控制代码与页面的分离,如常用的有<jsp:userbean>,<jsp:setProperty>等JSP标签,<c:out>,<c:se
20、t>,<c:foreach>等JSTL标签,<html:form>,<html:submit>,<bean:message>,<bean:write>等标签。其次运用CSS样式表使得网页变得整齐,美观。运用javascript脚本语言使得网页变的更加灵活。2. Model模块Model部分实现了所有数据的获取,主要功能是为View和Controller两部分提供需要的数据源,并且不牵涉到具体的功能模块,提高了系统的安全性。3. Controller模块作为Struts模式下的Controller,应用Action对象进行后台控制
21、,其实现通过如下步骤展现。Action的实现步骤是:首先进行XML配置。插入<action/>在Struts-Config.xml,如配置一个名为DoShop的Action类,以下是配置的代码:<action attribute="GoodsId" name="GoodsId" parameter="doshop" path="/DoShop" scope="request" type=".FormAction.DoShop" validate="
22、false"> <forward name="doPage" path="/DoPage.do" /></action>接着创建一个类继承Action。以下是部分代码:public class DoShop extends LookupDispatchAction public ActionForward buy(ActionMapping mapping,ActionForm form, ServletRequest request, ServletResponse response)GoodsId GoodsI
23、d = (GoodsId) form;.这样就实现了以MVC结构的模块分类,J2EE本身就是一个规的开发环境,要求程序员严格按照“规定”来开发,这是一个基本的要求。4.2 电子宠物系统的数据库系统设计本系统应用SQL Server 2000开发了数据库系统,下面主要介绍了数据库信息和数据连接的设计。4.2.1 数据库设计数据库名称:db_pat主要的表的关系图如图4-2所示。图4-2 数据关系图下面对各个数据库表进行详细介绍。pat_basicInfo 该表描述了宠物的基本信息,标识了每一个注册宠物的关键信息,能区别其他宠物。具体属性如表4-1所示。表4-1 pat_basicInfo属性含义
24、Pat_id唯一标识一个宠物的主键,用来宠物登录Pat_name宠物的昵称password宠物登录时的密码Pat_age宠物的年龄Pat_sex宠物的性别Pat_owner宠物的主人Pat_category宠物的种类money用户上的余额,用户在该的流通货币pat_goods 该表描述了宠物超市中所有商品的信息,包含了商城中所有商品的存储,每一个商品都包含增加不同宠物状态的特殊属性。具体属性如表4-2所示。表4-2 pat_goods属性含义goods_id商品的id号,唯一标识货物的主键。goods_name商品的名称。addhungry使用该商品后,可以使宠物饥饿值降低的点数。addcle
25、an使用该商品后,可以使宠物清洁值增长的点数。addtemper使用该商品后,可以使宠物心情值增长的点数。addforce使用该商品后,可以使宠物武力值增长的点数。addinteger使用该商品后,可以使宠物智力值增长的点数。addcharm使用该商品后,可以使宠物魅力值增长的点数。goods_category商品的所属种类。goods_number商品的数量。goods_price商品的单价。goods_img_path商品的来源。goods_info商品的介绍。pat_state 该表存储了宠物每个属性的变化值,这些属性值的不同变化可以做为设计怎样显示宠物状态和照顾宠物的依据。具体属性如表
26、4-3所示。表4-3 pat_state属性含义pat_id唯一标识一个宠物的主键pat_hungry宠物的饥饿值-pat_clean宠物的清洁值pat_study宠物的学历值pat_temper宠物的心情枝pat_force宠物的武力值pat_integer宠物的智力值pat_charm宠物的魅力值pat_grow宠物的成长值pat_containe 该表存储了用户购买的商品信息。如表4-4所示。表4-4 pat_container属性含义pat_id唯一标识一个宠物的主键goods_id唯一标识宠物所拥有的商品的主键own_number宠物所拥有的该商品的数量pat_state_ill 该
27、表描述了宠物健康状态,包含健康值和死亡值。具体属性如表4-5所示。表4-5 pat_state_ill属性属性含义pat_id唯一标识一个宠物的主键Pat_ill表示宠物的健康状态,“1”表示健康,“0”表示生病Pat_dead表示宠物的死亡状态,“1”表示健康,“0”表示死亡4.2.2 数据连接的实现系统利用JDBC进行对SQL Server 2000数据库进行访问,具体实现包括如下两部分。(1) 连接数据库的主要代码如下:public class DataLink public Connection connection=null; private String dbDriver=”.mi
28、crosoft.jdbc.sqlserver.SQLServerDriver”;/数据库驱动private String url="jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=db_pat"/数据库连接public DataLink()tryClass.forName(dbDriver);DriverManager.registerDriver(new .microsoft.jdbc.sqlserver.SQLServerDriver();String uid="sa"String psw=
29、"sa"connection=DriverManager.getConnection(url,uid,psw);catch(Exception e)e.printStackTrace();(2) 为了在数据库中实现select,insert,update,delete等语句,将所有连接语句单独存于一个静态类FinalConstants中。以下是部分代码。/通过uid 和goodsid 查找该物品数量 public static final String select_ownnumber_fromUidGid= "select own_number from pat
30、_container where pat_id=? and goods_id=?" /更新储物箱中物品数量 public static final String update_ownnumber= "update pat_container set own_number=? where pat_id=? and goods_id=?" /通过uid goodsid 删除物品从储物箱中 public static final String delete_container= "delete from pat_container where pat_id=?
31、 and goods_id=?"这种方法使得以后使用时更加的方便和清晰。4.3 电子宠物系统的实现本节对系统的界面和功能进行详细介绍,并赋有主要的代码和截图。4.3.1 电子宠物系统界面的实现界面设计对系统来说很重要,是一个系统的“脸蛋”。功能再强大的软件最终还是要交到客户手上,所以对来说漂亮整齐的界面便成了开发者追求的效果。1. 利用CSS样式表布置全局CSS是样式叠层表的简称,更多的人把它称作样式表。顾名思义,它是一种设计网页样式的工具。借助CSS的强大功能,网页将在您丰富的想象力下千变万化。在电子宠物系统中,不仅利用CSS来控制所有的字体,颜色,格局,更利用高级功能设计出很有意
32、思的效果和布局。下面是控制全局的字体和边距代码。body margin: 0;padding: 0;font:70% 'Lucida Grande',Verdana, Helvetica, sans-serif;下面是设计出超链时出现带有箭头背景的代码。.cbSide li a:link line-height:150%;text-decoration:none;display:block;border-bottom: 1px solid #EDEAEB;background: #FFF url(ticks.gif);效果如图4-3所示。图4-3 CSS效果图2. 利用Java
33、Script脚本来增加有趣的设计在的各个页面中,用户都能看都一个迷你时钟,随着时间的 改变会提醒用户不同的信息,该功能便是由JS语言的。代码如下。<script type="text/javascript"> var mess="" hour=new Date().getHours() if(hour>=0&& hour<4)mess="夜深了!注意身体!" if(hour>=4&& hour<7)mess="这么早就上网啊。" if(hour&g
34、t;=7&& hour<12)mess="上午好" if(hour>=12 && hour<14)mess="中午吃什么好东西啊" if(hour>=14 && hour<17)mess="下午工作辛苦了" if(hour>=17 && hour<20)mess="晚饭吃了吗?" if(hour>=20 && hour<=23)mess="一天过的可真快!今天过的好吗?&q
35、uot; document.write(mess) </script>效果如图4-4所示。图4-4 JS效果图4.3.2系统功能的实现系统分为以下的功能模块。如图4-5所示。图4-5 功能模块图1. 宠物状态模块网页设计效果如图4-6所示。图4-6 宠物状态界面该模块是最具有特色的,下面详细介绍该图所代表的容。红色字体部分是宠物的基本信息栏,下面有其对应的值,该信息是宠物注册时由用户所填写的。绿色字体部分是宠物状态信息,下面有其对应的值,这些值随着时间的改变和宠物主人喂养的动作而改变,当各个属性都在时刻发生着变化,服务器在实时监测属性的变化。其核心是实现了类CountTime,该类
36、继承线程类Thread。线程CountTime含有一个参数是用户的登陆id,存放在Session中,下面是其构造函数。Public CountTime(String uid)this.uid=uid;黄色字体部分是宠物生长状态信息,下面有其对应的值,这些值随着用户在线时间的增加而增加,当到100时,宠物成长一岁。右边看都一个对话框并不是静态的,随着宠物健康状态的不同会对应改变,发出不同的信号给用户。在宠物系统中,正是由于CountTime类在每个时刻的扫描,使得属性值能时刻变化,使得宠物如真实在领养一样,使得宠物的属性与众不同。基本规则如下:(1) 每个宠物的属性都有上限100,下限0;(2)
37、.每隔10分钟,宠物会有5点的成长值的提高,当成长值到100时,宠物成长一岁;(3).每隔20分钟,宠物会有10点饥饿值的减少;(4).每隔30分钟,宠物会有10点清洁值的减少,5点心情值的减少;(5).当饥饿值低于20,清洁值低于20,心情值低于30,宠物会生病;(6).当生病状态时,状态pat_ill变为0;当状态中有一个为0时pat_dead变为1;(7).当每长1岁 魅力+5;武力+5;智慧+5;上述各项规则在CountTime类中实现,主要代码:public void run()int hungry=po.select_pat_hungry(uid);int clean=po.select_pat_clean(uid);int temper=po.select_pat_temper(uid);int timespan=0;/ 表示自宠物登录到目前的时间 以分为单位boolean sign=true;while(true)current=System.currentTimeMillis();tim
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 5.3 人体内物质的运输
- 办公场所与设施维护管理制度
- 企业商标管理制度
- 急救医疗流程规范制度
- 算法设计与分析 课件 10.3.3-综合应用-最短路径问题-贝尔曼福特算法
- 2024年来宾道路客运从业资格证考试模拟试题
- 2024年西安客运从业资格证考试考什么题型
- 2024年杭州客运急救知识
- 2024年重庆客运从业资格证实际操作试题答案解析
- 吉林艺术学院《中外动画史》2021-2022学年第一学期期末试卷
- 离婚登记申请受理回执单
- 华北电网调度管理规程
- 中医感冒辨证施治课件
- 污水处理站施工组织设计-完整版
- 经济日用文书-条据告启
- 铲车考试题库
- 2022年上海市徐汇区中考一模英语试题(含详细解析和答案)
- 世界问候日介绍你的问候温暖着这个世界礼貌礼仪打招呼优秀课件两篇
- 2022年公务员联考公安专业科目真题与答案
- 防静电标准规范
- 医护人员个人防护和手卫生的重要性
评论
0/150
提交评论