《网络工程师综合训练》报告_第1页
《网络工程师综合训练》报告_第2页
《网络工程师综合训练》报告_第3页
《网络工程师综合训练》报告_第4页
《网络工程师综合训练》报告_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机与信息学院《网络工程师综合训练》报告设计题目:网上书店的设计与实现设计题目:网上书店的设计与实现学生姓名:学号:专业班级:2015年1月一、设计要求1.通过以下过程:需求分析、E-R模型、关系模型分析,在数据库中构建数据库、表或视图,熟悉数据库开发流程;2.根据网上书店系统功能,条理清晰地设计前台各脚本页面;3.在时间允许的情况下,适当考虑页面的美观;4.熟悉脚本页面与数据库的多种连接方法。二、开发环境与工具操作系统:windows7开发平台:J2EE开发工具:myeclipse集成开发环境,tomcat,mysql开发语言:html,javascript,java(jsp,servlet,javabean),sql设计原理Web开发采用b/s结构,既浏览器/Web服务器/数据库服务器。其中浏览器负责处理用户的输入和向用户的输出,Web服务器负责建立数据库的连接,根据用户请求生成访问数据库的sql语句,并把结果返回给客户端,数据层负责实际的数据库存储和检索,响应Web服务器的数据处理请求,并将结果返回给Web服务器。网上书店的设计是在数据库服务器端构造数据库、设计前台的各脚本页面,在客户端运行。在实现过程中涉及到了http协议、数据的正确传输等计算机网络的相关知识。在设计过程中我采用了经典的MVC(模型-视图-控制器)设计模式.使得各个层次分离,增加程序的可读性,和程序的可扩展性,使得程序更容易控制,而且有助于提高程序的安全性。modle(模型)是应用程序中用于处理应用程序数据逻辑的部分。采javabean和java类来实现对现实世界的模拟,主要的作用是处理业务逻辑,连接数据库服务器以及接收从数据库中得到的数据。View(视图)主要是向用户显示数据和接收用户的请求,采用jsp实现,其中还加入了html和javascript等语言。Controller(控制器)主要功能是接收视图发送来的数据,准备视图要显示的数据,以及控制页面的跳转,采用servlet实现。数据库设计原理:数据库是将数据以一定的方式存储在一起,为多个用户共享,具有尽可能小的冗余的特点,所以在设计时要至少达到第三范式的要求。四、系统功能描述及软件模块划分所设计的系统所实现的主要功能,软件所包含的主要模块和功能描述本系统主要包含两个大的模块,数据库模块和web服务器的应用程序模块,连接数据库采用jdbc的方式实现两个模块的通信。数据库模块:根据e-r图设计关系模型。最终转化为3张表(用户表,图书表,订单表),数据库的功能主要是确保数据的正确性。Web服务器应用模块:这个模块分为3个小模块对应为3个包,分别为模型的model包,控制器的servlet包,还有用于显示的jsp文件包。一Model包包含以下5个文件1bookbean.java:对应图书表,对属性提供get和set方法,存储图书数据2userbean.java:对应用户表,对属性提供get和set方法,存储用户数据3orderbea.java:对应订单表,对属性提供get和set方法,存储订单数据4GetConnect.java:将连接数据库的操作封装成一个类,方便使用。5Dispose.java:对业务逻辑进行处理。二控制器Servlet包包含以下文件1Admintrunc.java:对管理员的操作调用model进行处理,接收数据并准备数据,使其跳转到正确的页面。2PersonTurnc.java:对用户的操作调用model进行处理,接收数据并准备数据,使其跳转到正确的页面。3login.java:控制对用户登录的验证。4register.java:对用户注册进行验证。三界面jsp包含显示的文件1login.jsp:管理员用户登录2register.jsp:用户注册3Personcenter.jsp:用户功能中心4seletbook.jsp:用户查找图书5showbook.jsp:显示用户查找的图书6purchase.jsp:用户购买图书7ordersuccess.jsp:用户购买图书成功8orderfail.jsp:用户购买图书失败9alertpassw.jsp:用户更改密码10Admincenter.jsp:管理员功能中心11orderform.jsp:管理员查看订单12addbook.jsp:管理员增加图书13alertbook.jsp:管理员更改图书数量14fail.jsp:管理员操作失败15success.jsp:管理员操作成功Web模块的主要功能为1用户管理员登陆2用户注册3用户查找购买图书4用户修改密码5管理员查看订单6管理员添加图书7管理员更改图书数量五、设计步骤一数据库设计1用户表(user)因为是需求为网上书店所以不需要用户太多的信息,而且用户不一定愿意留下自己的信息,所以用户表设计的尽量简单,其中用户名是主码,等级用来区分管理员(-1)和用户,新用户注册等级为0,随着购买书的次数可增加等级。2图书表(book)图书设计中书号(bno)为主码采用国际标准书号(ISBN),因为在当当网上查找图书时书号最多为13位,所以设计为最多13位。其他属性依次为书名(bname),第一作者(bauthor),出版社(bpublish),图书分类(bclass),图书存储位置(baddress),图书剩余量(bnumber),单价(price)。均不为空。3订单表(orderform)订单表中订单号(ordernumber)为主码,设置为自增。用户名(username)作为外码参照用户表用户名,书号(bno)作为外码参照图书表书号,其他属性依次为电话号码(phonenumber),因为图书为货到付款,所以电话号码很重要。购买图数量(booknumber),图书配送地址(bookaddress),订单总价(totalprice)。这些属性均设置为非空。二Web端主要功能实现说明:1为了排版方便代码使用截图形式2只展示部分功能(用户和管理员登陆和管理员查看订单)1用户和管理员登陆涉及文件:(界面)login.jsp(控制器)login.java(模型)GetConnect.java,Dispose.java(数据库)user表第一步:用户在login.jsp页面输入用户名和密码,首先在本地用javascript进行验证,若用户名或密码为空则不进行提交用户需正常输入第2步:当用户输入的用户名或密码不为空时,表单的内容将会被提交至login.java中,为了防止中文乱码,将调用Dispose.java中的转换编码的方法得到正确的用户名和密码。然后Dispose将调用Getconnect.java连接数据库对用户名和密码进行验证。第3步:Dispose类调用boolean类型checkuser方法进行验证时,为了防止sql注入保证正确性,首先用用户名得到用户名所对应的密码,再与传出的密码进行比较,若正确则返回true,否则返回false。为下一步判断做准备第4步:login.java根据返回的结果判断将要跳转的页面,若用户名和密码合法,则再调用Dispse中的getgrade方法获得用户的等级,若为-1则跳转至管理员操作中心,若不是则跳转至用户操作中心。若用户不合法,则跳转至登录界面说明其不合法。至此登录功能完成。2管理员查看订单并完成翻页功能涉及文件:1(界面)Admincenter.jsp,orderform.jsp2(控制)Adminturnc.java3(模型)Dispose.java,GetConnect.java,orderbean.java4(数据库)orderform表第1步:该功能由管理员在Admincenter.jsp中点击超链接查看订单触发。同时向Adminturnc.java提交两个变量flag和pagenow。其中flag用来标记要完成的操作,pagenow=1用来给定初始的页数为1;第2步:Adminturnc.java接收到这两个参数后,首先用flag判断是否为获得订单的功能,当为获得订单的功能后,则调用Dispose函数getorderimg,和getpagecount函数获得下一个界面要显示的数据和总共的页数。第3步:Dispose调用函数getorderimg,因为要支持翻页所以要传入当前的页数,假设当每页的记录数pagesize=3确定后,每次都要将当前页数之前的记录都不取,而是取得当前的3条记录。当获得结果集后,每一个元组用一个userbean对象封装起来,然后加入Arraylist后,当获得3条记录后,就将整个结果集(Arraylist)封装后返回。第4步:Dispose调用getpagecount方法获得总共的页数,将orderfrom表名当做参数传入后,可获得总共的记录数,再根据是否能整除每页的记录数决定是否加1获得总共的页数第5步:Adminturnc.java获得数据后将其加入requst中送入到orderform.jsp中。并跳转到orderform.jsp中第6步:orderform.jsp接收到数据后,在设计好的table中显示出来,并显示页数,在点击超链接页数和上一页和下一页时,回到第2步,向Adminturc传入flag和希望获得的页数(pagenow),直到管理员按返回主页时返回管理员操作中心Admincenter.jsp至此,管理员查看订单功能结束。查看订单效果图,其中当前页为第一页时不显示上一页,当前页数为最后一页时不显示下一页关键问题及其解决方法一中文乱码问题:由于编码问题而引起的中文乱码在Dispose中增加了一个转换编码的方法1jsp文件显示中文时乱码解决方法:在jsp文件中将pageEncoding改为"utf-8"即可2jsp文件向jsp文件传输数据时中文乱码解决方法:在接收端调用getchinse方法将接收到的数据恢复成中文3jsp文件向servlet文件传输数据中文乱码解决方法:在接收端调用getchinse方法将接收到的数据恢复成中文4java文件调用sql语句向数据库插入数据和查询时中文乱码解决方法:在连接数据库时加入如下语句useUnicode=true&characterEncoding=UTF-8二javascript校验错误由于我的myeclipse版本问题,在提交表单的时候onclick函数写成如下形式时会报错,后来在百度后通过更改meclipse设置后成功解决问题<inputtype="submit"value="登录"onclick="returntest1();">七、设计结果1用户管理员登陆,用户和管理员在同一界面登录,后台通过区分等级来区分管理员和普通用户,登录时会先在本地校验,若不合法,则不提交,若用户不合法则返回登录界面。登录界面用户不输入用户名或密码普通用户登录成功管理员登录成功2用户注册,注册成功后跳转入普通用户登录成功界面。3用户查找购买图书用户查找图书用户查找到图书用户未查找到图书用户购买图书,填写订单,用户需填写电话号码购书数量和配送地址,其他信息自动填入且不可更改。用户订单成功,货到付款用户订单失败4用户修改密码5管理员查看订单,刚才购买的有生之年订单已加入订单库6管理员添加图书7管理员更改图书数量管理员操作成功管理员操作失败,由于空间有限,所以,截图被压缩了思考题解答

