dr-helper项目设计介绍(一个包含移动端和Web端的点餐管理系统)

一、源码路径

https://github.com/weiganyi/dr-helper

 

二、界面

通过浏览器访问Web服务,可以看到界面如下:

dr-helper项目设计介绍(一个包含移动端和Web端的点餐管理系统)_第1张图片dr-helper项目设计介绍(一个包含移动端和Web端的点餐管理系统)_第2张图片

ADT-Bundle编译工程生成dr-helper.apk,安装后可以看到应用界面如下:

dr-helper项目设计介绍(一个包含移动端和Web端的点餐管理系统)_第3张图片dr-helper项目设计介绍(一个包含移动端和Web端的点餐管理系统)_第4张图片dr-helper项目设计介绍(一个包含移动端和Web端的点餐管理系统)_第5张图片

 

三、背景

Java诞生后主要就是用于Web开发,随着Android的兴起,其在移动领域也应用广泛。我在学习了Java相关的一系列技术后,想找个项目来实际运用一下。因此我考虑可以基于Java相关的技术来构建一个包括移动端和Web端的餐厅管理系统,在这个项目里我会综合运用各种的技术,并尽量使它们贴合使用场景。

这个系统会服务于餐厅里的三类角色,首先是点餐服务员,他们采用手机Android APP来进行点餐操作。其次是厨房的厨师,他们将采用Web服务来获取点的菜品,菜品完成后可以通过Web服务给点餐服务员发送上菜通知。最后是收银台的管理员,他们也是通过Web服务来进行相关的订单管理,比如付款操作,以及整套系统的其他管理工作。

在技术方案上包括了移动前后端和Web前后端,移动前端就是一个Android应用,移动后端采用Tomcat容器Servlet来提供服务,两者通过JSON消息交换数据,这样能够降低两者交互的数据量。Web后端也是采用的Tomcat容器Servlet来提供服务,然后通过JSP来生成前端Web页面。

在数据库选择上,对于传统关系性较强且数量有限的数据,我选择用Mysql来存储,而对于像订单这种可能数量巨大的数据,我选择用Mongodb来存储,这样能充分利用各自的优点。

 

四、功能实现

1、Android端支持如下功能

基本功能:登录/注销、主页、查桌、开桌、查单、订单、菜单、点菜、转台、并台、更新、配置

通知功能:空桌通知、上菜通知

2、Web端支持如下功能

基础功能:登录/注销

厨房功能:下单菜品管理、完成菜品管理

柜台功能:订单管理(含结帐,通过单号、桌号查询)、用户管理、餐桌管理、菜单类别管理、菜单管理、配置管理

 

五、总体设计思路

1、数据库设计

1)其中dr_user表存储用户帐号信息,dr_table表存储餐桌信息,dr_menu_type表存储菜品类型信息,dr_menu表存储菜品信息,dr_option表存储配置选项信息,这5个表为关系型表,使用Mysql数据库存储。它们的具体字段如下:

create tabledr_user(

    user_id int(4) not null primary keyauto_increment,

    user_name char(255) not null,

    user_passwd char(255) not null,

    user_auth enum('waiter', 'chef', 'admin')not null);

create tabledr_table(

    table_id int(4) not null primary keyauto_increment,

    table_num int(4) not null,

    table_seat_num int(4) not null,

    table_empty int(1) not null);

create tabledr_menu_type(

    menu_type_id int(4) not null primary keyauto_increment,

    menu_type_name char(255) not null);

create tabledr_menu(

    menu_id int(4) not null primary keyauto_increment,

    menu_name char(255) not null,

    menu_price int(16) not null,

    menu_type_id int(4) not null);

create tabledr_option(

    option_id int(4) not null primary keyauto_increment,

    option_name char(255) not null,

option_value char(255) not null);

2)还剩下一个dr_order为非关系型集合,使用Mongodb数据库存储,包含订单信息,它的结构如下:

dr_order:{"id":"xxx", "order":1, "table":1,"waiter":"xxx", "time":"xxx","admin":"xxx", "pay":true,"detail":[{"menu":"xxx", "price":12,"amount":1, "chef":"xxx","finish":true, "remark":"xxx"}]}

3)Mysql和Mongodb数据库的连接参数等信息,存储在后台的properties配置文件。

4)部分数据库存储操作使用了存储过程,这些可以在项目目录下的drhelper_db数据库目录里的数据库备份文件中可以查看到。

2、Android前端应用设计

