一、简介
在当今社会,随着互联网的普及,网上订餐已经成为了人们生活中不可或缺的一部分。为了方便用户点餐,同时也方便商家管理订单,我设计了一个基于JavaWeb的网上订餐管理系统。该系统分为前台和后台两部分,前台包括首页、登录注册、购物车、结算、我的订单、个人中心,后台包括登录、菜单管理、公告管理、类别管理。系统采用了Maven作为项目管理工具,使用Idea作为开发IDE,利用Spring、Spring MVC和MyBatis框架进行开发,并使用JSP作为页面展示的技术。
二、功能介绍
1.前台功能介绍
- 首页:用户可以在首页浏览各类菜品,查看特价优惠等信息。
- 登录注册:用户可以注册账号,并使用已有账号登录,以便进行点餐和管理订单。
- 购物车:用户可以将想要购买的菜品加入购物车,方便后续结算。
- 结算:用户可以对购物车中的菜品进行结算,选择配送地址和支付方式,并完成订单的提交。
- 我的订单:用户可以查看自己的历史订单,并对订单进行管理。
- 个人中心:用户可以管理个人信息,修改密码等。
2.后台功能介绍
- 登录:管理员可以通过后台登录功能进入管理系统。
- 菜单管理:管理员可以管理菜单,包括添加新菜品、编辑菜品信息、删除菜品等。
- 公告管理:管理员可以发布公告,通知用户系统相关信息。
- 类别管理:管理员可以管理菜品的类别,包括添加新类别、编辑类别信息、删除类别等。
三、技术实现
- Maven:使用Maven进行项目管理,统一管理项目依赖。
- Idea:使用Idea作为开发IDE,提高开发效率。
- Spring:使用Spring框架实现项目的依赖注入和控制反转,提高了代码的灵活性和可维护性。
- Spring MVC:使用Spring MVC框架实现了前后端的交互,实现了基于MVC的开发模式。
- MyBatis:使用MyBatis框架实现了持久层的数据操作,简化了数据库操作的过程。
- JSP:使用JSP作为页面展示的技术,实现了动态页面的生成。
四、代码功能介绍
- Src下的java文件存放的我们后端的代码
- Controller主要是调用了service层的方法,和一些业务逻辑的编写,我们可以根据具体方法名称看出来这个方法具体的功能,比如AdminController,里面的update方法就是对管理员信息的修改,toLogin跳转到管理员登录页面,login对前端传来参数的判断,成功或失败都跳转到对应的页面,logout退出登录,下面的controller我就不一一列举了,根据方法名就可以判断具体功能
- Dao下面都是一些接口,里面的方法都是针对数据库操作的,他跟下面resource下的mapper里的mapper.xml是对应的,mapper.xml里都是sql语句,dao里面的每个方法都在mapper.xml有具体对数据库操作的实现
- Entity里都是我们封装的实体类,基本上一个数据库的表对应着一个实体类,其他的比如page和pages是分页功能需要的实体类,ShoppingCart是用户在下单后存放餐车需要的实体类
- Interceptor里这两个类起到一个拦截的功能,分别对前台未登录的用户和后台未登录的用户进行拦截并拒绝访问的操作
- 再往下的service,它里面有一些接口和这些接口的实现类,这些接口基本上都是一些增删改查的方法,然后实现类来做具体的实现,这些实现类都导入了dao层的接口,调用dao层的方法来对数据库进行具体的操作
- 下的utils就是我们的工具类了
- Resource文件存放这我们的配置文件和mapper.xml的代码
- ApplicationContext.xml文件主要配置我们spring注解的包扫描注释,数据库连接的配置,dao层接口的配置,对事物和aop的配置
- Log4j就是日志的配置
- springMVC.xml主要配置了我们静态资源访问路径,controller层的扫描还有加载视图解析器和文件解析器
- sqlMapConfig.xml主要配置了实体类的包扫描和dao层的包扫描
- webapp主要存放着我们前端的资源,下面的public里的admin是我们后台页面需要的资源,images包含着前台页面菜品的图片,qiantai文件下都是我们前台页面需要的资源了
- 最后web-inf里的web.xml主要配置了listner,servlet和解决中文乱码的过滤器
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>meal_ordering_system</artifactId>
<version>1.0-SNAPSHOT</version>
<name>meal_ordering_system</name>
<packaging>war</packaging>
<repositories>
<repository>
<id>central</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<layout>default</layout>
<!-- 是否开启发布版构件下载 -->
<releases>
<enabled>true</enabled>
</releases>
<!-- 是否开启快照版构件下载 -->
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<properties>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<spring.version>5.0.2.RELEASE</spring.version>
<slf4j.version>1.6.6</slf4j.version>
<log4j.version>1.2.12</log4j.version>
<mysql.version>8.0.16</mysql.version>
<mybatis.version>3.4.5</mybatis.version>
<junit.version>5.7.0</junit.version>
</properties>
<dependencies>
<dependency>
<!-- lombok-->
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<!--文件上传-->
<dependency>
<version>1.2.2</version>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
</dependency>
<dependency>
<version>2.4</version>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<!-- 日志 -->
<!-- 实现slf4j接口并整合 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.1</version>
</dependency>
<!-- io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.2</version>
</dependency>
<!-- Servlet web -->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>compile</scope>
</dependency>
<!-- 数据库 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<!-- druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.4</version>
</dependency>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- Spring MVC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.7</version>
</dependency>
<!-- MyBatis-Spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.aopalliance/com.springsource.org.aopalliance -->
<dependency>
<groupId>org.aopalliance</groupId>
<artifactId>com.springsource.org.aopalliance</artifactId>
<version>1.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.aspectj/com.springsource.org.aspectj.weaver -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>com.springsource.org.aspectj.weaver</artifactId>
<version>1.6.8.RELEASE</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.0</version>
</plugin>
</plugins>
</build>
</project>
五、数据库介绍
六、程序截图
1.前台
1.首页
2.登录注册
3.购物车
4.结算
5.我的订单
6.个人中心
2.后台
1.登录
2.菜单管理
3.公告信息管理
4.类别管理
七、联系与交流
q:969060742 完整代码、sql、项目辅导视频