酒店销售管理系统-2.系统设计和实战开发

系统设计

开源组件及jar包

       数据库驱动包

       c3p0连接池包

       DbUtil组件

       BeanUtil组件

       FileUpload组件

菜系管理模块开发

 核心处理代码

package cn.cxspace.servlet;

import cn.cxspace.entity.FoodType;
import cn.cxspace.factory.BeanFactory;
import cn.cxspace.service.IFoodTypeService;
import cn.cxspace.service.impl.FoodTypeService;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import java.io.IOException;
import java.util.List;

/**
 * Created by cxspace on 16-6-25.
 *
 * 1.添加菜系
 * 2.菜系列表展示
 * 3.更新菜系 * 4.删除菜系
 */

public class FoodTypeServlet extends HttpServlet {
    //工厂模式拿到service对象
    private IFoodTypeService foodTypeService = BeanFactory.getInstance("foodTypeService", IFoodTypeService.class);
    //控制转发和重定向的uri
    private Object uri;

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          this.doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");

        //获取操作类型
         String method = request.getParameter("method");

         if ("addFoodType".equals(method)){
               addFoodType(request,response);
         }

         else if("list".equals(method)) {
             list(request, response);
         }

        else if ("viewUpdate".equals(method))
         {
             viewUpdate(request,response);
         }

         else if ("delete".equals(method)){
             delete(request,response);
         }

         else if ("update".equals(method))
         {
             update(request,response);
         }
    }

    //添加菜系
    public void addFoodType(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        try {
            //1.获取请求数据封装
            String foodTypeName = request.getParameter("foodTypeName");            FoodType ft = new FoodType();
            ft.setTypeName(foodTypeName);

            //2.调用service处理业务逻辑
            foodTypeService.save(ft);

            //3.跳转uri
            uri = request.getRequestDispatcher("/FoodType?method=list");

            }

            catch (Exception e){
              e.printStackTrace();
              uri="/error/error.jsp";
        }        //跳转的通用处理
        goTo(request,response,uri);
    }

    //菜系列表展示
    public void list(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        try {

            //调用service查询所有类别
            List<FoodType> list = foodTypeService.getAll();
            //存到域对象中
            request.setAttribute("listFoodType", list);

            //跳到菜系列表页面
            uri = request.getRequestDispatcher("/sys/type/foodtype_list.jsp");

        }catch (Exception e){
            e.printStackTrace();
            uri="/error/error.jsp";
        }
        goTo(request,response,uri);
    }
//查看更新
    public void viewUpdate(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        try {

            //获取请求id
            String id = request.getParameter("id");
            //根据id查询对象
            FoodType ft = foodTypeService.findById(Integer.parseInt(id));
            //保存
            request.setAttribute("foodType", ft);
            //跳转
            uri = request.getRequestDispatcher("/sys/type/foodtype_update.jsp");
        }catch (Exception e){
            e.printStackTrace();
            uri="/error/error.jsp";
        }
        goTo(request,response,uri);

 }
//删除菜系
    public void delete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        try {

             String id = request.getParameter("id");

             foodTypeService.delete(Integer.parseInt(id));

             uri = "/FoodType?method=list";
         }catch (Exception e){
             e.printStackTrace();
             uri="/error/error.jsp";
         }

        goTo(request,response,uri);

    }
// 更新菜系
    public void update(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        try {

            int id = Integer.parseInt(request.getParameter("id"));
            String name = request.getParameter("foodTypeName");
            FoodType foodType = new FoodType();
            foodType.setId(id);
            foodType.setTypeName(name);

            foodTypeService.update(foodType);

            uri = "/FoodType?method=list";

           } catch (Exception e){
            e.printStackTrace();
            uri="/error/error.jsp";
          }

         goTo(request,response,uri);

    }

     private void goTo(HttpServletRequest request, HttpServletResponse response , Object uri) throws ServletException, IOException {

         if (uri instanceof RequestDispatcher){
             ((RequestDispatcher)uri).forward(request,response);
         }else if (uri instanceof String){
             response.sendRedirect(request.getContextPath()+uri);
         }
     }
}

共性问题

1.菜系管理

如果删除某个菜系

先判断当前的菜系有没有被引用,如果有不能删除

2.菜系更新的时候,图片显示

存储时,存储图片名称

显示时候:拼接

相对目录/图片名称

