基于JSP的网上订餐系统的设计与实现
基于JSP 的网上订餐系统的设计与实现
JSP-based online ordering system
毕业设计(论文)外文摘要
目 录
第一章 引言 . .................................................................................................... - 1 -
1.1 课题研究的意义和背景 . ................................................................... - 1 - 1.2 问题的定义与简介 . ........................................................................... - 1 - 1.3 可行性分析 . ....................................................................................... - 2 - 1.4课题的调研 . ........................................................................................ - 2 - 1.5 论文各章简介 . ................................................................................... - 2 - 第二章 需求分析 . ............................................................................................ - 3 -
2.1 功能需求 . ........................................................................................... - 3 - 2.2 功能模块分析 . ................................................................................... - 3 - 2.3 性能需求 . ........................................................................................... - 3 - 第三章 系统设计 . ............................................................................................ - 4 -
3.1 数据概念结构设计——E-R 模型 .................................................... - 4 - 3.2 数据逻辑结构设计——关系模型 . ................................................... - 6 - 3.3 数据结构优化——关系规范化 . ....................................................... - 6 - 3.4 开发环境和运行环境设计 . ............................................................... - 7 - 第四章 详细设计 . .......................................................................................... - 10 -
4.1 会员功能的设计与实现 . ................................................................. - 10 - 4.2 管理员功能的设计与实现 . ............................................................. - 18 - 4.3 主要问题及其解决方案 . ................................................................. - 19 - 第五章 用户手册 . .......................................................................................... - 19 -
5.1 系统功能简介 . ................................................................................. - 19 - 5.2 系统运行环境与系统安装 . ............................................................. - 19 - 5.3 系统操作指南 . ................................................................................. - 19 - 结 论 . ............................................................................................................ - 20 - 致 谢 . ............................................................................................................ - 21 - 参 考 文 献 . .................................................................................................. - 23 -
第一章 引言
1.1 课题研究的意义和背景
计算机已经变得十分普遍了,人们已经渐渐离不开计算机了,如同我们离不开的自行车、汽车一样。餐饮行业是一个具有悠久历史的行业,但大部分餐饮企业的运作管理模式仍基本沿袭传统的方法。依靠人工录写菜单,然后由跑菜员将菜单送入厨房,房依据菜单制作菜肴,再由服务员将菜肴送至顾客。但随着社会的不断进步,生活节奏的不断加快。这种传统的运作模式已经面临挑战,人们没有那么多的时间等待,尤其是当代学生和一些白领。他们更愿意的是来到饭店美味的菜肴已经等着他们更或者已经将菜肴送至办公室或者宿舍。
民以食为天,人们一日三餐,消费者对食的需求比较大,因此市场比较大,如果能在个性化和专业化上做好文章,一定能够经营成功。就本系统而言,随着电脑的普及,为学生在网络上进行购物提供有利的条件。而一个网络订餐系统可以为学生提供软件条件,这样学生便可以足不出户的买菜品了。商家可以从中获得利润,两全其美。
目前国内较为成熟的、成体系的餐饮预订类网站为数不多,主要集中有京城的请客800、饭统网;上海的订餐小秘书,大众点评等
据《2010年中国餐饮业研究报告》显示,中国餐饮行业规模2009年增长11%,达到约2万亿人民币,增长率比2008年的16%有所下降。就外出就餐而言,中国的消费者比美国消费者更为保守。如此巨大的餐饮市场,随着市场竞争的不断加剧和互联网信息技术的的快速发展,餐饮业也在不断的寻求营销模式的创新。随着网购观念的普及,网络购物已经渐成网民消费生活的习惯。
另据iResearch 艾瑞市场咨询今年对中国网上旅行预计市场的轿车统计,2006年中国网上旅行预订用户较2005年增产72.1%,达275万人,占中国网民的2%。其中通过互联网预订过九点的用户达70.2%,预订过机票的用户占70.7%、预订了度假产品的占20.3%。预计2008年中国网上旅行预订用户达570万人,2010年将有900万人采用网上预订方式预订旅游产品及服务,占整体网民的3.5%。
参考以上数据可以看出,国人随着社会的发展生活习惯也在改变。随着互联网技术的不断发展和完善,网上订餐必将是未来的发展趋势。
1.2 问题的定义与简介
网上订餐系统就是基于上述现状而开发出来的,该设计是基于互联网的B/S模式的网上订餐系统,系统运用JSP 技术,数据库采用MySQL 5,以Tomcat 6为Web 服务器。
1.3 可行性分析
1.3.1经济可行性
费用:本系统采用开源软件编写,基本费用为零。
效用:使用系统可以给餐厅带来长期利益,它可以极大的提高工作效率,减少管理的支出。从而保证餐厅的持续稳定发展因此在经济上是完全可行的。
1.3.2技术可行性
硬件:现有设备的性能完全能够满足该系统对所需的硬件设备,如服务器、pc 机等系统功能的要求。
软件:本系统采用JSP 开发技术。在国外,己经大量使用JSP 作为网络应用程序的开发工具,而在国内,尽管JSP 还不是主流开发技术,但是由于JSP 的强大优势,许多网站都已经准备转向JSP ,利用JSP 来开发动态网站。数据库我们采用MySQL 服务器则用Tomcat 6,开发工具采用MyEclipse 。这些软件在中小型管理系统开发中已被大量应用,技术上都比较成熟,因此技术上是可行的。
1.3.3管理可行性
本系统管理简单,只需定时更新下菜单、定时管理订单,操作简捷、方便。因此是可行的。
通过以上分析,开发网上订餐系统是完全可行的。
1.4课题的调研
为了能够使在线订餐系统集能过顺利的进行,并能适用于其他、中小型餐饮企业,现做了详细的调查。目前,餐饮企业还没有完全的信息化,网络化。数据信息传输依旧为手动模式。虽然酒店的现有系统的手动操作,可以向客户提供餐饮服务,但也有如下薄弱环节:
(1)现行的系统的是手动操作,操作人员操作大量的数据、传输不及时,统计和计算容易出错,工作效率低。 (2)业务流程管理不紧密。
(3)向客户提供手写清单,消费者常发生在字迹清晰,并没有统一的格式。 (4)客人消费单据难以保存和查询。 (5)个别服务员作弊,更改订单,欺骗。
1.5 论文各章简介
本文主要围绕着基于JSP 的网上订餐的设计与实现而展开的。
第一章引言。分析的开发网上订餐系统的意义与背景,说明了研发的课题,并分析的研发课题的可行性。
第二章需求分析。在上一章可行性分析的基础上,论述了该系统的需求分析。分别进行了业务流分析,数据流分许及数据字典。
第三章系统设计。在需求分析的前提下对在线订餐系统进行系统设计,设计系统的总体结构、数据库结构,确定系统的开发环境和运行环境。
第四章详细设计。对系统中各个子系统的结构,子系统中主要模块的功能、接口、界面设计、详细设计。
第五章用户手册。对在线订餐系统功能、主要性能、运行环境和安装方法进行简介,并提供系统的操作指南。
第二章 需求分析
2.1 功能需求
餐厅角色:(1)菜单管理:每个店的管理员可以通过此平台发布各自的菜单,可以修改菜单和删除菜单。(2)查看订单:每个店的管理员可以通过此功能随时地了解客户对各种餐饮的订购状况。
会员角色:(1)个人信息管理:会员可以通过此功能修改并完善个人信息(2)订单管理:会员通过此功能可以管理自己订购的餐饮。具体如下:
A 、查看订单:查看自己已订购的餐饮。 B 、删除订单:退订已订购的餐饮。 C 、修改订单:对订单进行修改。
管理员角色:管理员可以对会员及餐饮店的信息密码进行修改删除等。
2.2 功能模块分析
订餐管理:订餐管理模块主要是顾客可以根据自己的需要随意点餐并一次性可购买指定数量。在顾客点完餐之后快速的计算出消费金额。
订单管理:该模块主要对订单信息进行管理。记录了订单中的一些基本信息包括用户账号、订单内容、总消费金额。并且拥有订单删除以及查看用户信息功能。
菜谱管理:每个餐厅的管理员可以对当前的菜谱进行修改和删除功能,同样也能添加菜谱。
2.3 性能需求
1.有效性要求
有效性主要体现在信息系统的组成部分失败的程度,以满足业务性能要求。例如,信息系统组件故障导致连接失败,但造成质量指标下降,平均延时增加,线路堵塞现象。
2.完整性要求
从未经授权的功能信息的完整性,不能改变。在存储过程中的信息是不是意外或故意删除,修改,伪造,随机播放,插入损坏和缺失的功能。
3.适应性的要求
如用户错误操作,或经营环境发生了变化(例如,从Windows 98升级到Windows 2000,该系统可以继续适用),系统应能够适应新的连接,及时,方便,简单的系统更新。
第三章 系统设计
3.1 数据概念结构设计——E-R 模型
根据以上系统分析, 该系统的E-R 图如下:
3.2 数据逻辑结构设计——关系模型
在E - R 图向关系模型转换的过程中,注意灵活性,消除冗余数据,并考虑到用户对系统的要求,下列关系模型:
会员(会员编号,会员名,登录密码,地址,电话,年龄,性别); 菜单(菜单编号,菜单名,价格,基本描述); 订单(订单编号,顾客名,菜单列表,总价);
3.3 数据结构优化——关系规范化
通过以上的分析和设计,并结合数据库设计的原则,设计出如下三张表:
1) T-course 表为菜单信息表,该表存储该系统所有的菜单的信息,详见表3-1:
表3-1 T-course 表
2)
T-Form 表为订单信息表,该表存储了该系统中所有由顾客提
交的订单的信息,详见表3-2: 表3-2 T-form 表
3) User-chen 表为注册会员信息表,该表存储了该系统所有注册会员的会员详细信息,详见表3-3:
表3-3: User-chen 表
3.4 开发环境和运行环境设计
经过分析本系统采用SUN 公司的JSP 开发技术,采用B/S结构,使用MyEclipes 作为开发环境。数据库采用MySQL 5,同时以Tomcat 6为Web 服务器。
3.4.1 JSP技术
JSP 技术简介:
JSP(Java Server Page服务器网页) 是从1998年开始出现的新技术。由Sun 公司倡导、许多公司参与一起建立的一种动态网页技术标准,是基于JavaServlet 以及整个Java 体系的web 开发技术。在传统的网页HTML 文件(*.htm,*.html)中加入脚本片段和JSP 标记(Tag),构成JSP 网页(*.jsp)。JSP 作为Java 家族的一员,承袭了Java 的特点,即跨平台的特性,也即一次编译,到处运行。
JSP 体系结构:
JSP 网站开发标准给出了两种使用JSP 的技术:
model1:jsp 页面独自响应请求并将处理结果返回客户,这里面使用了表达与内容的分离,其中数据存取都是由bean 来完成的。
model2: MVC 标注模式,JSP 用于view 展示,Servlet 用于control ,M 代表业务领域模型层。
JSP 的特点:
(1)一次编写,到处运行 (2)系统的多平台支持 (3)强大的可伸缩性
(4)多样化和功能强大的开发工具支持 (5)支持服务器端组件
基于以上优点我选择JSP 技术来开发此程序。
3.4.2 B/S模式
随着WEB 的兴起出现了一种网络结构模式B/S结构(Browser/Server,浏览器/服务器模式),客户端最主要的应用软件是WEB 浏览器。这种模式统一了客户端,使服务器集中实现系统功能的核心部分,使系统的开发、维护和使用简单了。客户机上只要安装一个浏览器(Browser ),如Netscape Navigator或Internet Explorer ,服务器安装Oracle 、Sybase 、Informix 或 SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互。 这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。
3.4.3 MyEclipse 介绍:
Eclipse 是一个开源代码的、基于Java 的可扩展的开发平台。尽管Eclipse 是使用Java 语言开发的但他的用途并不限于Java 语言。例如,支持诸如C/C++、COBOL 和Eiffel 等编程语言的插件已经可用,或预计会推出。
MyEclipse 是Eclipse 的插件,也是一款功能强大的J2EE 集成开发环境,支持代码编写、配置、测试以及除错。利用它我们可以在数据库和程序的开发、发布,以及整合方面极大的提高工作效率。
3.4.4 MySQL 数据库:
MySQL 是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB 公司。目前MySQL 被广泛地应用在Internet 上的中小型网站中。由于他的体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,我们为了才选择MySQL 作为网站数据库。
MySQL 数据库的优点:
MySql 的核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活地为用户提供服务,而不过多的系统资源。用多线程和C 语言实现的MySql 能很容易充分利用CPU 。
MySql 可运行在不同的操作系统中。简单地说,MySql 可以支持Windows95/98/NT/2000以及UNIX 、Linux 和SUN OS 等多种操作系统平简单地说,MySql 可以支持Windows95/98/NT/2000以及UNIX 、Linux 和SUN OS等多种操作系统平台。这意味着在一个操作系统中实现的应用可以很方便地移植到其他的操作系统下。
MySql有一个非常灵活而且安全的权限和口令系统。当客户与MySql 服务器连接时,他们之间所有的口令传送被加密,而且MySql 支持主机认证。 MySql支持ODBC for Windows。MySql 支持所有的ODBC 2.5函数和其他许多函数,这样就可以用Access 连接MySql 服务器,从而使得MySql 的应用被大大扩展。
MySql支持大型的数据库。虽然对于用PHP 编写的网页来说只要能够存放上百条以上的记录数据就足够了,但MySql 可以方便地支持上千万条记录的数据库。作为一个开放源代码的数据库,MySql 可以针对不同的应用进行相应的修改。
MySql拥有一个非常快速而且稳定的基于线程的内存分配系统,可以持续使用面不必担心其稳定性。事实上,MySql 的稳定性足以应付一个超大规模的数据库。
强大的查询功能。MySql 支持查询的SELECT 和WHERE 语句的全部运算符和函数,并且可以在同一查询中混用来自不同数据库的表,从而使得查询变得快捷和方便。
3.4. 5 Tomcat介绍:
Tomcat 是Apache Jakarta 软件组织的一个子项目,Tomcat 是JSP/Servlet容
器,是Sun 公司的JSWDK 基础上发展起来的一个JSP 和Servlet 规范的标准实现。
Tomcat 既可以和别的服务器组合使用,如和Web 服务器组合使用或与EJB 容器Jboss 组合使用,也可以单独作为Web 服务器使用。
3.4.6 运行环境
第四章 详细设计
4.1 会员功能的设计与实现
会员的主要功能为登录(注册),修改个人信息,订餐等。 4.1.1会员登录界面如图4.1所示。
图4.1登录界面
图4.2为用户登录程序的流程图:
图4.2用户登录流程图
当会员输入正确的会员名和密码时,将会登录成功进入会员登录成功界面(loginSuccessed.jsp 界面)如图4.3:
图4.3登录成功界面
当用户输入的用户名或密码不正确时,将会进入登录失败界面(error.jsp )如图4.4:
图4.4登录失败界面
部分代码:
if (action.equals("/login")) {
//比较用户填写的number1与 //session当中预先绑订的number2 //如果相等,则比较用户名和密码。 //如果不等,提示用户验证码错误
String number1 = request.getParameter("number" ); HttpSession session = request.getSession();
String number2 = (String)session.getAttribute("number" ); if (!number1.equals(number2)){
request.setAttribute("checkcode_error", " 验证码错误" ); request.getRequestDispatcher("login.jsp" ).forward(request,
response);
return ; }
String username = request.getParameter("username" ); String password = request.getParameter("password" ); { UserDAO dao = new UserDAO(); try { password = MD5Util.getMD5Str (password); boolean is = dao.login(username, password); if (is) { request.setAttribute("username" , username); session = request.getSession();
session.setAttribute("login" , username);
RequestDispatcher rd = request .getRequestDispatcher("loginSucceed.jsp" );
}
}
rd.forward(request, response); } else { request.setAttribute("username" , username); RequestDispatcher rd = request .getRequestDispatcher("error.jsp" ); rd.forward(request, response); }
} catch (Exception e) { e.printStackTrace(); }
4.1.2用户注册
会员注册内容包括用户名,密码,真实姓名,年龄,地址,电话,性别。其中用户名,密码,真实姓名及年龄不能为空。如图4.5:
图4.5注册信息为空的界面
其中用户名必须为数字字母下划线组成(4-32位) ,密码必须为数字字母下划线组成(6-32位) ,年龄必须为1~3位数字。如图4.6:
图4.6注册信息不正确界面
正确填写信息并注册成功如图4.7,4.8所示:
图4.7正确填写注册信息
图4.8注册成功
部分代码:
if (action.equals("/regist")) { String username = request.getParameter("username" ); UserDAO dao = new UserDAO(); try { User user = dao.findByUsername(username); if (user == null ) { user = new User(); user.setUsername(username); user.setAddress(request.getParameter("address" )); user.setAge(Integer.parseInt (request.getParameter("age" ))); user.setGender(request.getParameter("gender" )); user.setName(request.getParameter("name" )); user.setPhone(request.getParameter("phone" )); String password = request.getParameter("password" ); user.setPassword(MD5Util.getMD5Str (password)); dao.save(user); request.setAttribute("username" , username); RequestDispatcher rd = request .getRequestDispatcher("registSucceed.jsp" ); rd.forward(request, response); } else {
request.setAttribute("regist_error", " 用户名已存在" );
RequestDispatcher rd = request .getRequestDispatcher("regist.jsp" ); rd.forward(request, response); }
} catch (Exception e) { e.printStackTrace(); throw new ServletException(e);
淮海工学院二
〇一二届本科毕业设计(论文)
}
}
4.1.3 修改个人信息
在修改个人信息功能中,我们可以修改个人的姓名,年龄,电话,地址,性别。如图4.9所示:
图4.9用户信息修改界面
修改密码如图4.10所示:
图4.10更改用户密码界面
部分代码:
(1)个人信息修改: