一、项目简介
随着信息化技术在生活中的应用越来越广泛, 网上订餐也逐渐成为人们的一种生活方式这类订餐软件在市面上也很多。本系统正是基于这样一种环境下应运而生。 本系统主要实现用户的网上订餐业务流程、用户注册、用户资料修改和管理员实现添加菜品相关信息,修改推销广告等。
本系统主要利用原生的 servlet 技术进行开发,有很强的逻辑性、可扩展性, 便于维护。用户界面设计主要实用了 CSS,美化了页面。其次本系统设计还使用 了 JSP技术、 JDBC技术、 JavaBean 技术、filter过滤器技术和MVC开发模式。
二、 系统设计和数据库设计
1.系统设计
整体流程图:
详细流程图:
2. 数据库设计
商家介绍表tb_introduce
数据记录
菜谱表tb_menu
数据记录
推荐菜品表tb_menu_top
订餐表信息tb_meaage
后台销售记录表tb_orders
用户信息表tb_users
配送信息表
三、 详细设计与实现
1.系统用到的软硬件环境
使用window10 、eclipse、mysql5.6、MVC模式、servlet、filter过滤器、session、文件上传、JDBC、jsp、HTML、css、jquery等技术。
2.详细设计过程:
1.用到的插件包:
2.项目结构:
3.核心代码解析:
控制层使用servlet技术:
总共17个servlet代表了17个主要功能分别是:添加管理员、添加菜谱、添加推荐菜品、删除购物车订单、删除菜品、用户信息、下单信息、订单支付、删除管理员、删除推荐菜品、修改商家介绍、修改菜品信息、修改用户配送地址信息、用户退出控制、用户登陆控制、用户注册、修改用户个人信息。
在这仅以订单支付为例:
```java @WebServlet(description = "订单支付", urlPatterns = { "/OrdersPayServlet" }) public class OrdersPayServlet extends HttpServlet { private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public OrdersPayServlet() {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<Orders> list = new ArrayList<Orders>();
Person user = (Person) request.getSession().getAttribute("user");
list = DAOFactory.getOrdersDAOInstance().searchBuy(user);
String a = URLEncoder.encode("支付成功!", "UTF-8");
for (Orders orders : list) {
orders.setStates("已付款");
DAOFactory.getOrdersDAOInstance().update(orders);
}
System.out.println("支付成功!");
response.getWriter().println("<script language='javascript'> alert(decodeURIComponent('"+a+"'));history.go(-1);</script>");
// response.getWriter().append("Served at: ").append(request.getContextPath()); }
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
} ```
四、系统测试
运行效果图及说明
1.管理登陆界面:
首页
购物车页面
下单信息页面
管理员管理页面功能包括:修改个人信息、修改密码、添加管理员、删除管理员、添加菜品、修改菜品、推荐菜品、修改商店介绍。
订单查询页面
店铺历史介绍页面
2.普通用户登陆界面:
首页
购物车页面
用户管理页面功能包括:修改个人信息、修改密码、修改配送信息
订单查询页面
店铺历史介绍页面
修改配送信息功能
五、 遇到的问题和解决方法
1.问题:
页面弹出框的提示信息会出现中文乱码;
解决方法:
```js response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter(); //获取输出流
String a = URLEncoder.encode("口令错误,请重新输入!", "UTF-8");
out.print("
2.问题:
数据库连接异常,缺少相应的连接包。
解决方法:
从MYSQL官网上下载mysql-connector-java-5.1.24-bin.jar包放在项目
等等等许多问题时间不够不再一一讲述。
六、 存在的不足和改进的思路
1.支付界面过于简单,没有真正模拟实际支付过程。
改进的思路:想引入微信的支付接口,实现微信扫码支付。
2.项目使用原生的JDBC管理连接,导致项目运行速度偏慢,资源浪费。
改进的思路:使用C3P0插件包自定管理数据库的连接和释放,提高项目的效率。
- 项目使用偏底层的技术如servlet、原生的HTML、jsp导致页面过于简单,项目的开发效率低。
改进的思路:使用框架技术将本项目升级成maven项目,自动管理前端使用LAYUI,美化前端页面,使用springboot框架技术,分层思想,提高代码的利用率,并降低开发难度。
七、 总结
这个项目我写的很苦逼,因为开始时间晚又重合了考试复习时间,还要忙里偷闲打游戏,技术又不咋滴,所以本人是很嫌弃这个代码的,但是没办法,赶鸭子上架,熬了几天夜写了这个项目,(此处省略吐槽三百字)。
虽然系统的基本功能都已实现,但还是存在项目不稳定等多个问题尚待解决。这个系统主要是我自己开发的,但也得到了网上大神和同学的很大帮助。我正在做系统的过程中遇到了很多问题,有的是知识存储不足,有的是考虑不够周全,之所以能够顺利实现基本功功能,离不开老师和同学的大力相助。事实证明,只靠自己是不能顺利完成一套功能完整的系统的,必须充分利用团队的力量。
技术心得:
-
一个 Servlet往往对应了不同的操作, 一个对象的增删改查, 都放在了一 个 Servlet里面实现,这样设计可有效减少Servlet数量;
-
对于网页页面效果要求较高的时候,多采用 JSP来编写,对于后台处理要 求较高时,多采用Servlet。
-
尽量使用和数据库版本一致的驱动,否则jdbc连接可能不正常;
4.在编写样式表之前一定要注意CSS文档的编码类型一定要和HTML文档的字符集类型一致。
参考文献
- 基于ASP.NET的餐厅在线订餐系统的设计和实现(浙江工业大学·鲍耀翔)
- 基于ASP.NET的网上订餐管理系统的设计与实现(厦门大学·谢舒文)
- 基于JavaWeb网络订餐平台的设计与实现(吉林大学·李璇)
- 基于JSP的网上订餐系统的设计与实现(厦门大学·谷岳青)
- 基于SSH框架的网上订餐系统的设计与实现(河北农业大学·张建浩)
- 基于JSP的网上订餐系统的设计与实现(厦门大学·谷岳青)
- 基于ASP.Net的网上订餐系统设计与实现(吉林大学·吴艳玲)
- 基于.Net的网上预订系统的设计与实现(华中科技大学·计超)
- 基于J2EE的在线订餐管理系统的设计与实现(西安电子科技大学·李若畅)
- 基于J2EE的网上订餐系统的设计与实现(山东大学·王斌)
- 爱味网上餐厅预订系统的分析与设计(云南大学·戴勇)
- 基于JSP构建网上订餐系统的设计与实现(电子科技大学·韩宗飞)
- 移动订餐APP系统的设计与实现(广西大学·覃志宏)
- 校园网上订餐管理系统的设计与实现(华北理工大学·张蕾)
- 基于J2EE的在线订餐管理系统的设计与实现(西安电子科技大学·李若畅)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码向导 ,原文地址:https://m.bishedaima.com/yuanma/35719.html