订餐系统javaee专业课程设计.doc
《订餐系统javaee专业课程设计.doc》由会员分享,可在线阅读,更多相关《订餐系统javaee专业课程设计.doc(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、网上订餐系统1. 课程设计目当计算机与互联网飞速发展和使用,越来越多公司、单位和个人通过网站提供服务、发布信息、交流知识等使互联网越来越以便咱们生活。在Web开发中,Java语言以其可扩展性、灵活性、可靠性和跨平台等特点,成为进行web编程首选。更重要是,开源社区提供了一大批功能强大框架技术,Structs、Spring、Hibernate等,运用这些技术使咱们更高效维护和建立咱们自己网站同步也让网站开发更加以便和快捷。在这学期课堂上所学到Java知识,可觉得咱们解决某些实际问题能力。运用一周时间,使用Java框架技术完毕网上订餐系统分析设计和开发。有了网上订餐系统,人们可以在家随意挑选自己爱
2、慕食物。当前正是经济全球化时代,运用网络,咱们可以浏览不同地区甚至不同国家商品,这也变化着人们消费观,网上订餐系统正是符合了这一趋势发展,越来越多人可以不出门就能吃上美味可口饭菜。2.设计方案论证2.1需求分析随着科技进步、计算机技术发展,越来越多人选取用网络来满足自己需求,网上订餐浮现,正是体现了这一点。不少商家都把眼观放在了网上销售这一方面,把实体销售徐徐转变为网上销售。当前人们越来越注重节约时间,提高效率,不论是消费者还是商家都如此,有了网上订餐系统,可以让订餐者与餐厅进行互动,足不出户,选取自己爱慕菜品,对与商家而言,这样做节约了成本,不需要为实体店地址而烦恼,这样做对于商家和消费者来
3、说无疑是双赢。2.2系统总体设计本系统为了便于各种操作,采用多页面模式。顾客可在不同网页进行相应操作:在管理员信息表中,涉及数据项:帐号,密码,权限,注册时间。在订餐客户信息表中,涉及数据项:顾客编号,顾客名,密码,姓名,电话,身份证,注册时间等。在菜品信息表中,涉及数据项:菜品编号,菜品名称,菜品价格,内容,类别,添加时间等,每道菜均有它菜名、简介、价格等信息,为了让菜品这些信息在页面有个较好呈现,咱们把这些信息存入菜品信息表中进行维护。在定单列表中,涉及数据项:定单列表编号,顾客名,菜品编号,下单时间等。在购物车信息,涉及数据项:购物车信息唯一标记,食品id,订餐顾客名,添加时间等。当顾客
4、选购菜品放入购物车时,咱们会把这些菜品id、数量、价格记录存入订单关联表中,通过订单关联表中信息算出会员将要支付金额,再通过菜品id这个主健把相应信息存入个人订单这张表中进行维护。为了有效地管理菜品,在新增菜品时加了一种分类属性,在此需要建张分类表进行维护,系统总体功能图如图1所示。后台菜肴价目信息发布餐厅销售记录顾客留言及售后服务前台顾客管理菜单浏览订单管理顾客反馈网上订餐系统图1 系统功能框图2.3 系统流程设计课程设计信息管理系统,涉及顾客注册、管理员登录、菜品查询、菜品详单等。任务执行流程如图2所示。进入系统主界面管理员登录浏览页面顾客注册顾客登录菜品搜索选购商品顾客注册数据库数据库操
5、作页面加入购物车订单查询后台管理系统公示结账注销登录图2 系统流程图2.4 数据库设计该系统是借助MySQL数据库对数据进行统一管理。在网上订餐系统中需MySQL创立数据库“订餐管理系统”, MySQL数据库中数据操作可以分为四种不同类型,分别是添加、删除、查询和修改。该数据库包括表有菜品信息表、管理员表、订单表等。2.4.1菜品信息表菜品信息表,记录系统中菜品信息。把中文转化为汉语拼音,作为字段名。把ID设为主键,且不为空,bianhao、mingcheng、leibie、tupian、jianjie、jiage、faburen、addtime与之有关联,如表1所示。表1菜品信息表字段名类型
6、长度与否为主键与否为空阐明idint11是否菜品编号bianhaovarchar20否是菜品编码mingchengvarchar50否是菜品名称leibievarchar20否是菜品类别tupianvarchar50否是菜品图片jianjievarchar50否是菜品简介faburenvarchar30否是发布人2.4.2 管理员信息表管理员信息表,存储系统中管理员信息。把中文转化为汉语拼音,作为字段名。其中,ID设立为int型,并设为主键,且不能为空;username、pwd设立为varchar型,如表2所示。表2 管理员信息表字段名类型长度与否为主键与否为空阐明IdInt10是否顾客编号u
7、sernameVarchar30否是顾客姓名PwdVarchar30否是顾客密码2.4.3顾客注册信息表顾客注册信息表,记录系统中注册顾客信息。把中文转化为汉语拼音,作为字段名。把ID设为主键,且不为空,zhanghao、mima、ximgming、diqu、zhaopian、issh与之有关联。表3 顾客注册信息表字段名类型长度与否为主键与否为空阐明idint11是否编号Zhanghaovarchar30否是账号mimavarchar20否是密码Xingmingvarchar30否是姓名Diquvarchar50否是地区Zhaopianvarchar50否是照片Isshvarchar10否是
8、备注2.5 重要功能用struts框架中异常解决机制,本系统自定义了异常类SystemException和异常解决类SystemExceptionHandler。在MessageResources.properties中定义需要在Dao中抛出异常时声明内容。在struts-config.xml中配备公共异常解决文献,加入资源文献在Dao中抛出自定义异常。并在公共异常解决页面中使用struts标签进行异常信息显示。顾客模块为封装异常跳转页面如下图3所示:图3在struts-config.xml文献中配备信息如下:在配备文献中可见,异常是以键值对方式在struts1.1中存储,type属性是指异常
9、类,handler属性是指异常解决类,path属性是指浮现异常后跳转错误页面。3. 设计成果与分析3.1订餐系统登录界面设计该系统通过输入顾客名和密码进行登录,登录界面如图4所示。图4 登录界面功能描述:顾客登陆管理,涉及登陆时管理员需要输入顾客名、密码、验证码、也可已选取与否记录顾客名和密码以便后来登录。如果管理员选取记住顾客名和密码则下一次登陆时候只需要输入验证码,即可直接登录。(1) 登录页面控制模块Login有关代码如下:login.jsp:登录页面 /head 订餐系统 public class ALogin public void doLogin ( Hashtable input
10、Data,Hashtable outputData, HttpSession mySession ) throws Exception /获取输入信息 String sUsername = (String)inputData.get(username); String sPassword = (String)inputData.get(password); /校验顾客输入信息LUserlUser=(LUser)GlobalObjectProvider.getLogicService(CommonConst.LOGIC_KEY_USER); /如果相应类没有话,报错并返回login页面 if (
11、 lUser = null ) throw new Exception(顾客名或密码错误请重新输入! ); /获取顾客信息 User userInfo = lUser.getUserInfo( sUsername,sPassword ); if ( userInfo = null ) outputData.put( pageId,CommonConst.VIEWID_LOGIN ); outputData.put( errMsg,顾客名密码检查失败!请重新输入。 ); outputData.put( username,sUsername ); return; Else outputData.p
12、ut( pageId,CommonConst.VIEWID_MENU); /往session中设立顾客信息 mySession.setAttribute( loginUser,userInfo ); return; 3.2订餐系统主页面模块设计顾客可以通过订餐系统主页面进行订餐如图5所示。图5功能描述:顾客登陆管理,涉及(1) 登陆时可以以游客或者会员两种方式进行订餐操作,如果是会员登陆,先前需要录入顾客名、密码、验证码,以便系统确认登陆成功。(2) 会员个人信息管理,会员可以修改个人资料(如:电话,地址等),也可以查看订餐信息,理解当前订餐动态(详见会员登录流程图)。(3) 选购美食,作为顾
13、客,在挑选美食过程中,可以直接将称心美食选进购物车中也可通过一系列查询,进一步理解后,再选取美食(详见选购美食流程图)。选购美食某些代码如下:/得到在Spring中动态注入Service层对象/得到日记对象logpublic ActionForward queryForAll(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) String forward = first;if(request.getParameter(user).equals(manage
14、r)forward = queryDishes ;Food food = new Food() ;List foodList = null ;List topList = null ;int allRecorders = foodService.queryForAllRecorders(food) ;/当不是第一次登陆页面时if(request.getParameter(cp)!=null&request.getParameter(ls)!=null)intcurrentPage = Integer.parseInt(request.getParameter(cp) ;int lineSize
15、 = Integer.parseInt(request.getParameter(ls) ;if(currentPage1&lineSizeallRecorders)currentPage = 1 ;food.setCurrentPage(currentPage) ;food.setLineSize(lineSize) ;foodList= foodService.queryForFood(food) ;else/第一次来到页面,top5和食品图片等信息foodList = foodService.queryForFood() ;int pageSize = (allRecorders + f
16、ood.getLineSize() - 1) / food.getLineSize() ;request.setAttribute(pageSize,pageSize) ;request.setAttribute(allRecorders,allRecorders) ;topList = foodService.queryForTop() ;/下拉列表中信息List foodAttributeList = foodService.querySelectInfo();/传给top10listrequest.setAttribute(topList,topList);/传给视频图片等信息listr
17、equest.setAttribute(foodList,foodList);/传给下拉列表listrequest.setAttribute(foodAttributeList,foodAttributeList) ;return mapping.findForward(forward);一方面判断是从哪个页面跳到到这里来调用这一办法,随着调用者不同,办法也会将最后传播到不同页面中去。然后查询出所有美食记录数,再对与否是第一次登录到此页面进行判断,觉得,第一次登录时当前页数和每页显示行数是默认,而此后登录到此页面时有也许发生变化,最后再用Spring中动态注入服务层中食品类对象调用查询食品信息
18、办法,再将成果通过request对象传播到相应页面中去。public String getFoodInfo(String src) /图片绝对途径String picsrc = null;String foodInfo = null ;/只保存相对途径,将绝对途径去掉String temp = src.split(/);for (int i = 0;i temp.length;i+) /得到图片相对途径picsrc = temptemp.length - 1;Food fd = foodDAO.query(picsrc);foodInfo = fd.getFoodDescription() ;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统 javaee 专业课程 设计
限制150内