Javaweb实战之实现蛋糕订购系统

目录
  • 视频展示
  • 1 实验的目的及要求
  • 2 需求分析
    • 2.1 问题陈述
    • 2.2 功能需求分析
  • 3 总体设计
    • 3.1 功能结构图设计
    • 3.2 模块简介
  • 4 详细设计
    • 4.1 主模块详细设计
    • 4.2 子模块详细设计
  • 5 编码和测试
    • 5.1 编码
    • 5.2 测试
  • 6 总结及建议

视频展示

javaWeb大作业——蛋糕订购系统

1 实验的目的及要求

目的:学习JavaWeb的基础知识,掌握servlet和jsp的必要知识。培养搭建实战项目的能力。

2 需求分析

2.1 问题陈述

随着网络的普及与发展,网上购物逐渐成为一种主流消费的方式,它以方便, 足不出户, 款式多全面,低廉的价格、送货上门的便捷等等优点称为了人们购物的主要方式,在顺应互联网大势的情况下经过多方面的调查需求,现推出网上蛋糕订购系统来满足个体蛋糕店来打造自己品牌的需求。

2.2 功能需求分析

实现管理员对物品和用户的分类、删除、修改、信息编辑、物品搜索和主页面的热门推荐等。以及用户对自己信息的修改和物品的订购功能。再加上用户的登陆注册功能。

3 总体设计

3.1 功能结构图设计

3.2 模块简介

系统分为两个主模块用户和管理员。对于用户模块在进入网站主页时用户可以先浏览商店信息可以在商品分类里面进行商品分类查询或者在热销和新品里面进行浏览,然后把想要购买的商品加到购物车上然后在行订单查询里面进行支付。对于管理员模块除了可以进行和用户部分一样的功能以外还可以进入后台管理模块,进行订单管理和客户管理还有商品管理,类别管理以及退出。

4 详细设计

4.1 主模块详细设计

主模块主要包括两部分一个是用户的相关操作,一个是管理员的相关操作。对应着建立了七张数据表

同时对orderitem和recommend、shoppingcart设置了相应的外键和索引来关联表之间的关系。

对于程序的界面设计方面我主要采用了bootstrap框架的导航栏对管理员和用户所需要的模块进行相应的添加。

界面设计在页面顶部设置导航栏便于操作:

对与用户操作和管理员操作需要具体登陆后才能展现。

主程序流程图:

4.2 子模块详细设计

以管理员模块为例进行详细讲解:

数据存储设计:

在用户表里面设计一个元素isadmin来判断是不是管理员

对物品在主页面的推荐表设计为例进行介绍:

界面设计:

点击后台管理后:

程序流程图:

5 编码和测试

5.1 编码

使用C3P0连接池对数据库进行链接配置:

<c3p0-config>
	<!-- 默认配置,只可以出现一次 -->
	<default-config>
		<property name="driverClass">com.mysql.jdbc.Driver</property>
		<property name="jdbcUrl">jdbc:mysql://localhost:3306/cakes?useUnicode=true&amp;characterEncoding=utf-8&amp;useSSL=false</property>
		<property name="user">root</property>
		<property name="password">root</property>
		<property name="initialPoolSize">10</property>
		<property name="maxIdleTime">3600</property>
		<property name="maxPoolSize">20</property>
		<property name="minPoolSize">10</property>
	</default-config>
</c3p0-config>

对用户购买进行展示:

Servlet类;
@WebServlet(name = "goods_buy",urlPatterns = "/goods_buy")
public class GoodsBuyServlet extends HttpServlet {
    private GoodsService gService = new GoodsService();
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Order o = null;
        if(request.getSession().getAttribute("order") != null) {
            o = (Order) request.getSession().getAttribute("order");
        }else {
            o = new Order();
            request.getSession().setAttribute("order", o);
        }
        int goodsid = Integer.parseInt(request.getParameter("goodsid"));
        Goods goods = gService.getGoodsById(goodsid);
        if(goods.getStock()>0) {
            o.addGoods(goods);
            response.getWriter().print("ok");
        }else {
            response.getWriter().print("fail");
        }
}

订单确认部分:

