基于bs的外卖订购系统.doc_第1页
基于bs的外卖订购系统.doc_第2页
基于bs的外卖订购系统.doc_第3页
基于bs的外卖订购系统.doc_第4页
基于bs的外卖订购系统.doc_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

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

文档简介

重庆三峡学院毕业设计(论文)题目:基于B/S模式的区域外卖订购系统 专 业:计算科学与技术 年 级:2011级 学 号:201106024149 作 者:邓 克 指导老师:吴 愚(讲师)完成时间:2015年5月说 明本系统基于B/S模式进行开发,整个过程的开发持续两个月,开发的任务包括web前端页面、后台业务逻辑处理、web应用框架搭建、数据库设计等等。特别是在做web前端页面的时候,因为之前前端技术薄弱,为此小组分工后找了许多书籍进行补修。外卖订购系统属于商城系统,B2C之类的项目,商城平台管理着会员和商家,管理整个系统的运行,保证商家和会员能够在系统上面进行稳定安全的交易。面临中国市场的转型,越来越多的白领坐在办公室里上班,更多的学生,外卖订购变得越来越普遍,因此这种面向外卖的网上交易系统变得非常欢迎,能够设计出高性能的系统变得非常重要,同样这种B2C架构的系统作为我们的毕业设计也能够使我们对于Web应用开发所需要的技术能够有充分的了解,对于我们毕业工作也是帮助巨大。序号学号姓名专业、班级任务分配1201106024149邓克2011级计算机科学与技术1班1. 负责查找Web前端资料2. 负责设计Web前端页面3. 协助组员进行系统数据库设计4. 负责论文的书写5. 协助组员进行需求分析2201106024150韩成林2011级计算机科学与技术1班1. 负责后台代码实现2. 负责模块业务实现3. 协助组员设计数据库4. 协助组员进行需求分析5. 负责系统Bug修复目 录摘要:IAbstract:II1 引言12 区域外卖订购系统的需求分析12.1需求分析概述12.2普通用户需求分析22.3商家用户需求分析22.4平台管理员需求分析23区域外卖订购系统的系统分析与设计23.1 系统设计总体目标23.2 系统设计功能结构23.3 业务的流程图和数据流程图33.4 数据库与数据表设计53.4.1数据库分析53.4.2系统ER图63.4.3创建数据库83.5 数据字典描述124区域外卖订购系统的实现144.1会员登录模块144.1.1会员登录页面设计144.1.2会员登录随机验证码设计144.1.3会员信息验证设计154.1.4会员登录代码设计164.2 管理商家模块165区域外卖订购系统应用技术175.1 JSP技术175.2 Spring MVC的应用185.3 Mysql常用命令205.4 系统平台介绍236区域外卖订购系统测试236.1测试目标236.2测试方法236.3主模块测试256.3.1登录与注册模块测试256.3.2订单服务模块测试266.3.3商家增删模块测试276.4测试总结27结束语27致谢27参考文献28附件1:28基于B/S模式的区域外卖订购系统邓 克 (重庆三峡学院计算机科学与工程学院计算机科学与技术专业2011级 重庆万州 404000)摘要:本系统的开发环境是Eclipse+Tomcat+MySql,在系统的实现中,我们整合Spring和MyBatis框架,提高开发效率,同时运用了Jquery把JavaScript代码从原始的Html中分离,使项目代码结构层次更清晰。通过运用MyBatis,极大的减少必要的代码量,在XML文件中配置Sql语句,实现对数据库的增删改查。同时利用Spring的面向切平面和控制反转进行编程,极大程度减少了代码量,降低了代码的耦合度,使系统的实现更加合理高效。通过这些技术的运用,可是较好地实现区域外卖订购系统。在系统中,实现了普通用户浏览餐品信息,下订单;商家用户可以对餐品进行管理(增删改查),以及处理订单的功能;平台管理员可以对商家进行管理;所有用户均可以登陆登出并且编辑自己的用户资料。按照这样的功能设计,可以比较完善地实现区域外卖订购系统的应有功能。关键词:区域外卖订购系统;B/S模式;JSP技术;MySql数据库;系统实现;Spring & MyBatis;Developing And Implementation of Regional Order Food System Based on B/S modeDENG Ke (Grade 2011, Computer Science and Technology, School of Computer Science and Engineering, Chongqing Three Gorges University, Wanzhou, Chongqing 404100 )Abstract: The development environment of this system is the Eclipse + Tomcat + MySql, in the realization of the system, we integrate Spring and MyBatis framework, and improve the efficiency of development, at the same time separate JavaScript codes from the original Html pages through the code of Jquery, make project code structure level more clearly.Use MyBatis, greatly reduce the amount of code necessary to Sql statements in the XML file configuration, implementation of the database to add and delete.At the same time using the Spring programming for the tangent plane and inversion of control, significantly reduced the amount of code, reduce the coupling of the code, the implementa -tion of the system is more reasonable and efficient.Through the use of these technologies, but better realize regional order delivery system.In the system, realized the ordinary users browse products information, place orders;Business users can manage the products (add ,delete,change,query), as well as the function of processing the orders from the users;Platform administrator can manage the business;All users can log on to log out and edit your user information.According to the functional design, you can realize the regional order take-out system more efficiency.Keywords: system; the pattern of B/S; the technology of Java Server Pages;MySql; the realize of system; Spring & MyBatis;I1 引言伴随着21世纪的来临,中国的互联网也开始蓬勃的发展,电子商务作为一直新秀,厚积薄发逐渐在国内占据大量市场,Online Mall System(在线商城系统)最为普遍,系统涵盖面极为广阔,涉及服装业、书籍、化妆品、海鲜、电器、餐饮等传统行业,B2C趋势正在不断地提高社会的生活水平,生活在各行各业的工作者的生活质量都会得到极大的提高,当然这也是非常有利于国内的软件市场朝着更加稳定更加健壮的方向发展。传统的餐饮行业,城市白领大多地通多电话的形式或者步行的方式去餐馆打包叫外卖,这样做非常浪费时间,体现不出一点社会的优越性,对于那些因为工作繁忙的人来说,只能通过简单的零食解决温饱。互联网的开始于移动互联网的兴起逐渐开始改变这些传统的做事方式,逐渐将一切搬到互联网上面,使人们通过一个智能终端便可以开始订餐点餐。外卖订购系统刚一出现,就广泛地受到学生族、上班族的热烈欢迎,主要原因便是因为外卖订购系统借助互联网的发展,帮助了人们的生活需求,它符合快捷丰富的要求,不仅能够提供丰富多彩的餐饮需求,还能够借助于快递行业满足消费者们对于速度的需求,因此外卖订购系统的稳定性与安全性必须得到保证。区域外卖订购系统旨在帮助市场外卖交易,使其更加与时俱进地贴近互联网的时代步伐,解决了一大部分人群的餐饮问题,例如忙于学业的学生和公司职员。区域外卖订购系统的灵感来源于实际的生活,通过学习的Web前端技术和面向对象编程语言的支持,来构造整个系统,系统的开发包括了建立起正确的数据库,同时做好维护工作,同样前端页面HTML的设计装修也是免除不了的特别是DIV+CSS的装修工作,前端界面的需求必须得到后台业务代码的支持,去完成相应的功能实现,后台需要能够保持一致性的数据存储以及能够很好地实现前端的功能。区域外卖订购系统的功能一般包括了商城会员的注册和商城会员的登录,以及商家的添加,还包括商家对订单的处理,平台系统对商家的考核个管理以及他们日常订单的统计,商家对自己菜单的管理以便会员订餐,用户线下支付管理等功能。该论文将会主要介绍系统总体设计以及后台数据表的建立,管理模块,查询模块,支付模块的构建工作,以及我们在设计系统的过程中使用到的各种前端技术和编程方法。2 区域外卖订购系统的需求分析2.1需求分析概述区域外卖订购系统的主要工作是对社会市场上的“叫外卖”进行互联网市场迁移,方便消费者在能够使用互联网的情况下,可以通过外卖商城实现丰富多彩的外卖挑选并订购,有效加强了消费者的工作效率、节省了大量的时间、拓展了饭饮商家的收入渠道、开拓了新的市场。我们小组成员为了得到系统的准确系统功能需求,亲自前往学校办公一族和公司白领上班一族,根据实际情况去调查了外卖系统的需求,回来后进行了严格的整理,详见下面的文字:漂亮整洁便于操作的前端页面,同时还要具有友好的操作性。系统结束之后,需要能够完成常规性质的online会员下订单业务、system platform管理商家的业务功能、以及商家处理本店铺订单的业务等主要功能。web系统运行在浏览器客户端,因此需要兼容ie浏览器、firfox火狐浏览器等等。同时系统的后台数据库必须要在系统运行期间保存系统运行的数据,并能够在系统出现问题的时候迅速恢复系统故障之前的数据。提供商家订单统计功能。外卖系统需要帮助商家处理店铺运营过程中遇到的各种业务问题,需要的时候给他们电话服务,甚至是业务指导工作,或者是通过邮箱发邮件的形式解决问题。2.2普通用户需求分析商城会员能够正常使用外卖订购系统,首先需要有登录系统和注册系统的功能;然后在系统内部,商城会员需要一个会员中心模块,能够进行个人用户信息的修改,在系统首页能够进行浏览餐品的功能实现。2.3商家用户需求分析商家用户在外卖订购系统内部充当商家的角色,成功入驻系统之后,能够进行订单处理、修改店铺信息、增加餐品、删除餐品、修改餐品、查询餐品的功能。2.4平台管理员需求分析平台管理员是外卖订购系统的中心,掌控着整个系统的管理工作,首先管理员要能够有登录和登出系统的功能,然后能够添加商家、删除商家的功能。3区域外卖订购系统的系统分析与设计3.1 系统设计总体目标根据区域订单外卖订购系统的要求,制定区域外卖订购系统目标如下:1 灵活的人机交互界面,操作方便简单,界面简洁美观。2 鼠标操作,快速响应。3 对订单的选择和取消具有管理功能。4 实现各种查询,如多条件查询,模糊查询等。5 灵活的数据备份、还原功能。6 系统最大限度地实现易于访问、多浏览器兼容和易操作性。7 后台系统运行稳定,安全可靠。8 系统商家信誉有效管理,消费者放心下单。3.2 系统设计功能结构基于B/S模式的区域外卖订购系统的功能结构分为三个部分,分别是普通会员功能、商家用户功能、平台管理员功能。普通会员需要登录、注册系统功能、浏览餐品信息、下订单的功能支持;商家用户作为经营者,通常需要处理普通用户生成的订单,同时还要能够对自己的用户信息进行基本的修改功能;平台管理员需要对入驻外卖订购系统的商家进行管理,主要的管理工作包括添加入驻商家、删除入驻商家功能。区域外卖订购系统功能结构图如下图所示:图3.2 区域外卖订购系统功能结构图3.3 业务的流程图和数据流程图区域外卖订购系统的业务划分主要根据功能图进行划分,同样是划分为三个部分,三个部分相同的是都有登录注册的逻辑判断验证过程,普通会员成功登录系统之后就可以浏览系统餐品、下订单、修改个人信息的业务流程;商家用户成功登入系统之后,也可以进行对餐品的管理业务、处理本店铺订单的业务;区域外卖订购系统平台管理员登陆系统之后,主要进行的业务是对入驻系统的商家进行业务上面的管理。区域外卖订购系统的业务流程图详见下图所示:图3.3.1 系统业务流程图区域外卖订购系统的数据流程图,第一层数据流主要是商城会员、商家用户、平台管理员、订单之间的传递,商城会员购物产生订单数据流,商家用户收到数据流之后进行处理,订单的产生来自商家的餐品库里面。区域外卖订购系统数据流程图如下所示: 图3.3.2 系统流程图3.4 数据库与数据表设计3.4.1数据库分析区域外卖订购系统使用MySql数据库,MySql是一个小型关系型数据库管理系统,MySQL Server开发者为瑞典MySql AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购。各种各样的数据库包括MySql的数据库以及它以后的发展问题,没作为学生我们会持不是非常乐观的观点。在我实习的一家商城系统公司里面也是使用了MySql这种小型数据库,其实许多的小公司都是在使用它。这个数据库系统拥有非常多的优点,比方说它的速度不必那些大型数据库慢多少几乎一样,同时这款系统优势免费的,能够做到源代码开放还是非常的不错,对于创业公司已经资金周转困难的情况下就特别需要这样的系统来帮助他们在完成业务的情况下,消耗更少的成本。考虑到进销存数据量的庞大、易用性和安全性的考虑,本系统决定采用 MySql Server 5.6数据库作为区域外卖订购系统管理的后台数据库。区域外卖订购系统的数据库名称为onlineorderfood,数据库里面拥有4张基本的数据表,其中还包括一个中间表,具体的数据库如图3.4.1所示:图3.4.1 区域外卖订购系统数据表3.4.2系统ER图区域外卖订购系统概念设计阶段,经过论文前面阶段的研究,从需求分析和系统功能中得出我们的数据设计。系统数据库包括四张数据表,分别是角色表、用户表、菜单表、订单表,它们之间的关系,一个用户对应一个订单,角色表控制用户的角色,用户有三种角色控制,分别是:游客、会员、商家;一家商家对应一个菜单,多个菜单生成一个订单,一个商家对应多个订单。详见下图系统ER图和实体关系图。 图3.4.2 区域外卖订购系统ER图用户实体:普通用户作为区域外卖订购系统的主体,在系统中需要登录、注册、完成下单业务,因此实体属性包括密码、邮箱、联系电话、头像、备注、角色、真实姓名、用户名、注册时间、性别、用户编号、有效性、密码。订单实体:订单作为区域外卖订购系统的最大数据流,不仅可以完成普通用户的订单业务,还可以传递给商家用户,显示在商家中心。因此订单实体需要有以下属性:备注、订单编号、送餐地址、下单时间、有效性、联系电话。餐品实体:餐品由商家用户管理,餐品可以组成订单实体,餐品是普通用户购物的对象,因此需要具备以下属性:餐品编号、餐品名称、价格、有效性、餐品图像、更新时间、生成时间。区域外卖订购系统的实体图具体如下所示:图3.4.3 系统实体图3.4.3创建数据库Mysql里面的database数据库是区域外卖订购系统的数据总和,我们小组成员在开发系统之前,需要先完成这方面的工作。如果数据库设计的结构比较冗杂直接会导致系统运行的时候附带巨大的数据库访问压力,因此我们一定要设计出逻辑结构清晰稳定的数据库。本系统的数据库名称是onlineorderfood.创建database onlineorderfood数据库的一些简要的步骤请看下面的图片展示:1) 在我们的电脑上win+r就可以开始run,输入命令字符串cmd,进入WINDOWS 系统的字符DOS操作界面,首先将目录切换到C:/mysql/bin/,然后输入mysqld.exe来启动本地Mysql服务器,可以看到一下界面代表成功,如图所示。在SQLYOG中创建数据库onlineorderfood,首先打开SQLYOG, 然后添加Mysql service 5.6本地服务器的连接,并尝试建立连接,建立连接和连接成功如图所示:图 ”建立新连接“填写参数对话框2) 在弹出的“新建数据库”对话框中输入数据库的名称onlineorderfood。单击”确定“按钮即可,如图3.4.3_4所示。图3.4.3_4 创建数据库图3) 接下来分别创建数据表user、oder、food、order_food,创建的Sql脚本如下所示:CREATETABLEIFNOTEXISTSonlineorderfood.user(idINTNOTNULLAUTO_INCREMENT,user_nameVARCHAR(45)NOTNULL,passwordVARCHAR(45)NOTNULL,real_nameVARCHAR(45)NOTNULL,genderVARCHAR(1)NULL,roleVARCHAR(45)NOTNULL,emailVARCHAR(45)NOTNULL,phoneVARCHAR(45)NULL,is_deleteINTNOTNULLDEFAULT0,created_timeTIMESTAMPNULLDEFAULTCURRENT_TIMESTAMP,remarkVARCHAR(100)NULL,imageVARCHAR(45)NULL,PRIMARYKEY(id)ENGINE=InnoDBDEFAULTCHARACTERSET=utf8COLLATE=utf8_general_ciCREATETABLEIFNOTEXISTSonlineorderfood.food(idINTNOTNULLAUTO_INCREMENT,food_nameVARCHAR(45)NOTNULL,priceINTNOTNULL,imageVARCHAR(45)NULL,seller_idINTNOTNULL,created_timeTIMESTAMPNULLDEFAULTCURRENT_TIMESTAMP,updated_timeTIMESTAMPNULL,is_deleteINTNOTNULLDEFAULT0,PRIMARYKEY(id),INDEXfk_food_user_idx(seller_idASC),UNIQUEINDEXfood_name_UNIQUE(food_nameASC),CONSTRAINTfk_food_userFOREIGNKEY(seller_id)REFERENCESonlineorderfood.user(id)ONDELETENOACTIONONUPDATENOACTION)ENGINE=InnoDBDEFAULTCHARACTERSET=utf8COLLATE=utf8_general_ciCREATETABLEIFNOTEXISTSonlineorderfood.order(idINTNOTNULLAUTO_INCREMENT,created_timeTIMESTAMPNULLDEFAULTCURRENT_TIMESTAMP,buyer_idINTNOTNULL,seller_idINTNOTNULL,phoneVARCHAR(45)NOTNULL,adressVARCHAR(100)NOTNULL,remarkVARCHAR(100)NOTNULL,is_deleteINTNOTNULLDEFAULT0,PRIMARYKEY(id),INDEXfk_order_user1_idx(buyer_idASC),INDEXfk_order_user2_idx(seller_idASC),CONSTRAINTfk_order_user1FOREIGNKEY(buyer_id)REFERENCESonlineorderfood.user(id)ONDELETENOACTIONONUPDATENOACTION,CONSTRAINTfk_order_user2FOREIGNKEY(seller_id)REFERENCESonlineorderfood.user(id)ONDELETENOACTIONONUPDATENOACTION)ENGINE=InnoDBDEFAULTCHARACTERSET=utf8COLLATE=utf8_general_ciCREATETABLEIFNOTEXISTSonlineorderfood.order_food(order_idINTNOTNULL,food_idINTNOTNULL,PRIMARYKEY(order_id,food_id),INDEXfk_order_has_food_food1_idx(food_idASC),INDEXfk_order_has_food_order1_idx(order_idASC),CONSTRAINTfk_order_has_food_order1FOREIGNKEY(order_id)REFERENCESonlineorderfood.order(id)ONDELETENOACTIONONUPDATENOACTION,CONSTRAINTfk_order_has_food_food1FOREIGNKEY(food_id)REFERENCESonlineorderfood.food(id)ONDELETENOACTIONONUPDATENOACTION)ENGINE=InnoDBDEFAULTCHARACTERSET=utf8COLLATE=utf8_general_ci3.5 数据字典描述数据字典是一个数据表单数据的集合,系统中是用的大部分数据都包含在了这部分里边,因此数据字典是数据信息的最根本体现,下面给出部分数据字典的描述信息: 员工信息表的数据字典的描述:名字:用户表描述:三种用户都可以用不同的查询方式,获得用户信息,不同的权限可以查看到不同的用户信息,如普通用户只能看到自己的基本信息、商家用户可以看到自己信息和订单的信息、管理则可以看到所有的商家的信息。定义:用户编号+用户姓名+密码+真实姓名+性别+角色+邮箱+联系电话+有效性+注册时间+备注+头像。位置:数据库用户信息表(user)表2-1 数据库员工信息表 序字段名中 文记录长度类 型备 注1ID用户编号INT(10)长整型用户编号2USER_NAME用户姓名VARCHAR(45)字符型用户姓名3PASSWORD密码VARCHAR(45)字符型密码4REAL_NAME真实姓名VARCHAR(45)字符型真实姓名5GENDER性别VARCHAR(45)字符型性别6ROLE角色VARCHAR(45)字符型角色7EMAIL邮箱VARCHAR(45)字符型邮箱8PHONE联系电话VARCHAR(45)字符型联系电话9IS_DELETE有效性INT(10)长整型有效性10CREATED_TIME注册时间TIMESMART日期型注册时间11REMARK备注VARCHAR(100)字符型备注12IMAGE头像VARCHAR(45)字符类型头像 餐品表的数据字典的描述:名字:餐品表定义:餐品编号+餐品名称+价格+图像+创建时间+更新时间 位置:数据库餐品信息表(food)表2-2 数据库部门信息表序字段名中 文记录长度类 型备 注1ID餐品编号INT(10)长整型餐品编号2FOOD_NAME餐品名称VARCHAR(45)字符型餐品名称3PRICE价格INT(10)长整型价格4IMAGE图像VARCHAR(45)字符型图像5CREATED_TIME创建时间TIMESTAMP日期型创建时间6UPDATED_TIME注册时间TIMESTAMP日期型注册时间 订单信息表的数据字典的描述:名字:订单信息表定义:订单编号+创建时间+联系电话+地址+备注 位置:数据库员工考勤信息表(check_table)表2-3 数据库员工考勤信息表序字段名中 文记录长度类 型备 注1ID 订单编号INT(10)长整型订单编号2CREATE_TIME创建时间TIMESTAMP日期型创建时间3PHONE联系电话VARCHAR(45)字符型联系电话4ADDRESS地址VARCHAR(100)字符型地址5REMARK备注VARCHAR(100)字符型备注以下代码由本人独立完成4区域外卖订购系统的实现4.1会员登录模块4.1.1会员登录页面设计会员登陆界面采用DIV+CSS技术,实现页面的装修,抛弃之前的table技术,技术上面的更新,对于系统后期的维护提供了巨大的方便,维护期间通过直接简单的修改css样式文件便可以轻松地调整系统登陆界面,极大地跟随了当下这个社会潮流的变化。同样,系统直接采用了HTML5,而没有使用HTML4.1,HTML5一直被外界称为“规范向现实的妥协”,系统内部所有页面也都均采用HTML5规范。HTML5具有以下优点:摆脱对平台的依赖、实时更新、离线使用、代码更安全、跨平台、可以充分利用Native,系统设计就用到了placeholder属性,可以很友好地提示用户输入登陆信息。系统登陆界面,如下图所示:图4.1_1 系统会员登陆主页面4.1.2会员登录随机验证码设计为了防止暴力计算非法窃取会员信息,保障会员合法权益,会员登陆界面会增加随机验证码设计。图4.1_2 验证码设计图验证码前端HTML5代码实现如下所示:图4.1_1 验证码前端HTML代码图4.1.3会员信息验证设计会员登陆将会在以下两个方面进行验证,用户名是否存在、用户名和密码是否匹配;外卖网会员在点击登陆页面的登陆按钮时,会出发提交事件,通过Servlet技术,Request请求服务器,并将参数username、password传递给服务器,服务器通过过滤器检测到请求后,会通过控制层,系统中使用Controller注解实现控制,去调配服务层的方法去执行,服务层一般也是通过Service来实现服务,请看下面的Jquery脚本代码展示:4.1.4会员登录代码设计首先是spring mvc的控制层,这个控制层控制着view和module之间的各种交互工作,在控制器收到前台页面的视图层的用户请求,比方说是form表单的请求之后,dispatcherservlet类会根据请求去查看控制层里面的代码,确定调用什么样的处理方法来相应视图请求,同时通过运行类方法完成相应的业务处理,在控制层Controller的java程序代码中程序员们会遇到的许多的逻辑if判断的处理,比方说返回,接受前台传递过来的数据,以及对service服务层程序代码的调用方便去完成各种各样的业务,在登录模块中我们就调用了服务层的login方法去实现登录业务。RequestMapping(value = /login, method = RequestMethod.POST) public ModelAndView login(RequestParam(value = userName) String userName, RequestParam(value = password) String password) 接下来展示服务层代码Service,控制层在登录的时候调用服务层的login()方法 Override public User login(String userName, String password) throws ParameterException, ServiceException 4.2 管理商家模块在外卖订购系统中,我们有官方平台去管理商城会员和商城商家,在商家管理中,系统需要给予商家权限,让他们能够对自己的订单、商家信息、商家菜单等信息进行修改。那么,在平台中,我们就需要有对入驻平台的商家进行管理,最主要的就是增删功能、添加在平台的商家需要收取一定的租金,这就是平台的盈利模式,典型的B2C模式。在这种模式中,国内比较流行的就是天猫、京东网上商城。平台添加商家的信息之后,商家就可以通过平台给予的账号和密码进行登录,登陆之后进入商家管理中心,完成商家必须的信息配置、餐品添加、订单处理、配送配置之后,就可以进行自己的网上营业。5区域外卖订购系统应用技术5.1 JSP技术JavaServer Pages 是JSP的简写,也是SUN公司正式发布的一种前端技术,IT程序员们迅速喜欢上了这种技术,这种技术可以非常方便程序员去独立开发Web应用,而且他们也是高度动态的。Sun公司认为,市场上的许多服务器产品都可以适应JSP技术。因此,我们认为,我们有非常必要去关注这些技术,对未来特别重要。JSP 与 微软公司的 ASP 技术有着异曲同工之妙。ASP技术和JSP技术都提供在 网页代码中,比方说现在的HTML5,混合某种JAVA程序代码、由Servlet容器引擎解释执行JAVA程序代码。在 ASP 或 JavaServer Pages 环境下, HTML5 代码主要责任是描述用户参数的外部样式,逻辑关系的处理我们一般交给嵌入的程序代码来完成,一般会是或者EL、JSTL。在传统的前端编程技术中,我们的Web容器一般只处理HTMl代码,不会去处理程序代码,但是现在的JSP或者是ASP页面,我们需要附加的编程语言处理器引擎去分析和执行出现在网页中的代码。页面经过语言引擎重新处理之后,将视图结果重新布局在HTML页面上面,然后一起从客户端发送到服务器端,所以我们的JSP或者是ASP技术就是一种JAVA代码或者是C+代码。 Web 服务器的技术目前比较流行的有ASP 和 JSP 两种技术,浏览器这种客户端浏览器一般不需要其他额外的支持,还和之前一样。这个URL就是/products/jsp/index.html ,我们可以进入这个网址去访问sun公司javaserver pages的主页 ,JSP规范可以去这里下载,特别是一些配置文件Web.xml,我们的servlet容器引擎一般需要到这里去配置,但是对于一些常规的配置,我们可以通过去复制规范里面的代码去实现。 传统的html页面我们一般有浏览器就可以执行,但是现在的jsp页面因为里面有Java代码,那么我们的服务器端就需要添加引擎去特别处理jsp页面的翻译工作。Sun公司提供的是 JavaServer Web Development Kit ( JSWDK )。为便于学习,我们在平时的工作中可以直接取这些规范里面的实例,然后放置到我们的项目中。安装 JSWDK 之后,我们去到安装目录执行 startserver 命令帮助我们启动服务器。去到server.xml去配置我们的引擎监听8080端口,使用 http:/localhost:8080 即可打开默认的页面。 在运行 JSP 示例页面之前,tomcat服务器相比很多人都知道,我们的web服务器一般都是通过这个服务器运行的。同时这款服务器也是免费的。我们一定要记住一个目录,这个目录叫做 JSWDK, 这个文件目录通常放在我们安装tomcat服务的目录里面,商城的web系统在开发的过程中,我们一般会关注“work”这个文件目录,java编译器编译生成的class文件一般都放在这个小小的子目录里面。提交index.jsp网页的时间,jsp页面会被servlet容器控制引擎翻译成.java文件,之后会被服务器的编译器翻译成 class 文件(即 Servlet )。 在学习web开发的过程中,我们不仅要了解web前端的jsp页面设计,而且还需要有业务代码实现的能力,至于说这些开发步骤都是定的东西,学会了都会很简单。Java的 官方软件包中的页面一般分为两类,第一种就是常见的 javaserver pages 文件,这种文件一般是java文件,后面会被引擎编译生成.Class的文件,或者是包含一个form表单的 HTML5 文件,这些form表单均由 JSP 代码进行逻辑处理,之后就会被提交到服务器上面。与 ASP技术 一样,这种基于html的编码风格,都是需要引擎进行编译,编译之后才会被提交,而不像html那样静态的直接提交。 JSP 中的逻辑性 Java 代码均被放在服务器端进行执行。因此,在火狐浏览器中右击鼠标使用查看源文件条目是无法看到 JSP 的原始代码,只能看到已经处理好的 HTML 代码。同样目录里面,还有一个examples文件里面包含着所有的实例代码。下面我们来看一下目录截图:图5.1 安装目录5.2 Spring MVC的应用关于SPRING MVC,这个技术是和WEB应用开发密切相关的一种技术,同样目前也是最最流行的技术,许多的商城系统就是使用这种技术。从最初的时候我们使用JSP技术,到现在之前我们还使用过struts1和struts2,还有就是wicket这些技术,真是百花齐放。在WEB 管理上,我们一般都会使用这些框架结构来实现我们的web应用。现在有许多的MVC框架,SPRING MVC在表现力上面或许不是最出色的UI框架,但是毫无疑问,它的实现过程确是非常的清晰明了和方便简单,平时,spring mvc的实现经常使用到一些注解Controller,因此它的MVC处理过程的确是非常的清晰明了,从这点上看,spring mvc的确是非常的优秀,值得我们研究学习。除了AOP技术之外IOC容器就Spring的另外一个关键性技术,接下来我们通过一个例子来体现他们的实现过程,在传统的Web应用环境中,Spring IOC容器是会被加载并实现到Web容器环境中。因此我们可以看到,MVC的实现过程,主要是通过IOC容器来实现,AOP控制反转的特性也会使用到一些但不是非常多。Web容器要想使用Spring必须对它进行一些必要的配置,初始化过程,IOC容器会被web容器建立和导入,之后会在Web环境中建立。 类似于Spring IOC的初始化工作,loadBeanDefinition类回去载入BeanDefinition。在Web环境中,Resource定位我们一定要认真要对待,这个是来自与BeanDefinition类方法的,我们可以去参考getDefaultConfigLocations方法的处理。在这个方法里面我们可以看到,BeanDefinition的默认配置路径被使用,路径配置文件可以去XmlWebApplicationContext中查看,进入到这个里面去寻找相应的常量,官方是放在了WEB-INF/applicationContext.xml这个目录文件里面。下面来看看DispatcherServlet和MVC的实现 :我们之前的工作首先建立了IOC容器在Web容器环境中的建立,基础的工作就是对ContextLoaderListener方法的初始化,接下来 DispatcherServlet的初始化会在Web容器中创建,再接下来,Web容器回去初始化DispatcherServlet管理的的IoC容器,初始化过程处理完之后,一个新的context上下文就会在web容器中建立,与此同时DispatcherServlet持有的context上下文,会被当做web根目录的上下文方便访问。拦截器初始化工作完成之后,会在context上下文中成立一个映射关系,这种映射关系会发挥作用,在前端url请求提交到服务器的时候,MVC可以通过这种映射关系去寻找对应的handler控制器方法去处理视图的url请求。所以我们可以认为,这里的web容器根目录的一个上下文和这个根上下文context是对应的关系,一般通过DispatcherServlet的initStrategies实现的,这个类方法的实现工作主要是去配置,而控制器持有的context是和Servlet一一照应的一个上下文,所以在Web系统程序里面,通常情况下会出现多个servlet context;这种上下文可以方便request方便的去访问一些公共变量。那么,应用在Web容器环境中的上下文体系,是相等的,一个web根上下文可以作为前面Servlet上下文的上级上下文context。这里介绍的Spring MVC框架,实际上是DispatcherServlet拦截器的协调工作,处理器方法完成业务处理之后,便会把ModelAndView对象作为后台数据处理的结果返回给前端视图。最后,DispatcherServlet方法控制器把返回的模型数据ModelAndView或者是其他的,可以是ModelMap参数对象、ModelAttribute注解去实现,交给特定的JSP或者Asp视图对象,视图呈现工作就会再次通过EL或者JSTL在jsp页面中进行呈现。视图处

温馨提示

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

评论

0/150

提交评论