1 总体概述

本设计主要通过HTML、CSS、JavaScript网页开发技术,会话及其会话技术,过滤器技术,Java语言以及连接mysql数据库来实现一个具有登录注册功能,且登录页面使用验证码技术来实现用户验证、未登录用户仅能访问主页的餐厅点餐系统。

主要的思路是与mysql数据库建表连接来管理用户名密码信息,判断登录时用户名密码是否正确,注册时向数据库中的表新增信息;通过会话及其会话技术来管理用户登录的状态、验证码用户验证、顾客的点餐订单加入购物车;通过过滤器技术来管理未登录的用户的访问权限。

相关理论介绍

会话及其会话技术:在Web开发中,服务器跟踪用户信息的技术称为会话技术。包含cookie和session对象。在本系统设计中,主要运用的是session对象。Session对象是一种将会话数据保存到服务器端的技术。Cookie技术可以将用户的信息保存在各自的浏览器中,并且可以在多次请求下实现数据的共享。但是如果传递的信息比较多,使用Cookie技术显然会增大服务器端程序处理的难道,这时可以使用Session技术。

过滤器技术(Filter):过滤器实际上就是对web资源进行拦截,做一些处理后再交给下一个过滤器或servlet处理。在doFilter()中判断用户是否登录系统,只有合法登录后才能访问系统。首先分析session中是否有用户的信息,有则放行,没有,判断是否是登录请求或者是登录提交请求,是则放行,不是则跳转回主页。

2 系统需求分析

由设计要求及对餐厅点餐系统的需求分析可知,网站首先拥有一个首页,该首页所有用户均可访问,首页拥有登录、注册、点餐、购物车等多个子页,但游客用户仅能访问登录、注册及主页,无法访问点餐页面。想要点餐时需要先登录,没有用户名密码的用户可以进行注册。进入点餐页面后,下单之后点击我的订单可查看购物车内的已点的菜单。

大概设计如下:

餐厅点餐系统功能主要包括浏览餐厅介绍信息功能、登录和注册功能、顾客点餐功能和加入购物车功能。

下面是各页面层次结构和功能的大致介绍:

主页的层次结构

登录页面的层次结构

注册页面的层次结构

点餐页面的层次结构

购物车页面的层次结构

3 系统设计

3.1 主页详细设计

顶部是菜单栏,超链接到本页面下的指定部分。用JS实现下拉列表框。点击“去订购”跳转到点餐页面,点击登录注册跳转至相应页面。

然后是用JS实现的轮播图。轮播图上的文字“这里有美味的烤肉”具有动画效果。

接着是对本餐厅的详细描述。

然后是菜式展示。这里运用了JS里的代理点击事件,用delegate代理点击事件。

接着是餐品图片展示。图片使用绝对定位。

底部页面。

3.2 登录页面详细设计

该页面功能需要用到session技术,将用户输入的信息与mysql数据库里的表进行比对,如果正确,存入到”user”属性user类型的session中。同时验证码也是存入session对象中,验证码通过用随机函数生成。

3.3 注册页面详细设计

该页面同样需要用到上述方法,与数据库建立连接后,若用户输入信息无误,则将该信息insert into user表中,点击注册且会回到登录界面。该注册页面只有验证码运用到了session技术。同时登录页面和注册页面的背景动态效果都是通过CSS样式实现的,未用到JS。

3.4 点餐页面详细设计

3.5 购物车页面详细设计

3.6 Java类中主要功能的实现

3.6.1 与mysql数据库进行连接

3.6.2 实体类

3.6.3 获取用户输入的信息

3.6.4 将用户登录信息存入session

3.6.5 验证码随机生成

3.6.6 过滤器实现屏蔽子页

4 系统实现

系统主要功能演示:

未登录的游客用户访问子页,被屏蔽,重定向至登录界面。

系统验证码功能:输入正确的验证码登录,错误的验证码网页提示输入错误:

系统登录功能:登录后可以访问子页面(点餐页面):

系统注册功能:输入用户名密码确认密码和验证码,用户进行注册,查看数据库中的表,发现新增一项。

详细步骤演示:启动mysql数据库

运行IDEA

首先进入主页,会有一个看似动态效果,其实是一张 gif图片。

等gif图片加载完后

点击轮播图或者右边的箭头可以切换至下一张

点击上面的导航栏,能够跳转至指定内容,如点击“菜单”,跳转至如下演示的画面

点击“午餐”或者“晚餐”等等,内容会切换

下面是图片展示和底部

点击去订购,发现是游客用户,还没有登录,不能直接跳转至点餐页面,而是跳转到了登录界面

点击刷新,发现验证码会变,输入用户名和密码,进入点餐页面

如果点击注册,进入注册页面

输入信息后,点击注册,此时查看mysql数据库中的user表,发现表中多了一行刚刚注册的信息,然后跳转到登录页面

进入点餐页面后,选好商品点击下单

然后点击购物车,发现购物车出现刚刚点击的商品

继续下单

发现购物车里的商品增加了。

5 总结

该餐厅点餐系统结合了HTML、CSS、JavaScript网页开发技术,会话及其会话技术,过滤器技术,Java语言以及连接mysql数据库成功实现了一个具有登录注册功能,且登录页面使用验证码技术来实现用户验证、未登录用户仅能访问主页的餐厅点餐系统。

通过这次系统设计,我进一步学会了如何更加合理地去进行页面布局设计,页面各部分样式设计。更深层次地理解了会话及其会话技术,学会了过滤器技术,知道了连接mysql数据库的方法。

在设计过程中在登录注册页面出现了困难,无法成功登录,但是可以跳转至shopping.jsp页面。检查发现是form表单没有标出详细地址。