@WebServlet(name = "order_confirm",urlPatterns = "/order_confirm")
public class OrderConfirmServlet extends HttpServlet {
    private OrderService oService = new OrderService();
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Order o = (Order) request.getSession().getAttribute("order");
        try {
            BeanUtils.copyProperties(o, request.getParameterMap());
        } catch (IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        o.setDatetime(new Date());
        o.setStatus(2);
        o.setUser((User) request.getSession().getAttribute("user"));
        oService.addOrder(o);
        request.getSession().removeAttribute("order");

        request.setAttribute("msg", "订单支付成功!");
        request.getRequestDispatcher("/order_success.jsp").forward(request, response);
    }

订单确认的jsp页面部分:

<div class="cart-items">
		<div class="container">
			<h2>确认收货信息</h2>
			<form class="form-horizontal" action="/order_confirm" method="post" id="payform">
				<div class="row">
					<label class="control-label col-md-1">收货人</label>
					<div class="col-md-6">
						<input type="text" class="form-control" name="name" value="${user.name }" style="height:auto;padding:10px;" placeholder="输入收货人" required="required"><br>
					</div>
				</div>
				<div class="row">
					<label class="control-label col-md-1">收货电话</label>
					<div class="col-md-6">
						<input type="text" class="form-control" name="phone" value="${user.phone }" style="height:auto;padding:10px;" placeholder="输入收货电话" required="required"><br>
					</div>
				</div>
				<div class="row">
					<label class="control-label col-md-1">收货地址</label>
					<div class="col-md-6">
						<input type="text" class="form-control" name="address" value="${user.address }" style="height:auto;padding:10px;" placeholder="输入收货地址" required="required"><br>
					</div>
				</div>

				<br><hr><br>

				<h2>选择支付方式</h2>
				<h3>支付金额: ${order.total }</h3><br><br>

				<div class="col-sm-6 col-md-4 col-lg-3 ">
					<label>
						<div class="thumbnail">
							<input type="radio" name="paytype" value="1" checked="checked" />
							<img src="images/wechat.jpg" alt="微信支付">
						</div>
					</label>
				</div>
				<div class="col-sm-6 col-md-4 col-lg-3 ">
					<label>
						<div class="thumbnail">
							<input type="radio" name="paytype" value="2"  />
							<img src="images/alipay.jpg" alt="支付宝支付">
						</div>
					</label>
				</div>
				<div class="col-sm-6 col-md-4 col-lg-3 ">
					<label>
						<div class="thumbnail">
							<input type="radio" name="paytype" value="3"  />
							<img src="images/offline.jpg" alt="货到付款">
						</div>
					</label>
				</div>
				<div class="clearfix"> </div>
				<div class="register-but text-center">
					<input type="submit" value="确认订单">
					<div class="clearfix"> </div>
				</div>
			</form>
		</div>
	</div>

5.2 测试

6 总结及建议

通过本次课程的学习让我掌握了一种可以用来就业的本领这无疑对我以后进入社会更好的生活提供了一份保障。本次实验作业也让我清楚的认识到想要独立的完成一个系统网站需要大量的知识积累不仅仅是简单的学习这一门课就行的,比如在网站的前端设计中对css样式和jquary的应用上就暴露出了自己的薄弱项,在这方面的编写中遇到了巨大的困难。而且不仅如此在后端也同样暴露出了很多问题。比如在设计模式的不成熟可能导致后面对项目维护不方便。认识到这些问题后我会积极补救,在后面的学习中积极完善自己的不足来提高编程能力。

到此这篇关于Javaweb实战之实现蛋糕订购系统的文章就介绍到这了,更多相关Javaweb蛋糕订购系统内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java实战个人博客系统的实现流程

    springboot+mybatis+前端vue,使用前后端分离架构实现的个人博客系统,共7个模块,首页,写博客,博客详情页,评论管理,文章分类,标签管理和文章归档. 运行环境: jdk8+tomcat8.5+mysql5.7+IntelliJ IDEA+maven 项目技术: springboot+mybatis+redis+vue+element ui 博客管理控制层: /** * @author yy */ @Controller public class MyblogController

  • Java实战网上电子书城的实现流程

    项目描述: spring mvc +jsp实现的简单书城项目,可以在支付宝沙箱内实现支付 运行环境: jdk8+tomcat9+mysql+IntelliJ IDEA 项目技术: spring+spring mvc+mybatis+jsp+maven 后台管理员图书管理代码: @Controller @RequestMapping("/admin/book") @RequiresPermissions("book-manage") public class Admi

  • Java实战宠物医院预约挂号系统的实现流程