1)其每项基本功能都由一个Activity和一个AsyncTask构成,Activity加载布局xml来构造操作界面。当用户执行某个操作后,需要执行通信对象的JSON序列化,向后台发生HTTP请求,等待HTTP响应,响应消息执行JSON反序列化,根据结果进行反馈处理。这一系列的处理由于有网络通信在其中,实际执行时间可长可短,所以Activity要启动一个AsyncTask线程来执行这些后台操作,以避免Activity执行超过5秒报异常的问题,也吻合界面与逻辑处理要线程分离的通用思想。

2)对于两个通知功能,空桌通知和上菜通知,我需要实现一个消息推送机制,Android客户端需要创建和维持与后台的TCP长连接消息推送通道。实现方案是这样,用户启用通知订阅后,先创建一个Service,然后在Service里再创建一个线程,这是因为Android的Service可能和Activity处于同一个线程执行,这种TCP长连接任务需要有独立线程来执行,所以要再启动一个线程。在这个线程里创建一个与后台推送服务的TCP Socket,发起登录请求消息,并定期发送心跳消息来维持TCP长连接,还要根据Android客户端的通知预定配置发起通知预定请求消息。当通过这个Socket收到后台的通知推送消息后,再发起HTTP请求去获取具体的通知内容,收到响应后根据通知类型发出相应的Android通知消息。这里有一些异常情况需要处理,比如当服务端退出时需要检测出来并直接退出Service,这时没有再进行重登录尝试是因为,当服务端退出后除了这个通知服务的登录信息没有外,整个应用的登录信息也没有了,所以这时需要退出整个应用并重登录,当应用重登录后也会再发起通知服务的登录。另外,当用户根据通知订阅操作界面关闭通知功能时,要能中断通知Service自身。还有由于Android手机可能会杀死后台的服务线程,所以需要在这种情况下需要发送一个广播消息给Service,由Service重新拉起服务线程。

3)对于Activity的退出,采用注册广播接收程序的方式实现。当用户退出登录时,会发出退出广播,Activity堆栈的各个Activity收到后,就各自退出并销毁自身,Service的退出实现也类似。

4)应用需要频繁读取的两个表是dr_menu_type和dr_menu,并且这两个表不会发生频繁的变化,所以把它们存储一份在Android的SQLite里,这样能够显著的节省与后台的数据交换量,然后通过专门的更新功能,来与后台同步这两个表的数据。在实现上通过ContentProvider机制来封装对底层SQLite的访问,以实现对业务层接口的友好。

5)对于已经登录的帐号信息,服务器地址、通知订阅等配置信息,都存储在首选项里,并根据选项菜单进行配置。

3、Web前端设计

1)采用单页式网站风格,点击页面的按钮或者链接,通过Ajax请求来向后端提交数据,并获取新生成局部页面,最后把局部页面更新到对应的位置。相关的JS操作采用Jquery库来进行,以取得较好的浏览器兼容性。

2)在HTML页面的构造上,采用JSP脚本来完成。根据后台Servlet逻辑处理完后生成的Java Bean对象,在JSP文件内,通过Java脚本或者JSTL等JSP技术,获取Java Bean对象拼装成所需要的HTML页面。

4、Java后台服务设计

1)通过Tomcat容器的Servlet来进行后台处理,为实现MVC,Servlet里只进行消息内容提取、服务调用和消息转发等控制逻辑,具体的业务逻辑在对应的Service里进行,包括对数据库的操作。

2)对数据库的操作通过一个代理进行,这样能够屏蔽两种数据的差异,给上层以统一的数据操作接口。

3)在消息推送服务后台实现上,采用创建一个servlet的上下文监听器,这样这个监听器就可以在Tomcat容器启动时调用,容器退出时才退出。再在这个监听器里创建一个线程,这个线程监听一个TCP Socket,当有来自Android客户端的连接时,创建处理连接并管理起来。当业务逻辑触发到有空桌事件或上菜事件时,通过Android客户端的预定通知列表,找到对于的处理连接,发送通知推送消息来通知Android客户端获取具体的通知内容。在与Android客户端的连接维护上,除了需要回应Android客户端的心跳消息外,还需要启动定时器来检测心跳消息的存在,当检测到无心跳消息时表明相应的Android客户端已经异常退出,这时就需要清除这个失效的连接。

4)为了能够在响应消息中传送中文字符,需要设置响应消息的编解码方式为UTF-8,这对于每个Servlet都需要进行,所以就创建一个过滤器来统一做这个设置。