/项目名/目录/*.jpg

注意:图片名不能有特殊字符

图片名不宜太长

时间: 2024-09-30 06:55:03

酒店销售管理系统-2.系统设计和实战开发的相关文章

软件开发生命周期-酒店销售管理系统实例---1.数据库设计

软件项目开发模式 一  螺旋开发模式 适合于项目前期部分需求不确定的情况,对于每一个模块进行一个个开发: 分析.设计.编码.测试.上线. 好处:降低软件开发的风险(产品尽量满足用户需求) 二  瀑布模式 先进行所有模块的需求分析,当分析结束后,才进入项目下一个阶段,即设计.编码.测试.上线 更容易项目把控,项目质量有控制. "餐馆王" 系统功能分析 1.餐桌管理 2.菜类别管理(菜系) 3.菜信息(菜品) 4.订单管理 详细分析 1.后台录入的餐桌,要在前台显示:且只显示未预订 2.后

Extjs5.0从入门到实战开发信息管理系统(Extjs基础、Extjs5新特性、Spring、Spring mvc、Mybatis)视频教程

Extjs5.0从入门到实战开发信息管理系统(Extjs基础.Extjs5新特性.Spring.Spring mvc.Mybatis)视频教程下载   联系QQ:1026270010 Extjs作为一款优秀的JS前端开发框架以其良好的架构.丰富的UI组件库.完善的文档和社区支持等诸多优点拥有广泛的市场应用空间,开发人员无需过多的关注HTML.CSS甚至各种常用JS算法,只需把精力放在业务逻辑上,利用各种组件的相互组合调用便可轻松而高效的开发出系统的前端页面. Extjs5在之前版本的基础上又推出

基于plusgantt的项目管理系统实战开发

<基于plusgantt的项目管理系统实战开发(Spring3+JDBC+RMI的架构.自定义工作流)> 课程讲师:Adam 课程分类:Java 适合人群:中级 课时数量:37课时 用到技术:Spring 3+JDBC+RMI的架构.jquery.工作流 涉及项目:项目管理系统 咨询QQ:1337192913(小公子) 本课程是某航空研究所的真正项目的缩影.在课程中,将实际项目的业务进行了缩减,但是主要的技术点全部都讲解到了. 课程内容虽然不多,但是麻雀虽小五脏俱全,通过学习本课程,可以掌握到

【课程分享】基于plusgantt的项目管理系统实战开发(Spring3+JDBC+RMI的架构、自定义工作流)

课程讲师:张弘 课程分类:Java 适合人群:中级 课时数量:37课时 用到技术:Spring 3+JDBC+RMI的架构.jquery.工作流 涉及项目:项目管理系统 更新程度:完成 QQ  1269532055 本课程是某航空研究所的真正项目的缩影.实际项目价值217万,在课程中,将实际项目的业务进行了缩减,但是主要的技术点全部都讲解到了.课程内容虽然不多,但是麻雀虽小五脏俱全,通过学习本课程,可以掌握到企业信息化办公系统的主要开发方法和设计思路,并且学习强大的自定义工作流中间件的内容,掌握

Extjs视频教程_Extjs5.0从入门到实战开发信息管理系统

Extjs5.0从入门到实战开发信息管理系统(Extjs基础.Extjs5新特性.Spring.Spring mvc.Mybatis)适合人群:初级课时数量:40课时用到技术:Extjs基础,Extjs5新特性,sencha cmd,spring,spring mvc, mybatis涉及项目:信息管理系统核心框架(mvvm+mvc架构)咨询qq:1840215592课程内容简介:1.课程研发环境开发工具:eclipse,sencha cmd:数据库工具:mysql5,mysql workben

【课程分享】深入浅出微信公众平台实战开发(微网站、LBS云、Api接口调用、服务号高级接口)

深入浅出微信公众平台实战开发(微网站.LBS云.Api接口调用.服务号高级接口) 课程下载地址:链接:http://pan.baidu.com/share/link?shareid=2214724072&uk=3611155194 密码:glvc 一.本课程是怎么样的一门课程(全面介绍) 1.1.课程的背景 微信公众平台的火热程度已经不用多言,无论是个人还是企业,政府还是商家,都已经开始搭建微信公众平台,微信的作用已经被各界人士认可.微信公众平台的技术需求市场缺口巨大. 1.2.课程内容简介 本

使用通用权限管理系统组件的随想 - 提高开发能力、规范开发、快速见效

本人供职于国内一家比较知名的物流公司,一直从事于基层公司物流软件的规划和设计开发工作,在长期的工作实践中深深地体会到作为不是专业的软件行业而又从事软件开发行业的业余性的软件开发设计人员来说,在工作中需要克服的困难和面对的艰辛有多大多难. 对与专业的软件开发设计公司来说,毋庸置疑的一点是都会有自己成熟稳定的开发框架和组件,并且是在不断的完善中,对供职其中的开发设计人员在完成业务性的开发设计工作外日常工作的一个重心就在于了解.熟悉进而创新性的完善他.作为软件开发设计人员都知道,任何一个软件系统都离不

ym——android源码大放送(实战开发必备)

文件夹 PATH 列表 卷序列号为 000A-8F50 E:. │  javaapk.com文件列表生成工具.bat │  使用说明.txt │  免费下载更多源码.url │  目录列表.txt │ ├─android web应用 │      jqmDemo_static.zip │      jqmMobileDemo-master.zip │      jqmMobileDemo1_1-master.zip │      Location1014.rar │ ├─anko │      

JavaGUI版本销售管理系统

不知不觉中,本科阶段已经走过两个年头,诸多感慨,诸多向往,周遭的人和事物在不断的改变着,自己的目标也在不断改变,总之,世界一直在快速的发生着变化,快到我们无法捕捉,总的来说,过得很潇洒,就等考上研究生牵着她的手在校园散步了,异步小心,小编又暴露了往日的猥琐,咳咳,大家就当说笑了. 废话不多说,接下来转到我们今天的正题上,迄今为止最美的销售管理系统课设,根据学院要求,小编采用的技术选型为javaSwing+mysql,历经5天时间,完成整个系统的开发以及项目说明书,时间仓促,大家在阅读中若发现问题