    一.项目简述 功能包括: 用户分为宠物,医生,管理员,宠物主人可进行注册选择医生挂号,选择日期,选择号源,医生可进行宠物接诊,管理员可对宠物,医生信息的维护等等功能. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) 项目技术: JSP +Spring + SpringBoot + MyBatis + html+ css + JavaScript + JQuery +

  • Java实战权限管理系统的实现流程

    springboot+mybatis使用面向切面编程(AOP)实现的权限管理系统. 共五个模块,角色管理,菜单管理,实验室管理,学生管理,管理员管理. 角色管理分一个超级管理员,编辑权限. 菜单管理显示各个管理的链接和编辑. 实验室管理有excel导入,签到总人数. 学生管理有excel导入. 增删改查在每个部分均能实现. 后台角色管理控制器: /** * 后台角色管理控制器 * @author yy * */ @RequestMapping("/admin/role") @Contr

  • Java实战项目练习之球馆在线预约系统的实现

    功能具体如下:前台用户:登录\注册.查看场馆.预约场馆.投诉.个人中心.关于我们.网站公告等.后台管理员:场馆列表.场地列表.场地安排.订单管理.教练管理.器材管理.收银员管理.会员管理.关于网站等功能收银员:订单管理.教练管理.器材管理.会员充值管理等.运行环境:windows/Linux均可.jdk1.8.mysql5.7.maven3.5\3.6.idea/eclipse均可. 系统控制器代码: /** * 系统控制器 * */ @RequestMapping("/system"

  • Java实战角色权限后台脚手架系统的实现流程

    Springboot框架+myBaits-Plus+MySQL实现的角色权限后台管理脚手架系统实战项目,实现的是所有系统最基础的后台管理功能,有了这个脚手架,以后开发别的项目就在这上面快速增加功能即可.本系统主要实现的功能有:菜单管理.角色管理.用户管理.登录.登出,不同的角色分配相应的权限,用户分配不同的角色登录后显示相应被分配的功能. 本系统采用前后端分离的思想设计,后端采用springboot微服务架构,主要包含一个网关服务和一个权限管理服务,开发其他功能可以再创建其他的微服务,前端采用v

  • Java实战宠物店在线交易平台的实现流程

    该系统分为前台和后台,前台可以自主注册,后台管理员角色,除基础脚手架外,实现的功能有:后台管理员功能有: 商品分类管理.商品管理.套餐管理.新闻分类管理.新闻管理.常见问题.关于我们.团队管理.订单查看和前台用户查看等功能. 前台用户功能有:注册登录.查看商品.购物车.支付订单.评价.照片库.新闻列表.个人中心.购买套餐等功能. 运行环境:windows/Linux均可.jdk1.8.mysql5.7.maven3.5\maven3.6.idea/eclipse均可. 系统控制器代码: /**

  • Java实战玩具商城的前台与后台实现流程

    一.项目简述 本系统主要实现的功能有:网上商城系统,前台+后台管理,用户注册,登录,商品展示,分组展示,搜索,收货地址管理,购物车管理,添加,购买,个人信息修改.订单查询等等,后台商品管理,分类管理,库存管理,订单管理,用户管理,信息修改等等. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) 项目技术: Springboot+ SpringMVC + MyBatis

  • Javaweb实战之实现蛋糕订购系统

    目录 视频展示 1 实验的目的及要求 2 需求分析 2.1 问题陈述 2.2 功能需求分析 3 总体设计 3.1 功能结构图设计 3.2 模块简介 4 详细设计 4.1 主模块详细设计 4.2 子模块详细设计 5 编码和测试 5.1 编码 5.2 测试 6 总结及建议 视频展示 javaWeb大作业--蛋糕订购系统 1 实验的目的及要求 目的:学习JavaWeb的基础知识,掌握servlet和jsp的必要知识.培养搭建实战项目的能力. 2 需求分析 2.1 问题陈述 随着网络的普及与发展,网上购

  • JavaWeb实战之开发网上购物系统(超详细)

    一.项目描述 基于B/S三层架构设计的购物系统,可以更好地符合"高内聚,低耦合"的设计思想.表现层(UI)通过JSP在浏览器上实现界面展示,通过Servlet接受用户请求并生成验证码等实时信息:数据访问层(DAL)通过JDBC对DBMS进行访问:二者之间的业务逻辑层(BLL)通过Service进行连接.同时面向接口编程提高规范化.这只是我自己用两三天的时间做的小项目,距离真正的购物系统差距还是很大的,仅供初学者参考,很多逻辑缺陷不必太纠结,以后有时间会再写一篇博客对这个项目进行相关测试

  • Java 实战项目锤炼之在线蛋糕商城系统的实现

    一.项目简述 功能: 主页显示热销商品:所有蛋糕商品展示,可进行商品搜 索:点击商品进入商品详情页,具有立即购买和加入购物 车功能,可增减购买商品数量亦可手动输入(同时验证库 存),热销商品展示.立即购买进入确认订单页面,可选择 已经添加的地址,亦可新增地址.(同时验证库存),可选 择购买哪些商品,可删除不需要的商品.点击结算进入确 认订单页面,确认后提交订单.后台管理:(修改密码 等),商品管理(商品批量添加.上下架等),订单管理. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.

  • javaweb实战之商城项目开发(二)

    上一篇<javaweb实战之商城项目开发(一)>已经把实体类,分页工具创建好了,这一篇利用mybatis创建DAO层. 另外mybatis的api文档可以参考 一.mybatis的使用 1. 引入架包 这里引入mybatis和mysql的架包到lib中 2. 编写Config.xml配置数据库环境 先贴代码,然后逐个解释 <?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE configur

  • javaweb实战之商城项目开发(三)

    接着上一篇<javaweb实战之商城项目开发(二)>这一篇主要实现通用的BaseDao.java和使用resultMap映射关联对象 一.通用的BaseDao.java 既然要大家都能用,所以使用了泛型.其中要注意的问题就是类似User.getClass().getName()这样的代码是需要修改的.修改方法就是使用参数Class tc传递过来,然后在使用tc.getName()即可. 完整代码: package com.dao; import com.model.Pager; import

  • JavaWeb实战之用Servlet+JDBC实现用户登录与注册

    一.前言 使用到的技术栈: (1)JDBC (2)Servlet (3)MySQL 二.准备工作 (1)书城用户数据库与表创建 (2)编写用户类对象JavaBean (3)编写JdbcUtils对数据库进行交互(使用德鲁伊数据库连接池) (4)编写web层 最终编写好的第二阶段登陆注册文件结构为 dao中定义了基础的操作数据库代码,具体功能有 1.Insert.update.delete(修改) 2.查询一个对象(返回一个对象) 3.查询一个数组对象(数组返回多个对象) 4.返回某一个特定值对象

  • JavaWeb实战之编写单元测试类测试数据库操作

    首先导入jar包 使用Mybatis generator生成,dao.entity.mappers 没有dataSource,我圈错了... jdbc.properties是数据库链接配置文件 sqlMapConfig.xml是Mybatis 配置文件 如何自动生成这些文件夹? 如下.右键generatorConfig -> 选择Run as -> 如何点击Run Mybatis Generator 新建MyBatisTool public class MybatisTool { public

  • Java实战项目 医院预约挂号系统

    目录 一.项目简述 二.项目运行 登录拦截器代码: 医院预约挂号系统后台管理页面代码: 一.项目简述 功能: 用户分为患者,医生,管理员,患者可进行注册选择医生 挂号,选择日期,选择号源,医生可进行接诊,管理员可 对用户,医生信息的维护等等功能. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持) 项目技术: Jdbc+ Servlert + Jsp + css +

  • JAVA实战项目实现客户选购系统详细流程

    客户选购信息系统功能需求: 1)输入多个客户购买商品信息.包括客户名称,年龄,购买的商品,每种商品的单价和数量. 2)输出多个客户购买商品的信息.包括客户名字,年龄,购买商品,每种商品的单价和数量,总的消费金额. 方法:1)定义一个多个客户信息处理的类 CustomerGoodsAdmin .包括: 属性: Customer [ ]customers 方法: void show () //用户交互界面 void inputCustomerlnfo () / /客户采购信息输入 Void prin

  • Java实战之实现物流配送系统示例详解

    目录 介绍 效果图展示 主要实现代码 介绍 系统分普通用户.企业.超级管理员等角色,除基础脚手架外,实现的功能有: 超级管理员:系统管理.用户管理.企业用户管理.普通用户管理.货物类型管理.车辆管理.公告管理.使用帮助等. 普通用户:注册登录.个人信息管理(个人资料.密码修改.充值.订单管理等).货物浏览.公告查看.下单等. 企业用户:注册登录.修改密码.充值.订单管理.货物管理.车辆管理.安排车辆等. 运行环境:windows/Linux均可.jdk1.8.mysql5.7.redis3.0.

随机推荐