5)不论是移动端还是Web端,前台用户信息的保存,由于其都是基于HTTP协议进行前后台通信的,所以采用cookie来完成。在后台处理上,Servlet有封装的session对cookie的处理提供了支持,直接使用就行了。

6)在服务部署上,使用nginx做反向代理,把请求转发到后端的tomcat服务器上进行处理。这也是常用的部署方式,因为目前系统文件比较少,所以没有把图片等静态资源放到nginx下这种动静分离的做法。

 

六、文件及目录介绍

Android\:移动端目录

Android\libs\:支持包目录

Android\res\drawable-hdpi\:应用的图片目录

Android\res\layout\:布局xml文件目录

Android\res\menu\:系统菜单布局xml文件目录

Android\res\values\:字符串定义文件目录

Android\src\com\drhelper\activity\:Activity文件目录

Android\src\com\drhelper\activity\AfterLoginActivity.java:登录前Activity通用功能,其他Activity继承这个Activity

Android\src\com\drhelper\activity\BeforeLoginActivity.java:登录后Activity通用功能,继承于AfterLoginActivity,其他Activity继承这个Activity

Android\src\com\drhelper\activity\ChangeTableActivity.java:换台页面的Activity

Android\src\com\drhelper\activity\CheckOrderActivity.java:查单页面的Activity

Android\src\com\drhelper\activity\CheckTableActivity.java:查桌页面的Activity

Android\src\com\drhelper\activity\CreateTableActivity.java:开桌页面的Activity

Android\src\com\drhelper\activity\LoginActivity.java:登录页面的Activity

Android\src\com\drhelper\activity\MainActivity.java:主页面的Activity

Android\src\com\drhelper\activity\MenuActivity.java:菜单显示页面的Activity

Android\src\com\drhelper\activity\OrderActivity.java:订单显示页面的Activity

Android\src\com\drhelper\activity\OrderMenuActivity.java:菜单操作页面的Activity

Android\src\com\drhelper\activity\PrefsActivity.java:偏好配置页面的Activity

Android\src\com\drhelper\activity\UnionTableActivity.java:并台页面的Activity

Android\src\com\drhelper\activity\UpdateActivity.java:更新页面的Activity

Android\src\com\drhelper\bean\:Java Bean对象目录

Android\src\com\drhelper\bean\MenuItem.java:菜单显示页面的菜单项Bean

Android\src\com\drhelper\bean\MenuList.java:菜单显示页面的菜单列表Bean

Android\src\com\drhelper\bean\com\:前后台通信的Java Bean对象目录

Android\src\com\drhelper\bean\com\EmptyTable.java:查桌页面的通信对象

Android\src\com\drhelper\bean\com\EmptyTableList.java:查桌页面的通信对象

Android\src\com\drhelper\bean\com\Login.java:登录页面的通信对象

Android\src\com\drhelper\bean\com\MenuList.java:更新页面的通信对象

Android\src\com\drhelper\bean\com\MenuTypeList.java:更新页面的通信对象

Android\src\com\drhelper\bean\com\NoticeDetail.java:获取通知的通信对象

Android\src\com\drhelper\bean\com\NoticeHeartBeat.java:通知心跳的通信对象

Android\src\com\drhelper\bean\com\NoticeLogin.java:通知登录的通信对象

Android\src\com\drhelper\bean\com\NoticeLogout.java:通知注销的通信对象

Android\src\com\drhelper\bean\com\NoticePush.java:通知消息的通信对象

Android\src\com\drhelper\bean\com\NoticeSubscribe.java:通知预定的通信对象

Android\src\com\drhelper\bean\com\OneTableOneOrder.java:包含一个桌号和一个订单号的通信对象,可用于多处

Android\src\com\drhelper\bean\com\OrderInfo.java:订单信息的通信对象

Android\src\com\drhelper\bean\com\TwoTableOneOrder.java:包含两个桌号和一个订单号的通信对象,可用于多处

Android\src\com\drhelper\entity\:数据库对象目录

Android\src\com\drhelper\entity\Detail.java:订单集合中detail字段对应的对象

Android\src\com\drhelper\entity\Menu.java:菜单表对应的对象

Android\src\com\drhelper\entity\MenuType.java:菜单类型表对应的对象

Android\src\com\drhelper\entity\Order.java:订单集合对应的对象

Android\src\com\drhelper\provider\MenuProvider.java:菜单和菜单类型表的ContentProvider封装实现

Android\src\com\drhelper\service\NoticeService.java:通知服务客户端实现