如何提高脚本的执行效率,特别是数据库操作效率?并将你的方法体现到上述设计过程中。答:1使用javascript等语言在本地先行校验数据,使得有效的数据被传递这样可以减少无效的数据访问数据库不成功而造成的对数据库资源的浪费。2更加优化脚本的算法,使得执行效率更高3优化数据库,减少冗余,设计出结构更合理的数据库。

如果你想使你的网上书店能够在Internet上成功运营,你还应做哪些工作?答:1将服务器放置在公网上,现在只有校园网范围内的可以访到我的电脑2优化代码结构,尽量使用status等经过检验的成熟的架构。3使用session,cookies,servletcontext,等技术,加强功能和安全性。4在页面间传递数据时需要加密,我这次基本都是用明文传,不安全。5加强javascript校验,这次我是在最后才解决了这个问题,应用较少。6加强支付方式的选取,增加安全性。7重新设计界面,以吸引跟多的用户,这次基本没有界面,很不好看。如何保证你的网上书店的网络安全性,特别是你的网上书店的销售款如何收取的?效率如何?现实可行么?请详细分析,并提出解决方案。答:我的网上书店采用生成订单,货到付款的方式,这种方式效率较低,因为无法保证电话号码和送货地址的正确性,因此会产生很多无效的订单,现实中要用户和商家配合才能提高效率。要解决这个问题,要采用在线支付的方式,这就需要编写与支付宝或银行的接口程序,这样才能实际解决这种问题。软件使用说明由于我无法导出可执行文件,所以给出了源代码文件夹和mysql导出的.sql文件,运行时在一个装有java环境的myeclipse中导入源代码,在将.sql文件导入mysql中,安装好tomcat就可运行了。九、参考资料[1]数据库系统概论(第4版)王珊萨师煊高等教育出版社.[2]软件体系结构原理,方法与实践(第2版)张友生编著清华大学出版社[3]计算机网络教程高传善毛迪林曹袖高等教育出版社十、验收时间及验收情况验收时间:2015年1月13日上午验收情况:通过设计体会通过这次实验,使我对Web编程有了更进一步的认识,有于时间较为紧张,本次实验属于边学边用,对其中的很多技术大都一知半解,缺乏本质和系统的认识,但也深切的感受到了mvc设计模式的实用之处。希望未来可以写出更加完善,结构更加合理的Web程序。路由器配置实验一、实验目的1.认识路由器的端口、型号2.掌握路由器的路由配置3.理解网络互联的基本原理二、实验环境与设备本实验在PC机上利用模拟软件PacketTracerV6进行操作。三、实验内容路由器接口的配置静态路由配置默认路由配置动态路由配置本次实验的主要任务是了解路由器的基本设置,和网络之间的连接关系。通过这次的实验很好的掌握了各个网段之间的,各个路由器下的pc的连接情况。通过对静态,默认,动态路由配置,使得各个路由器下的PC相互通信。四、实验步骤1.路由器接口的配置创建如图所示的拓扑结构图。(1)为主机PC0,PC1,PC2配置IP地址、子网掩码和默认网关。网络设备接口IP地址子网掩码默认网关PC0FastEthernetPC1FastEthernetPC2FastEthernet(2)为路由器的各个接口分配IP地址和子网掩码,交换机不用配置。网络设备接口IP地址子网掩码默认网关Router0F0/0S2/0Router1F0/0S3/0Router2F0/0S2/0S3/0(4)如配置Router0(5)查看路由器的路由表使用命令:showiproute显示路由表中的路由信息。保存此时路由器显示的路由信息,以便与后面的实验结果进行比较。(C表示直连路由)Router0的路由表:Router1的路由表:Router2的路由表:(6)测试主机之间的连通性PC0与PC2的连通性:PC1与PC2的连通性:原因:因为不在同一个网段。2.配置静态路由(1)在Router0中添加一条到网络的静态路由,命令如下:Router(config)#iproute(2)再去查看Router0路由表,与步骤(2)中的路由表进行对比,观察路由表的变化情况。(3)在Router2中添加一条到网络的路由后,路由表如下:Router(config)#iproute(4)测试PC0与PC2的连通性PC0与PC2的连通性如下图:(5)在Router1和Router2中各添加一条静态路由,以实现PC1与PC2的互通。在Router1中添加静态路由:Router1路由表:在Router2中添加静态路由:Router2路由表:P1与P2的连通性:(6)测试PC0与PC1的连通性此时,PC0与PC2可以互通,PC1与PC2可以互通,则,PC0与PC1的连通情况是如何的呢?查看Router0的路由表可知,其中不存在到达PC1所在网络()的路由,查看Router2的路由表可知,其中不存在到达PC0所在网络()的路由,因此,PC0与PC1的连通性为不通。(7)请分别在Router0和Router1中添加静态路由,以实现PC0与PC1的互通。请在实验报告中记录你所使用的配置命令、主机间的连通性测试结果以及Router0和Router1的路由表(以截图形式)。在Router0添加静态路由:路由表:在Router1中添加静态路由:7路由表:P0与P1连通性测试:3.设置默认路由经过上一个实验(配置静态路由)的实验操作后,路由器Router0的路由表如下:(S表示静态路由)PC0想要访问PC1和PC2所在网络,需要在Router0中添加两条静态路由。这两条静态路由的下一跳IP地址相同,并且Router0所在网络只有一条通路连接其它网络。这种情况下,如果使用默认路由,则Router0只需设置一条默认路由就可使PC0可访问PC1和PC2,这样Router0的路由表将更加简单。下面我们来看看默认路由的配置:(1)首先删除Router0中到达PC1和PC2所在网络的静态路由,参考命令如下:Rout

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论