在实现过滤器屏蔽子页时也出现了理解错误,后来浏览资料后才了解Filter中的doFilter的方法中的ServletRequest传的就是HttpServletRequest对象,通过HttpServletRequest req = (HttpServletRequest) request;语句强转,之后就可以使用req.getSession().getAttribute(“”)方法来获取session对象里的值。

mysql餐馆点餐系统_课内资源 - 基于Jsp和MySql的餐厅点餐系统相关推荐

  1. mysql请假表需要什么_课内资源 - 基于JSP和MYSQL数据库实现的请假管理系统

    1 系统概述 1.1 系统说明 该系统用于海宁市医院的员工请假的专用请假系统,将员工请假的申请.审批.查询流程规范化,并进行必要的记录,为后面奖金的发放和人事升迁做参考. 同时该系统还支持管理员对用户 ...

  2. jsp mysql在线考试系统源码_课内资源 - 基于JSP和MYSQL数据库实现的在线考试系统...

    1 系统概述 1.1 功能模块 教学部需要考试系统,该考试系统需要完成如下功能: 考试系统只针对于Java课程,题目全部为单项选择,共10题 学生注册.登录 后台管理员功能:题库管理.录入试卷.修改试 ...

  3. 本系统采用jsp和mysql_课内资源 - 基于Jsp和MySql的汽车租赁系统

    一.引言 汽车租赁管理系统是基于MVC三层架构完成,使用Java语言开发,主要应用Jsp完成前台界面部分,Servlet MVC完成后台逻辑部分. 本系统的设计从现实角度出发,根据实际汽车租赁信息管理 ...

  4. jsp mysql问卷调查_课内资源 - 基于JSP的在线调查问卷系统

    一.系统架构图 用户登入功能,由login.jsp页面和LoginServlet.java组成,页面用于填写用户名和密码:Servlet用于验证是否可以登入,如果能够登入,则将用户登入时间记录到数据库 ...

  5. java基本语法借阅_课内资源 - 基于Java和MySql实现的光盘借阅管理系统

    一.需求设计以下几个类:光盘类:用户类:借阅记录类,包括下列模块: 新建.修改.删除光盘信息 新建.修改.删除用户信息 光盘借阅/归还信息记录 查询光盘名称,用户的借阅历史 要求:基于JFrame窗体 ...

  6. c语言机票座位预定系统_课内资源 - 基于C语言的飞机票预订系统

    1 解题思路 本题需要综合使用数据结构的知识.以此,将航班数据设计成链表形式即定义结构体,其中包含飞机序号,登机口作为数据域,next作为指针域,将此结构体称为Node.将乘客信息设计成特殊的结构体, ...

  7. java 图形处理_课内资源 - 基于Java实现的几何图形处理系统

    1 综述 针对<计算机图形学>课程开发的几何图形处理系统实现的功能包括:在UI界面中通过鼠标点击拖拽等方式可视化地输入二维图形的功能:编辑最近输入的二维图形的功能:裁剪直线的功能,支持的图 ...

  8. java洗衣店管理课程设计报告_课内资源 - 基于Java的洗衣店管理系统

    摘 要 随着科技的快速发展,人们的需求也是越来越多,为了方便对信息的管理我们小组就设计了一个洗衣店订单的管理系统. 洗衣店管理系统是典型的的信息管理系统,创建了六个类,分别是:Test类:Person ...

  9. python+diango写酒店管理系统_课内资源 - 基于Python的Django框架实现的中式快餐厅管理信息系统网站...

    1 初步调研 随着餐饮业的连锁和国外餐饮巨头的进入,餐饮业的竞争将越来越激烈:要想在竞争中处于不败之地,必须在管理.服务等方面提高服务管理意识.面对当前餐饮业普遍的产业化程度低,管理手段.管理技术落后 ...

最新文章

  1. 模板页显示Excel数据Gridview增删改查
  2. 操作指针的条件和多级指针
  3. bootstrap的依赖_这五款超好用的Bootstrap扩展,让你的Web开发事半功倍
  4. Cisco路由器DHCP服务器基本配置
  5. 微信小程序“淘淘猜成语”开发教程(该成语接龙已上线,功能齐全)
  6. 学说不能选计算机专硕的课,初试前先选组,选定离手还不能改?北京邮电大学计算机...
  7. R2-React之ES6基础
  8. Android系统换字体不root,安卓手机更换字体简易方法(免ROOT)
  9. cydia java_利用Cydia Substrate进行Android JAVA HOOK
  10. Hypervisor是什么
  11. 读书笔记11 《蔡康永的说话之道2》 蔡康永
  12. WSL 2 网络配置
  13. 苹果CMS绑定分类失败,刷新就丢失!
  14. 【Python】Wordcloud 词云
  15. JS控制台控制视频倍速
  16. 工业强国之路任重道远,制造业乘“疾风”突出重围
  17. php安全新闻早八点-高级持续渗透-第二季关于后门补充一
  18. mysql导入本地文件_Mysql透过txt文件导入本地数据_mysql
  19. 创业思维分享优点(创业方法创业思维)
  20. 创业之路 - 上市公司包括哪几种,创业板、新三板、科创版 区别?

热门文章

  1. Git生成ssh ksy后进行项目管理
  2. 81章 老子1章到_老子1章2章80章81章
  3. 折线迷你图怎么设置_Excel2013如何使用迷你图展示数据?
  4. 【毕业设计】基于STM32的心率检测器 - 单片机 嵌入式 物联网
  5. 获取壁纸网站第一页至第n页的壁纸
  6. Linux 服务器 OOM 分析
  7. 无法安装X64 在计算机找到X32,怎么看电脑适合装32位还是64位
  8. 反向比例运算电路微分关系_电气必备20个经典模拟电路
  9. STA静态时序分析——学习笔记
  10. 工程效能部门如何讲好故事做好事