Android\src\com\drhelper\task\:AsyncTask实现目录

Android\src\com\drhelper\task\ChangeTableTask.java:换台功能的任务

Android\src\com\drhelper\task\CheckOrderTask.java:查单功能的任务

Android\src\com\drhelper\task\CheckTableTask.java:查桌功能的任务

Android\src\com\drhelper\task\CreateTableTask.java:开桌功能的任务

Android\src\com\drhelper\task\DeleteOrderTask.java:删除订单功能的任务

Android\src\com\drhelper\task\LoadOrderTask.java:订单加载功能的任务

Android\src\com\drhelper\task\LoginTask.java:登录功能的任务

Android\src\com\drhelper\task\SubmitOrderTask.java:提交订单功能的任务

Android\src\com\drhelper\task\UnionTableTask.java:并台功能的任务

Android\src\com\drhelper\task\UpdateTask.java:更新功能的任务

Android\src\com\drhelper\util\CookieManager.java:Cookie功能实现

Android\src\com\drhelper\util\DialogBox.java:提示框功能实现

Android\src\com\drhelper\util\HttpEngine.java:HTTP通信机制实现

Android\src\com\drhelper\util\PrefsManager.java:偏好管理对象

Server\:服务端目录

Server\drhelper_db\drhelper_mysql_db.sql:Mysql数据库备份文件

Server\drhelper_db\drhelper_mongodb\drhelper\:Mongodb数据库备份文件目录

Server\tomcat\jsp\:JSP文件目录

Server\tomcat\res\drhelper.css:项目的CSS文件

Server\tomcat\res\drhelper.js:项目的JS文件

Server\tomcat\res\jquery-1.10.1.js:Jquery库的JS文件

Server\tomcat\WEB-INF\lib\:支持包目录

Server\tomcat\WEB-INF\src\DBConfig.properties:数据库配置信息文件

Server\tomcat\WEB-INF\src\com\drhelper\android\:Android后台服务实现目录

Server\tomcat\WEB-INF\src\com\drhelper\android\bean\NoticeEvent.java:通知服务内部使用的通知事件对象

Server\tomcat\WEB-INF\src\com\drhelper\android\bean\UserSocketChannel.java:通知服务内部使用的用户名和连接映射对象

Server\tomcat\WEB-INF\src\com\drhelper\android\bean\com\:前后台通信的Java Bean对象目录,与Android目录中对应目录相同

Server\tomcat\WEB-INF\src\com\drhelper\android\listener\NoticeServerListener.java:通知服务上下文监听器实现

Server\tomcat\WEB-INF\src\com\drhelper\android\server\NoticeServer.java:通知服务后台实现

Server\tomcat\WEB-INF\src\com\drhelper\android\service\:Android后台业务逻辑实现目录

Server\tomcat\WEB-INF\src\com\drhelper\android\service\ChangeTableService.java:换台功能业务逻辑实现

Server\tomcat\WEB-INF\src\com\drhelper\android\service\CheckOrderService.java:查单功能业务逻辑实现

Server\tomcat\WEB-INF\src\com\drhelper\android\service\CheckTableService.java:查桌功能业务逻辑实现

Server\tomcat\WEB-INF\src\com\drhelper\android\service\CreateTableService.java:开桌功能业务逻辑实现

Server\tomcat\WEB-INF\src\com\drhelper\android\service\DeleteOrderService.java:删除订单功能业务逻辑实现

Server\tomcat\WEB-INF\src\com\drhelper\android\service\GetNoticeService.java:获取通知功能业务逻辑实现

Server\tomcat\WEB-INF\src\com\drhelper\android\service\LoadOrderService.java:加载订单功能业务逻辑实现

Server\tomcat\WEB-INF\src\com\drhelper\android\service\LoginService.java:登录功能业务逻辑实现

Server\tomcat\WEB-INF\src\com\drhelper\android\service\LogoutService.java:注销功能业务逻辑实现

Server\tomcat\WEB-INF\src\com\drhelper\android\service\Service.java:后台业务逻辑抽象类

Server\tomcat\WEB-INF\src\com\drhelper\android\service\SubmitOrderService.java:提交订单功能业务逻辑实现

Server\tomcat\WEB-INF\src\com\drhelper\android\service\UnionTableService.java:并台功能业务逻辑实现

Server\tomcat\WEB-INF\src\com\drhelper\android\service\UpdateMenuService.java:更新功能业务逻辑实现

