无线点餐项目启动
最近在与高校合作培训的时候,做了一个小项目,无线点餐系统。该系统主要用于学习用途,综合了JavaWeb开发的底层技术,采用JSP+Servlet+MySQL数据库实现开发,虽然这种开发模式在现在的开发中已经很少使用了,但对于初学者来说,学习JavaWeb底层技术还是有一定的帮助的。项目采用MVC思想进行项目的开发,适合入门级JavaWeb的各位朋友们,大神请略过。今天写的第一篇博文主要是关于项目的启动,介绍项目的背景、项目中所用到的技术、软件等等。话不多说,我们先看博文。
无线点餐平台项目实战课程
版本说明 |
|||
Rev |
Date |
By |
Comment |
V1.0 |
2014-11-18 |
Leo Chen |
文档创建 |
V2.0 |
2014-11-30 |
Leo Chen |
文档完善 |
1、项目前期
1.1 项目背景
随着我国国民经济的快速发展,人民生活水平不断提高,生活节奏的加快促使越来越多的人外出点餐。传统的餐饮行业,一般都是餐厅服务员人工完成的,过程为顾客进入餐厅坐下后,服务员点菜,然后菜单交给厨师,厨师开始做菜,这过程在小饭馆可以,大饭馆就不行了。中国传统的餐饮行业由于其差强人意的服务品质和复杂的点菜程序,亟待进行信息化的改造。通过信息化的手段不仅能提升餐饮行业的服务质量和工作效率,还可以降低成本增加收益。无线点餐项目平台包括餐厅管理员后台管理、顾客自助点餐服务、厨房下单管理、网上餐厅服务等子系统。主要功能包括:菜系管理、菜品管理、餐桌管理、会员管理、订单管理、顾客点餐、结账、网上餐厅服务。
1.2 需求分析
需求分析就是分析软件用户的需求是什么.如果投入大量的人力,物力,财力,时间,开发出的软件却没人要,那所有的投入都是徒劳.如果费了很大的精力,开发一个软件,最后却不满足用户的要求,从而要重新开发过,这种返工是让人痛心疾首的.(相信大家都有体会)比如,用户需要一个for linux的软件,而你在软件开发前期忽略了软件的运行环境,忘了向用户询问这个问题,而想当然的认为是开发for windows的软件,当你千辛万苦地开发完成向用户提交时才发现出了问题,那时候你是欲哭无泪了,恨不得找块豆腐一头撞死.
需求分析之所以重要,就因为他具有决策性,方向性,策略性的作用,他在软件开发的过程中具有举足轻重的地位.大家一定要对需求分析具有足够的重视.在一个大型软件系统的开发中,他的作用要远远大于程序设计.
无线点餐平台项目的需求分析参见:无线点餐需求文档.doc
2.开发
2.1技术、技能分析
2.1.1项目中的技术技能点
①JSP/Servlet(JavaEE技术)
②反射技术实现web应用程序架构解耦
③餐品图片上传(文件上传)
④MySql数据库技术
⑤餐厅订单、网上下单,餐车的实现
⑥SVN项目项目管理
2.1.2 项目所用技术、软件
编号 |
工具 |
版本 |
说明 |
1. |
Servlet |
2.2 |
作为web控制器 |
2. |
JSP |
2.2 |
显示页面数据信息 |
3. |
c3p0 |
0.9.2 |
管理数据库连接 |
4. |
DbUtils |
1.4 |
进行数据库持久化操作 |
5. |
Apache fileupload |
1.2.1 |
文件上传工具 |
6. |
Junit |
4.0 |
单元测试 |
7. |
MySql |
5.5.X |
存数数据 |
8. |
SVN |
1.6 |
开发版本控制软件 |
2.2 开发环境
操作系统 |
Windows 7 |
|
开发工具 |
MyEclipse 2014 |
|
数据库 |
mysql-5.5.67-win32 |
|
Web容器 |
Tomcat 7.0 |
|
JDK |
1.7 |
|
浏览器 |
Firefox |
2.3开发约定
2.3.1 关于编码
工程、页面、数据库编码统一编码为UTF-8
WindowàPreferencesàGeneralàWorkspace里面可以修改工作空间的缺省编码
2.3.2 包结构命名约定
公司名称+项目名称+用途命名 具体命名如下:
包名 |
说明 |
cn.wirelessplatform.dao |
Dao接口 |
cn. wirelessplatform.dao.impl |
Dao的实现类 |
cn. wirelessplatform.service |
Service接口 |
cn. wirelessplatform.service.impl |
Service的实现类 |
cn.wirelessplatform.web.controller |
Web中的Servlet控制器 |
cn.wirelessplatform.web.listener |
Web监听器 |
cn.wirelessplatform.util |
存放工具类 |
cn.itcast.wirelessplatform.model |
实体类 |
2.3.3 页面相关
l JSP、CSS、JS文件独立分开、命名相同
l 在HTML代码中不要嵌入任何的JS代码
l 管理员后台页面建议把页面放到Web-INF下
l 用户页面建议放到WebRoot下, 通过防盗链解决安全性问题
2.3.4 数据库相关
建立表注意事项说明:
1. 如果MySQL是绿色版,则先设置MySQL的编码,把编码配为UTF8
2. 数据库中建议不要设置自定义约束,和非空约束, 这样可能会给开发和测试带来不便, 而且在真正投入使用时, 数据的非空约束是依靠前台和后台的验证来实现,数据库只负责存储
3. 数据库数据尽量不要删除, 可以增加一个状态列, 这样方便以后恢复数据
4. 软件开发中,为了提高表性能,尽量不要设置外键, 表关系也更灵活
5. 在编写SQL语句的时候最好写完整语法 (列名,列名) values (值,值) 有利于维护, 否则后期增加字段前面的语句就用不了
2.4.软件三层架构回顾以及MVC开发模式
2.4.1 三层架构模式图
分层注意事项:
1. 上面调用下面,即View调用Service,Service调用Dao。
2. 层与层之间用接口。除定义的接口外,不能使用其它层的特有类或接口。
3. 使用实体作为DTO(Data Transfer Object,数据传输对象)
4. 要做到任一层换掉后,其他层不受影响。
2.4.2 MVC开发模式剖析:
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。MVC编程模式详解参见:MVC开发模式详解.doc
3.项目开发环境搭建
3.1 安装JDK
我们做java程序的开发就需要为java程序提供编译和运行的环境,这时候就需要用到JDK(Java Development Kit)Java开发工具包,我们使用的版本是1.7。【安装教程参照:JDK1.7安装教程.doc】
3.2安装开发工具MyEclipse2014
项目程序开发就需要用到专业的集成开发工具,我们使用MyEclipse,目前的版本是2014版。【安装教程参考:MyEclipse2014安装教程.doc】
3.3安装Web服务器Tomcat
当我们的程序开发好后,我们需要将程序提供给外界访问,那么怎么提供给外界访问呢?这时候就需要一台服务器了,我们使用Tomcat,版本是7.
Tomcat的安装很简单,直接解压就可以了。
3.4安装数据库服务器MySQL
程序开发好后,我们的数据存放在哪里呢?在软件行业中有一句话叫“数据是无价的”,那么数据放在哪里好呢?这时候我们就需要使用到MySQL数据库服务器来存储数据了。【安装教程参考:MySQL安装图解.doc】
3.5安装MySQL数据库管理工具SQLyogEnt
程序直接解压即可。
3.6安装项目版本控制工具SVN(学习项目开发可以不用安装)
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。项目开发中使用SVN作为团队协同开发以及项目版本控制 【安装教程参考:svn服务器端安装说明.doc,MyEclipse安装svn插件的方法.doc】
4.在MyEclipse中搭建项目
4.1修改MyEclipse的workspace编码
WindowàPreferencesàGeneralàWorkspace里面可以修改工作空间的缺省编码
4.2 新建项目
项目名称为:wirelessplatform
FileàNewàWeb Project新建web项目
点击Next进入下一步的配置:
点击Next下一步配置
最后配置要注意:
红色框起来的要勾上,让其生成web.xml配置文件,点击Finish生成项目。
4.3 添加项目所需的jar包
项目中所采用的开发软件等安装教程,请点击这里下载
项目中所用到的jar包请点击这里下载。