1、南京邮电大学通达学院毕 业 设 计(论 文)题 目:校园在线订餐网站的设计和实现 专 业: 软件工程 学生姓名: 班级学号: 12003227 指导教师: 指导单位: 计算机学院、软件学院 _ 日期:2015年 12月 1日至 2016年 6月 12日本人郑重声明:所提交的毕业设计(论文),是本人在导师指导下,独立进行研究工作所取得的成果。除文中已注明引用的内容外,本毕业设计(论文)不包含任何其他个人或集体已经发表或撰写过的作品成果。对本研究做出过重要贡献的个人和集体,均已在文中以明确方式标明并表示了谢意。 论文作者签名: 日期: 年 月 日摘 要吃在人们生活中一直占据重要地位,俗话说“国以民
2、为本,民以食为天”,餐饮行业在第三产业中一直占有重要地位,从国家统计局数据显示,餐饮行业市场体量巨大。近年来,随着互联网日新月异的发展速度,B2C到O2O不仅仅改变的是行业的营销模式,还影响了一代人甚至几代人的消费习惯。而餐饮作为高频的需求,与人们的生活息息相关。在“互联网+”的深入发展下,人与食物的距离已经在外卖、生鲜电商和半成品食材电商所提供的解决方案下不断缩短。本文详细论述了基于Java的校园点餐系统的设计开发过程。系统采用的开发工具是MyEclipse,开发语言是JAVA,mysql作为数据库,实现了订餐,商品管理,账号管理等功能。本系统也运用了丰富的前后端框架,如SpringMVC,
3、iBATIS,jQuery,Bootstrap,EasyUI等,简化了开发困难,丰富了开发内容,同时也使代码变得更规范。关键词:餐饮行业;O2O;校园点餐;Java;SpringMVC IVABSTRACTEating is the big event of peoples life, as the saying goes, The country serving the community, food security for the first, the food industry in the tertiary industry has alwaysbeen occupies an im
4、portant position, according to theNationalBureauof Statistics, food industry market size is huge.Recently, with the advancement of the Internet wave, B2C to O2O does not just change the marketing mode of the industry, also affected the generation or even several generations of spending habits. And r
5、estaurant serves as the demand of the high frequency, is closely related to peoples life. In the further development of Internet +, Take-away, fresh food e-commerce and semi-finishedfoodmateriale-commerce provide solutions make the distance of the people and the food more and more short.Mypaperdiscu
6、ssesthedevelopinganddesignprocessindetailofthecampus online-ordering-systembasedonJava.ThissystemusesMyEclipseasadevelopmentplatform, Javaasthedevelopmentoflanguage,MySqlasthedatabase, toachieve the function of order a meal, commodity management, account management, and so on. The system also used a
7、bundant software framework, such as SpringMVC, iBATIS, jQuery, Bootstrap, EasyUI. These framework make the development easier, the content more rich and the code more specification.Key Words: The food industry;O2O;Campus order;Java;SpringMVC目 录第一章 绪论11.1课题研究背景和意义11.2课题研究现状11.3论文的组织结构3第二章 技术介绍52.1 Ja
8、va Web介绍52.1.1主要框架52.2系统框架介绍62.2.1 SpringMVC62.2.2 iBATIS92.2.3 JQuery102.2.4 Bootstrap112.2.5 EasyUI122.3 HTML语言122.3.1由来132.3.2定义132.3.3语言特点132.3.4整体结构142.4 本章小结14第三章 需求分析与总体设计153.1开发的时代背景153.2功能需求153.2.1买家购买153.2.2商品管理153.3总体设计153.3.1用户登录163.3.2 卖家功能163.3.3买家功能163.4本章小结17第四章 设计与实现184.1 用户登录184.2功
9、能模块设计194.2.1卖家模块204.2.2买家模块214.3 SpringMVC配置214.4本章小结24第五章 系统演示与测试265.1买家界面演示与测试265.1.1系统主界面265.1.2买家登陆界面275.1.3买家注册界面285.1.4商品购买285.1.5个人中心305.2卖家界面演示和测试315.2.1登陆界面315.2.2 用户管理325.2.3商品管理325.2.4商品分类335.2.5订单评价335.2.6通知公告345.3本章小结34结束语35致 谢36参考文献37第一章 绪论1.1课题研究背景和意义在这个信息科技快速发展的时代,互联网已经基本融入我们的生活当中。信息
10、科技的更新日新月异。B2C模式过渡到O2O模式改变的不仅仅是行业内营销的模式,还影响了大多数人的消费使用习惯。俗话说得好:“民以食为天”,餐饮行业在我国一直占有着重要的地位。李克强总理曾经提出的“互联网+”的发展概念就为O2O外卖行业的高速发展带来了新的春天。根据CNNIC发布的第36次中国互联网络发展状况统计报告显示,截止至2015年6月,中国网民的数量高达6.68亿,互联网的普及率接近百分之五十,和2014年底相比上升了0.9%。7月30日,“易观智库”发布的中国互联网餐饮外卖市场2015上半年专题研究报告显示,2015年上半年中国的互联网餐饮外卖市场的订单规模呈现了一种高速增长的趋势,成
11、交金额超过了120亿元。相对来说,餐饮外卖平台的用户多是80、90后年轻人,其中学生更是餐饮外卖的一个大的用户群体。因此,校园在线订餐系统的开发成为了改变大学生校园快捷生活,为学生省下更多的时间学习的必要研究课题。校园在线订餐系统应该充分利用互联网带来的优势,使传统餐饮流程以一个简洁、直观的方式展现到网页上,并且利用可视化界面使餐品的管理和购买流程变得方便、快捷,不仅要大大缩短传统餐饮的复杂过程,无需排队,购买便利,而且卖家管理起来也变得更方便,使学生的用餐效率能有所提高,也减轻了餐饮管理人员的负担。这样一来,面对传统的流程以及杂乱的订单管理和人员安排,在线订餐系统的优势也显而易见,方便了学生
12、也方便餐厅。同时从接受能力强的大学方面入手,从而逐渐推广在线订餐到大众,这也是我们加速实现信息化、现代化和国际化的重要步骤之一。1.2课题研究现状 在我国的一个大环境下,在线订餐的模式最早出现在20世纪90年代的末期。早在1998年的时候,广州等以吃闻名的大城市已经出现了网上订餐业务。2000年7月,北京丽华快餐公司为追求新模式的经济发张方式,选择了探索餐饮业在网络上经营的道路,然后就推出了网上订餐的模式,成为探索网上订餐的行业的探路者。国内的外卖市场发展到了现在,基本上形成了这样的一个市场格局:“饿了么”和“美团”遥遥领先,占领了第一阵营,位列第二梯队的“淘点点”和“百度外卖”也在开拓创新、
13、不断赶超,剩下的外卖平台百花齐放,各有优势。以第一梯队的和第二梯队的“饿了么”等公司现状来分析,目前这些平台各有优劣:饿了么:从国内卓越的互联网数据统计分析公司“易观国际”的分析结果来看,占据外卖市场第一位置的“饿了么”以30.58%的占比摇摇领先,它的先发优势是其它外卖平台不具备的,这个优势不单是进入到网上外卖行业的时间节点,还有用户心中先入为主的一个形象,所以“饿了么”成为了外卖行业的一个代名词。“饿了么”在网络外卖行业中惯性了网络订餐的模式,让用户和商家都养成了一个线上下单、推销的习惯。美团:能力出众、身经百战的“美团”连续创业者王兴带领他的团队成员做出来的成果是我们有目共睹,出色的“地
14、推”能力带来的不仅是品牌效应,同时在网络团购上面也坐实了国内的团购平台老大的地位,同时也给了他外卖上的业务带来了大量的客户资源和品牌口碑,但是它有一个比较其他外卖平台的更长的业务种类,这也是一个不可忽视的问题目前“美团”已经包含了了外卖、团购、电影、旅游、酒店等多个模块,在不同的业务中都有不同的竞争对手,同时还要面对新对手的加入,各行业虎视眈眈的情况下做到这样真是一个大成功。淘点点:第二梯队的淘点点虽然名声不是很响亮,但是他的靠山你肯定如雷贯耳,作为“阿里系”的一员从来不用担心资金和客户量的不足,更不用担心大服务平台的建设。即便如此,如今“淘点点”拓展的城市也只有20多个,和“饿了么”和“美团
15、”的200多个城市的规模相比就屈指可数了,因为他们主要打造的是服务性的平台,而且这也是他们擅长的地方,从自己的优势入手做成移动餐饮的生活服务性平台,最终造就一个餐饮界的淘宝也不是梦想。百度外卖:国际大品牌百度的涉及业务之广是众所周知的,根据“易观国际”数据的分析来看,百度外卖以非常迅速的扩张趋势来弥补它进入角逐的时间晚的劣势,到现在已经覆盖了八十多个城市。根据百度的一贯作风,它总是可以另辟蹊径,在外卖平台上建立起了属于自己的物流团队:“百度骑士”来保证送餐的速度,刚刚好满足了用户点外卖的初衷:方便。虽然国内外卖O2O百家争鸣外卖,但是也是从国外的多个平台借鉴而来的。外卖O2O模式最早的发源地是
16、欧美,并且由于时间的优势现在运作的已经非常的成熟。欧美的外卖平台相比较中式的外卖平台差异很大,目前在欧美地区比如Yelp、Just Eat、Grub Hub等多家外卖公司都已经成功的上市:Yelp Platform:Yelp Platform是美国的公司也是大众点评的借鉴对象,也就是说它是一个可以点评、社交和移动一个平台,它的用户主要在平台上对商家进行点评和打分。Yelp在2013年的时候开始用推广Platform平台的方式来尝试着经营订餐的业务。主要的盈利方式是商业广告等,目前不仅成功上市,而且市值超过30亿美金。Just Eat:21世纪初就在丹麦创办了,仅仅五年就扩展到了英国,从而奠定了
17、它在英国的在线订餐网的领先地位,它主要靠收取加盟店的上架费用和每个订单的分成盈利,并且它还拥有一个线下流程向没有外卖业务的餐厅提供服务,而且以收购的方式快速的扩张,仅仅2013年一年,他的平台处理的订单数就达到了4000万份。两年前Just Eat就在伦敦证券交易所上市了,目前估值14.7亿英镑。Grub Hub:Grub Hub是美国首屈一指的外卖平台。它的用户主要通过电脑或手机登录该平台查找所选择地区附近的加盟店,然后选择所选商家提供的商品后进行下单。加盟店在第一时间就会收到提醒,然后配置餐品自行配送到目的地。它的平台是供用户免费使用的,主要来靠它加盟商的收入分成盈利。在2013年完成了和
18、Seamless的正式合并以后成功上市,目前市值达到37亿美金。国内外的订餐业务的区别也是很明显的:国外的用户正常的餐品都是汉堡、披萨之类的一些快餐食品,制作和配送起来都比较方便。国内送餐的服务标准和操作难度就上升了一个档次了,中国餐饮类食品种类丰富多样,每个地域都有很大的差别。低门槛的表象需要用高标准的运营、执行能力来支撑,这就要求在外卖领域求生存的团队不仅要有高效的下运营团队和出色的线上服务能力,还要拥有充足的资本来扩张和支撑。所以在客观环境下,中式在线订餐业务必须高举高打,快速的进行融资和扩张,迅速建立起市场第一的地位。相比英美用户成熟的操作习惯,国内市场目前还处在参差不齐的一个发展阶段
19、,尤其在二三线城市中,比如说“饿了么”,迅速的在多轮融资的支持下扩张到260多个城市,加盟的商家多达二十万,高峰期的日订单量达到200多万,因此有相当丰富的资源来建立起自己业内老大的领导地位。虽然“美团网”在14年1月份才刚刚正式退出紫的外卖服务,但是在品牌效应下,也就是其他业务积累的资源的支持下也进行了非常的迅速扩张,目前已经覆盖了250多个城市。这样的扩张速度在国外是无法想象的。1.3论文的组织结构本论文一共有五个章节,图1-1展示了下面几章的内容概要:第一章的绪论主要介绍了本次校园在线点餐系统的课题的要求,目的和意义及论文的组织结构。第二章主要描述了校园在线订餐系统的相关技术原理。第三章
20、主要介绍了本系统的开发目的、应用情景、相关需求以及总体设计。第四章主要介绍校园在线订餐系统的设计与实现,包括界面的详细设计和各功能模块的实现情况。第五章是对软件的实际运行情况的测试和展现。结束语主要介绍开发设计完成之后,对开发设计的总结和未来展望,遇到问题怎样解决,以及后续工作。第一章绪论第二章技术介绍第四章详细设计与系统实现第三章需求分析与总体设计第五章系统演示与测试结束语图1-1 论文组织结构第二章 技术介绍2.1 Java Web介绍Sun Microsystems公司在20世纪九十年代中期正式推出了Java编程的技术,并且仅仅用了二十多年的时间就由一门小小的编程语言发展到在全球范围内通
21、用的大开发平台。因为在计算机行业中的主要公司接受了Java技术的使用,从而导致越来越多的国际技术标准化的组织也开始进行规范使用。Java看中机会并迅速的推广了自己的三大平台:Java SE、Java EE、JavaME,从而给这个世界带来了巨大的革新,由此也给Java开发的团队带来了巨大的商机,让他们有充足的资金再进一步。为了解决关于web互联网领域的相关技术,Java推出了Java web来实现相关功能,Java web有广泛使用的web服务器和使用并不是很多的web客户端两个部分。客户端上面的应用有java applet等,服务器端的应用有Servlet、JSP和许多第三方的框架等等。We
22、b领域的发展因为有Java技术加入散发出磅礴的生机,强大的动力也会使web更进一步。2.1.1主要框架因为Java web发展迅速而诞生了丰富的后台框架大大简化了开发人员的工作,但是它们的底层实现方式还是差不多的:浏览器发送一个请求后,由对应的Servlet或者Filter来进行拦截,然后用MVC的设计模式来进行整体架构的一个设计,相关配置的联系和耦合则用Annotation、约定或 XML配置文件来关联起来,浏览器发送的响应的流程和面向抽象的请求则由基础的Java面向对象的这个特点来实现,视图解析就由JSP、Velocity和FreeMarker等来支持。如今已经淡出开发人员视线的Strut
23、s框架是以J2EE的MVC模式为底层,以Servlet和JSP的技术实现的老牌强大框架。Struts的出现很快的由于它的简单快捷受到相当大的反响,不仅可以充分的满足开发人员最繁琐的应用开发的需求,而且使新开发人员可以快速上手。编程本就是一个赶时间的工作,而且学习的内容繁多啰嗦,而Struts集成了自定义标签、信息资源、JSP、Servlet等一些常用功能,由此让程序员不用重复的去搭建完整的MVC模式,新的开发人员也可以先使用然后慢慢学习原理,不仅节省了大部分时间,还降低了开发门槛,这就是Struts被广泛应用的原因。最近被众多公司广泛使用Struts2也是apache项目下的一个web 框架。
24、虽然它看起来好像是Struts的2.0版本,但实际上是一个全新的完整框架。Struts2 是Struts社区和WebWork合作研发出来的第二代基于MVC开发的具有强大的扩展性的web应用框架。让人们诧异的是Struts2的功能结构更接近之前WebWork而不是名称相近的Struts,但是研发人员声明它会和Struts相似,同时也会比后者更加的快捷方便。Java Server Pages简称JSP,中文叫java服务器页面,从字面上理解就是把页面当作JAVA服务器来使用。就像上面说的,它的底层实现也是同样的原理,即尽量的去使Servlet的实现简单快捷。JSP的实现方式是在常用的HTML文件如
25、.html、. htm中使用Java程序和自定义的标签文件,这样就形成了一个后缀名为.jsp的文件。因为这样编写的Web程序具有很好的跨平台的特性,不只是window操作系统,在其它的诸如Linux之类的系统下也可以运行,由此使得以Sun Microsystems公司领头的诸多公司倡导把JSP打造成一种动态的网页技术标准。由Spring MVC实现的MVC模型是最清晰的,所以它渐渐被众JavaWeb研发公司所接受。它使用Controller连接请求和业务逻辑,而不是其它框架使用的Action。控制器会根据接收到的请求参数执行相关操作然后返回对应的叫做ModelAndView的界面,即一个带有模
26、型的视图,要注意的是模型是Map类型的而不是Object。诸如Struts之类的框架的Action则直接返回视图的名称,相应的模型参数就要用另外的方式进行传递,如HttpServletRequest . setAttribute()、Action本身的属性数据或者是存为Context参数。因为是现在主流框架,所以本次设计就是使用的此框架,下面会进行详细的讲解。2.2系统框架介绍本系统主要使用的Web框架是SpringMVC,与数据库的交互使用的是iBATIS,前端使用的是基于JavaScript的jQuery,UI方面前台使用的是Bootstrap,后台使用的是EasyUI,下面我们逐一介绍这
27、5种主要的框架。2.2.1 SpringMVCSpringMVC框架属于SpringFrameWork的后续产品,是一个基于Java实现Model-View-Controller模式的轻量级框架,它的主要功能是用MVC模式的思想来解除web层的耦合性,基于request-response模型帮助我们用来简化日常的web系统的一个开发。SpringMVC框架是一种MVC框架。它的主要使用核心控制器DispatcherServlet来操作流程的进行;应用控制器其实拆为处理器映射器(HandlerMapping)和视图解析器(ViewResolver),ViewResolver用来管理视图,Hand
28、lerMapping用来管理处理器;页面的跳转、请求的发送则到对应的Controller里面。它提供了非常灵活的、数据验证和数据绑定机制,同时支持文件的上传、本地化的解析等,主要采用约定注释的方式而不是繁琐的配置进行编程,比查看复杂的配置文件更容易熟悉和上手。SpringMVC框架也是一个基于驱动的MVC框架,完全遵循MVC模式的思想把Model、View和Controller进行了很好的分离。SpringMVC主要通过核心控制器DispatcherServlet来调度工作和处理流程,DispatcherSerlvet接收到请求后根据配置映射规则分发给对应的Controller,然后通过开发人
29、员自己配置的映射根据映射处理器Handler mappings来处理请求并返回对应的视图界面。SpringMVC的一个完整的流程处理过程如图2-1所示。图2-1 SpringMVC流程图图2-1只是Spring MVC比较粗浅的执行过程。由图2-1可知,Spring MVC大致的执行流程如下:1、首先用户在浏览器发送请求并且由前端控制器DispatcherServlet接收,然后前端控制器根据请求的内容和条件选择经过配置的对应控制器来处理并把收到的请求转发给它,即以前的业务逻辑控制器部分。2、页面控制器接收到转发的请求之后会对功能进行处理和运行相关逻辑,首先需把请求的参数进行收集、绑定到一个在
30、SpringMVC中的命令对象里面,同时对该对象进行验证,然后将这个对象传递到Service层(业务对象)进行处理;业务对象处理之后控制器将返回模型数据和逻辑视图名,即之前提到的ModelAndView;3、DispatcherServlets接收数据进行控制,根据返回的逻辑视图名选择对应的视图并传入模型数据配合进行视图的渲染、加载资源从而完成界面的展示。4、DispatcherServlets继续执行控制的权利把响应的内容返回到客户端浏览器,以此结束一个流程。SpringMVC撇开如Struts2等框架繁琐的的配置,以更为直白快捷的注解的方式进行相关配置映射关系:Controller:用来表
31、明所在类是一个处理器;CookieValue:把cookie类型的数据绑定到具体Controller中对应方法方法的参数上;ModelAttribute:用于绑定请求的参数到对应的命令对象中;SessionAttributes:写在处理器类的上方,主要用来标明这个存储的属性是session级别的,一般列出了对应的名称的模型属性,比如说如ModelAttribute等,就会被透明的保存到Session当中;Autowired:用来标注成员变量、方法和构造函数,来完成自动装配的工作;Qualifier(serviceImpl) Autowired是根据类型进行自动装配的,如果需要按名称进行装配,则
32、需要配合Qualifier使用;在实现Service接口的ServiceImpl类开始加上Service(serviceImpl)即可完成装配InitBinder:解析请求的参数并通过date bind机制与handler method中的参数做绑定; RequestMapping:用来映射请求到控制器或方法的规则;RequestParam:接收请求参数并绑定到自定义参数上面,requried指参数是否必须要带,true为默认,必须带,false为可以不带;RequestHeader:把接收的请求头中的数据绑定到Controller中对应方法方法的参数上;RequestBody:绑定请求的bo
33、dy体的,用消息转换器(HttpMessageConverter)完成请求报文到对象的转换;ResponseBody:标注该处理方法的返回值是响应体,不加的话返回值一般解析成跳转路径,返回的是数据时要加上,也是用消息转换器进行对象到响应报文的转换;ResponseStatus:返回一个指定的http response状态码以及原因。;ExceptionHandler:注解式声明异常处理器;SpringMVC的优势如下:1、对所有功能有一个直观的角色的划分:DispatcherServlet(前/核心控制器)、HandlerAdapter(处理器适配器)、ViewResolver(视图解析器)、
34、HandlerMapping(处理器映射)、Validator(验证器)、Controller(控制器/处理器)、Form Object(表单对象)、Command(命令对象)、。2、可以很轻松的根据自己需要进行扩展,虽然基本上没有这个必要,而且有一个明确的分工,用起来也很有条理;3、因为使用的命令对象根本就是POJO,所以没必要对框架特定的相关API进行集成,可以把命令对象直接当做业务对象来使用;4、和Spring 的其他框架无缝集成,是其它Web框架所不具备的;5、具有强大的适配性,因为有HandlerAdapter支持,从而可以把任意的类当做处理器进行逻辑处理;6、具有可定制性,可以对H
35、andlerMapping、ViewResolver等相关的功能根据自己需求进行简单的定制;7、提供如绑定机制、数据验证、格式化等强大的功能;8、因为集成了Spring,所以可以使用其提供的Mock对象进行Web层的一个单元测试,并且操作起来非常的简单;9、因为支持本地化和主题的解析,所以搭建的强木可以很容易的切换主体和进行国际化操作。10、提供了丰富的可以共JSP使用的标签库,使用JSP来编写的话会更加的容易。还有比如基于注解的零配置支持、约定大于配置的契约式编程支持、简单的文件上传、RESTful风格的支持等等,总之,SpringMVC的强大是有目共睹的。2.2.2 iBATISiBATI
36、S这个名称是根据“internet”和“abates”组合而来,是Apache公司在2002年启动的一个开源项目,开发目的主要是用来支持.NET和Java的一个持久化的框架,本身也是以SQL映射为基础。iBATIS的是保持数据到持久层的一个框架,它包含了DAO层和SQL映射两个部分,而且还提供了一个用iBATIS开发出来的一个例子JPetStore来使新手更快的理解掌握。和其它的数据库连接框架诸如Hibernate等全套封装起来的ORM比起来,iBATIS则是以一种半封装的ORM的方式来实现的,它最大的特点就是小巧、上手很快。当前iBATIS只支持Ruby、Java和.NET三种语言编写的程序
37、的集成使用。“半自动化”的概念的理解可能有点困难。相对当前行业内主流的ORM(对象关系映射)来说,无论是ApacheOJB还是Hibernate,都是对数据库进行封装,同时提供了从POJO到具体数据库表的一个映射机制。开发人员通常只需要把POJO到哪张数据库表的映射关系定义好,就可以使用项目所集成的数据库框架封装好的方法来对映射的实体类进行操作,既可以完成数据库的增删改查,这样一来,开发人员有时候都不需要对SQL语句有着熟练的应用,因为在调用封装的相关方法后,该框架就会自动生成对应的SQL语句对数据库进行操作。在现在的快节奏社会,这样的快捷开发方式非常的便捷,而且再一次降低开发人员的门槛。但是
38、在某些特定的开发环境下,这种一站式的处理方法却并不适合。iBATIS以一种“半自动化”的姿态高调出现很好的弥补了这个缺陷。这个“半自动化”的含义是对于其它的数据库框架比如说hibernate之类的封装全部操作的相当于“全自动化”的ORM实现的机制来说的,“全自动化”的ORM实现主要靠建立数据库表和POJO的一个映射关系,并且可以根据调用的方法自动生成SQL语句完成对数据库操作,而不是像iBATIS那样的建立SQL语句和POJO的映射,把执行结果封装到对应bean中。从根本上讲,iBATIS主要是用XML格式的文件来配置相关映射和集成框架,然后在配置文件中直接写SQL语句然后对执行结果进行处理,
39、即将定义的对象映射到具体SQL语句执行的结果的方式,因此它使用起来更加的灵活,并且针对不同数据库的专有函数来说,不需要去进行过多处理。对于系统的服务器开发人员来说,使用半封装的iBATIS提供的对象关系映射机制时面对的是一个纯粹的Java对象,这一点和其它框架基本相同。至于具体的对数据库操作的方式,Hibernate是封装好的可自动生成操作语句的方法,iBATIS是自己配置结果映射然后写自己所需的SQL语句。相对于Hibernate等对象关系映射的机制来说,iBATIS就比较繁琐,不仅要对数据库语句有很好的理解,而且代码量也比较多,相关数据库迁移起来也不方便;但是也是因为这样,它才可以更加的灵
40、活,更加的自由化。在这种全封装机制的框架遍地的情况下,iBATIS是必不可少的。2.2.3 JQuery在萨姆.斯蒂芬森开发出更有利于开发人员的Javascript库prototype之后,越来越多的优秀JS库出现在开发人员的视线当中,比如说比较出色的轻量级的JS库JQuery。它有非常强大的兼容性,兼容范围不仅包括了CSS3,还有各式各样的令开发人员非常头痛的冷门或传统的浏览器,比如说IE6.0、Opera9.0等,不过jQuery官方发布消息称后面的2.0+版本就不再提供对IE6/7/8浏览器的支持。jQuery还可以使用户非常快捷的进行html页面的设计和实现,比如说相关动画效果、标签选
41、择,常用函数等等,而且还对和后台进行动态交互的ajax进行了封装,减少了开发人员的代码量,理解起来也很快。jQuery能有现在的地位还有一个最主要的原因是它的API很全面,细节方面写的也很详细,看似没必要,其实对于新开发来说,这是非常重要的,而且对比文档去理解底层实现原理会更加容易,并且还有很丰富的插件可以使用。jQuery的 还让开发人员不需要在html代码中插入JS来实现相关功能和效果,只需要找到标签的id或class就可以分离JS和html进行编程实现。jQuery使用的是命名源于麻省理工学院的MIT许可协议,是一个免费的开源框架,它的核心理念是write less,do more,并且
42、在我看来已经实现的很好了。2006年一月份的时候,一个叫做John Resig的美国人在纽约举行的国际网络研讨会上进行了发布,因此吸引了世界各地的很多JS高手前去加入,然后由Dave Methvin带队进行进一步的完善和实现,直到现在流行在全国的开发人员中,并且世界上访问最多的网页中有百分之五十五的用户使用的是jQuery。jQuery这个词是由是JavaScript和Query组合而来的,词面意思是对JavaScript的查询,也就是辅助JavaScript开发的库。jQuery部分常用实例如下:选择器:$(input) 选取页面上所有 元素。$( input .name) 选取页面上包含c
43、lass为name的全部元素。$(#user) 选取页面上id为user 的元素。$(src) 选取页面上带有 src 属性的全部元素。$( src =javascript:void(0) 选取页面上带有 src值等于 javascript:void(0) 的全部元素。$( src!=javascript:void(0) 选取页面上带有 src值不等于 javascript:void(0) 的全部元素。$( src =/www/) 选取页面上 src值以 /www/ 开头的全部元素。$( src $=end) 选取页面上 src值以 end 结尾的全部元素。事件处理:直接绑定指定事件,事件类型
44、即方法名,支持click、focus、blur、submit等。$(#user).click(function()/这里填写点击后的逻辑);用on来绑定事件,off来解绑事件。从版本1.7.2之后才支持,之前使用的是bind等方法。$(#button).on(click,function()/这里填写点击后的逻辑);AJAX:jQuery $.get() 方法:$.get (请求地址, 返回函数);jQuery $.post() 方法:$. post (请求地址,请求参数,回调函数);jQuery $.ajax() 方法(即我通常使用的方法):$,ajax(url:”xxx”, 请求的地址ty
45、pe:”post”, 请求的方式data:xx:xx,xxx:xxx, 请求的参数async:false, 是否异步请求cache:false, 是否缓存dataType:”json”, 返回值类型success:function(), 请求成功执行方法error:function() 请求失败执行方法);更多的方法和具体如何的使用可以去查询jQuery的API。 2.2.4 Bootstrap Bootstrap是一个基于CSS、JS和html的前端UI框架,最开始出现在Twitter上面,因其简洁美观的界面而非常受欢迎。Bootstrap是一款如同其它框架设计的有相同原则的框架,主要目的就
46、是自由简单,让开发人员的开发更加的高效便捷。它的设计师是来自Twitter的Jacob Thornton和Mark Otto,他们二人用动态的CSS语言Less合作设计出了这个优秀的HTML/CSS框架。因环境所致,大部分小的web开发公司并不会有美工这个的职业,让形象在大多数人心中并不友好的程序员来进行页面的规划还是不现实的,Bootstrap以其优美大方的界面而受众多程序员的欢迎,并且在开源代码库GitHub上一直很热门,包括在美国航空航天局的微软全国广播公司的Breaking News页面用的都是这个框架。在我国的一些移动端的开发人员所熟悉的WeX5等开源UI框架也是对Bootstrap的源码进行优化后设计出来的。Bootstrap中有着非常充足的Web组件,一般的常用组件都有,不常用的也可以基于部分的组件组合而成,具体包括的组件有:分页、进度条、缩略图、下拉菜单、按钮下拉菜单、按钮组、导航、导航条、路径导航等。Bootstrap自还有13个基于jQuery的动态加载的插件,这些插件使Bootstrap中的相关组件更加的灵活。其中就有:模式对话框、下拉菜