Server\tomcat\WEB-INF\src\com\drhelper\android\service\UpdateMenuTypeService.java:更新功能业务逻辑实现

Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\:Android后台控制逻辑Servlet实现目录

Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\ChangeTableServlet.java:换台功能Servlet实现

Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\CheckOrderServlet.java:查单功能Servlet实现

Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\CheckTableServlet.java:查桌功能Servlet实现

Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\CreateTableServlet.java:开桌功能Servlet实现

Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\DeleteOrderServlet.java:删除订单功能Servlet实现

Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\GetNoticeServlet.java:获取通知功能Servlet实现

Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\LoadOrderServlet.java:加载订单功能Servlet实现

Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\LoginServlet.java:登录功能Servlet实现

Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\LogoutServlet.java:注销功能Servlet实现

Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\SubmitOrderServlet.java:提交订单功能Servlet实现

Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\UnionTableServlet.java:并台功能Servlet实现

Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\UpdateMenuServlet.java:更新功能Servlet实现

Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\UpdateMenuTypeServlet.java:更新功能Servlet实现

Server\tomcat\WEB-INF\src\com\drhelper\android\util\LogicException.java:程序逻辑异常对象

Server\tomcat\WEB-INF\src\com\drhelper\android\util\TypeConvert.java:String和ByteBuffer对象转换辅助类

Server\tomcat\WEB-INF\src\com\drhelper\common\:后台通用功能实现目录

Server\tomcat\WEB-INF\src\com\drhelper\common\db\DataBase.java:数据库基类

Server\tomcat\WEB-INF\src\com\drhelper\common\db\DBManager.java:数据库操作代理对象

Server\tomcat\WEB-INF\src\com\drhelper\common\db\MongoDB.java:Mongodb数据库操作对象

Server\tomcat\WEB-INF\src\com\drhelper\common\db\MysqlDB.java:Mysql数据库操作对象

Server\tomcat\WEB-INF\src\com\drhelper\common\entity\:数据库对象目录,与Android目录中对应目录相同

Server\tomcat\WEB-INF\src\com\drhelper\common\filter\ServletFilter.java:Servlet过滤器实现

Server\tomcat\WEB-INF\src\com\drhelper\web\:Web后台服务实现目录

Server\tomcat\WEB-INF\src\com\drhelper\web\bean\:用于给JSP页面提供数据的Java Bean对象目录

Server\tomcat\WEB-INF\src\com\drhelper\web\bean\AdminMenu.java:菜单管理页面菜单对象

Server\tomcat\WEB-INF\src\com\drhelper\web\bean\AdminMenuObject.java:菜单管理页面对象

Server\tomcat\WEB-INF\src\com\drhelper\web\bean\AdminMenuTypeObject.java:菜单类型管理页面对象

Server\tomcat\WEB-INF\src\com\drhelper\web\bean\AdminOptionObject.java:配置管理页面对象

Server\tomcat\WEB-INF\src\com\drhelper\web\bean\AdminOrder.java:订单管理页面订单对象

Server\tomcat\WEB-INF\src\com\drhelper\web\bean\AdminOrderObject.java:订单管理页面对象

Server\tomcat\WEB-INF\src\com\drhelper\web\bean\AdminTableObject.java:餐桌管理页面对象

Server\tomcat\WEB-INF\src\com\drhelper\web\bean\AdminUserObject.java:用户管理页面对象

Server\tomcat\WEB-INF\src\com\drhelper\web\bean\FinishMenu.java:完成菜品管理页面菜品对象

Server\tomcat\WEB-INF\src\com\drhelper\web\bean\FinishMenuObject.java:完成菜品管理页面对象

Server\tomcat\WEB-INF\src\com\drhelper\web\bean\IndexObject.java:首页对象

Server\tomcat\WEB-INF\src\com\drhelper\web\bean\LoginObject.java:登录对象

Server\tomcat\WEB-INF\src\com\drhelper\web\bean\LogoutObject.java:注销对象

Server\tomcat\WEB-INF\src\com\drhelper\web\bean\OrderMenu.java:下单菜品管理页面菜品对象

Server\tomcat\WEB-INF\src\com\drhelper\web\bean\OrderMenuObject.java:下单菜品管理页面对象

Server\tomcat\WEB-INF\src\com\drhelper\web\bean\PageInfo.java:页号对象

Server\tomcat\WEB-INF\src\com\drhelper\web\service\:Ajax后台业务逻辑实现目录

Server\tomcat\WEB-INF\src\com\drhelper\web\service\AjaxAdminMenuService.java:菜单管理业务逻辑实现

Server\tomcat\WEB-INF\src\com\drhelper\web\service\AjaxAdminMenuTypeService.java:菜单类型管理业务逻辑实现

Server\tomcat\WEB-INF\src\com\drhelper\web\service\AjaxAdminOptionService.java:配置项管理业务逻辑实现

Server\tomcat\WEB-INF\src\com\drhelper\web\service\AjaxAdminOrderService.java:订单管理业务逻辑实现

Server\tomcat\WEB-INF\src\com\drhelper\web\service\AjaxAdminTableService.java:餐桌管理业务逻辑实现

Server\tomcat\WEB-INF\src\com\drhelper\web\service\AjaxAdminUserService.java:用户管理业务逻辑实现

Server\tomcat\WEB-INF\src\com\drhelper\web\service\AjaxFinishMenuService.java:完成菜品管理业务逻辑实现

Server\tomcat\WEB-INF\src\com\drhelper\web\service\AjaxLoginService.java:登录功能业务逻辑实现

Server\tomcat\WEB-INF\src\com\drhelper\web\service\AjaxLogoutService.java:注销功能业务逻辑实现

Server\tomcat\WEB-INF\src\com\drhelper\web\service\AjaxOrderMenuService.java:下单菜品管理业务逻辑实现

Server\tomcat\WEB-INF\src\com\drhelper\web\service\IndexService.java:首页业务逻辑实现

Server\tomcat\WEB-INF\src\com\drhelper\web\service\Service.java:业务逻辑抽象接口

Server\tomcat\WEB-INF\src\com\drhelper\web\servlet\:Ajax后台控制逻辑Servlet实现目录

Server\tomcat\WEB-INF\src\com\drhelper\web\servlet\AjaxAdminMenuServlet.java:菜单管理控制逻辑Servlet实现

Server\tomcat\WEB-INF\src\com\drhelper\web\servlet\AjaxAdminMenuTypeServlet.java:菜单类型管理控制逻辑Servlet实现

Server\tomcat\WEB-INF\src\com\drhelper\web\servlet\AjaxAdminOptionServlet.java:配置项管理控制逻辑Servlet实现

Server\tomcat\WEB-INF\src\com\drhelper\web\servlet\AjaxAdminOrderServlet.java:订单管理控制逻辑Servlet实现

Server\tomcat\WEB-INF\src\com\drhelper\web\servlet\AjaxAdminTableServlet.java:餐桌管理控制逻辑Servlet实现

Server\tomcat\WEB-INF\src\com\drhelper\web\servlet\AjaxAdminUserServlet.java:用户管理控制逻辑Servlet实现

Server\tomcat\WEB-INF\src\com\drhelper\web\servlet\AjaxFinishMenuServlet.java:完成菜品管理控制逻辑Servlet实现

Server\tomcat\WEB-INF\src\com\drhelper\web\servlet\AjaxLoginServlet.java:登录功能控制逻辑Servlet实现

Server\tomcat\WEB-INF\src\com\drhelper\web\servlet\AjaxLogoutServlet.java:注销功能控制逻辑Servlet实现

Server\tomcat\WEB-INF\src\com\drhelper\web\servlet\AjaxOrderMenuServlet.java:下单菜品管理控制逻辑Servlet实现

Server\tomcat\WEB-INF\src\com\drhelper\web\servlet\IndexServlet.java:首页控制逻辑Servlet实现

Server\tomcat\WEB-INF\src\com\drhelper\web\util\ServiceUtil.java:业务逻辑辅助功能类

Server\tomcat\WEB-INF\src\com\drhelper\web\util\ServletUtil.java:Servlet控制逻辑辅助功能类

 

七、部署方法

1、源码下载后,用Eclipse编译Server目录下的服务端源码,用adt-bundle编译Android目录下的移动端源码。

2、在服务器上安装部署Nginx和Tomcat,配置Nginx把所有请求转发到Tomcat,同时安装部署好Mysql和Mongodb。

3、在tomcat/webapps下建立项目目录drhelper,然后把Server/tomcat目录编译生成的文件拷贝到drhelper下。

4、把Server/ drhelper_db目录下的数据库备份文件分别导入Mysql和Mongodb。

5、把Android目录下编译生成的apk文件安装到手机上。

6、通过手机上的应用可以正常访问系统的移动部分,使用服务员角色相关功能,同时通过浏览器也可以访问系统的Web部分,使用厨师和管理员角色相关功能。

(完)

你可能感兴趣的:(java,mongodb,软件设计,web服务,android应用)