点餐系统的制作
作者:互联网
点餐系统运用技术有html,css,jquery,javascrip,servlet,jsp,xml,filter,jdbc
本系统数据库采用druid数据库连接与数据库进行连接,通过servet调用service,service调用到方法,实现系统后台操作,实现用户注册,登陆,添加订单,后台管理
用户进入该系统进入如下界面
在未登陆该系统情况下,点击后台管理filter会进行拦截,并跳入登陆界面
点击登录则会跳入登陆成功界面,并且通过el标签将用户名打印到登陆成功界面,点击返回首页会调回一开头界面,且注册,登陆改为我的,订单
点击点餐入口会进入点餐界面,改界面通过反问servlet,将数据库数据打印到界面,点击页面下的页脚可以进行跳转
点击末页跳转进入末页,点击加入我的订单,会将数据保存进入我的·数据库中,并且通过el表达式可以打印添加的商品
点击我的订单则跳入我的订单界面,我的订单界面通过orderServlet,将上面添加的食谱从数据库中打印到此界面,并且计算出总数量和总金额,通过el表达式打印到界面
主页中点击后台管理会进入如下界面,改界面可以进行数据修改,添加,删除,数据库会发生相应改变
数据修改界面如下,点击那个修改,会把相应数据回显到界面
druid数据库连接池连接数据库
package dao;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import until.JdbcUntil;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
public class BaseDao {
private QueryRunner queryRunner=new QueryRunner();
//增删改语句
public int update(String sql,Object...args){
Connection connection= JdbcUntil.getconnection();
try {
return queryRunner.update(connection,sql,args);
} catch (SQLException throwables) {
throwables.printStackTrace();
}finally {
JdbcUntil.close(connection);
}
return -1;
}
//查询一条语句
public <T> T queryForOne(Class<T> type,String sql,Object...args){
Connection getconnection = JdbcUntil.getconnection();
try {
return queryRunner.query(getconnection,sql,new BeanHandler<>(type),args);
} catch (SQLException throwables) {
throwables.printStackTrace();
}finally {
JdbcUntil.close(getconnection);
}
return null;
}
//查询多条语句
public <T> List<T> queryForMany(Class<T> type,String sql,Object...args){
Connection getconnection = JdbcUntil.getconnection();
try {
return queryRunner.query(getconnection,sql,new BeanListHandler<>(type),args);
} catch (SQLException throwables) {
throwables.printStackTrace();
}finally {
JdbcUntil.close(getconnection);
}
return null;
}
//执行返回一行一列的值
public Object queryForSingle(String sql,Object ...args){
Connection getconnection = JdbcUntil.getconnection();
try {
return queryRunner.query(getconnection,sql,new ScalarHandler(),args);
} catch (SQLException throwables) {
throwables.printStackTrace();
}finally {
JdbcUntil.close(getconnection);
}
return null;
}
}
baseDao对数据库进行操作
package until;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import com.alibaba.druid.pool.DruidPooledConnection;
import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
public class JdbcUntil {
private static DruidDataSource druidDataSource;
//数据库连接池的连接
static {
try {
Properties properties = new Properties();
InputStream resourceAsStream = JdbcUntil.class.getClassLoader().getResourceAsStream("jdbc.properties");
properties.load(resourceAsStream);
druidDataSource= (DruidDataSource) DruidDataSourceFactory.createDataSource(properties);
} catch (Exception e) {
e.printStackTrace();
}
}
//数据库连接池关闭
public static Connection getconnection(){
Connection connection = null;
try {
connection = druidDataSource.getConnection();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return connection;
}
public static void close(Connection connection){
if (connection!=null){
try {
connection.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
}
我的订单servlet
package servlet;
import pojo.Cart;
import pojo.Food;
import pojo.Page;
import service.CartService;
import service.CartServiceimpl;
import service.FoodService;
import service.FoodServiceimpl;
import until.WebUntil;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
public class CartServlet extends BaseServlet {
private CartService cartService=new CartServiceimpl();
private FoodService foodService=new FoodServiceimpl();
//添加商品加入我的订单,如果我的订单存在,则修改数量和总价
protected void addCart(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取食物id
int id=WebUntil.parseInt(req.getParameter("id"),1);
//查找该食物信息
Food food=foodService.queryFoodById(id);
int number=1;
int totalPrice;
//判断该食物是否存在
if(cartService.existCart(food.getName())){
totalPrice=number*food.getPrice();
Cart cart=new Cart(null,food.getName(),food.getPrice(),number,totalPrice);
cartService.addCart(cart);
}else{
//查找我的订单中该食物数量
number=cartService.queryIdByName(food.getName()).getNumber();
//数量增加
number++;
//重新计算总价格
totalPrice=number*food.getPrice();
//查找该食物id
int orderid = cartService.queryIdByName(food.getName()).getOrderid();
Cart cart=new Cart(orderid,food.getName(),food.getPrice(),number,totalPrice);
cartService.updateCart(cart);
}
food.setStock(food.getStock()-1);
cartService.updateFood(food);
req.setAttribute("cart",cartService.queryIdByName(food.getName()));
int pageNow=WebUntil.parseInt(req.getParameter("pageNow"),1);
req.getRequestDispatcher("pageServlet?action=pageChinaFood&pageNow="+pageNow).forward(req,resp);
}
//删除我的订单
protected void deleteCart(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
int id=WebUntil.parseInt(req.getParameter("id"),0) ;
cartService.deleteCart(id);
int pageNow=WebUntil.parseInt(req.getParameter("pageNow"),1);
req.getRequestDispatcher("cartServlet?action=readCart&pageNow="+pageNow).forward(req,resp);
}
//读取数据库数据到我的订单界面
protected void readCart(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
int pageNow= WebUntil.parseInt(req.getParameter("pageNow"),1);
int pageNumber=WebUntil.parseInt(req.getParameter("pageNumber"), Page.number);
Page<Cart> cartPage=cartService.cartPage(pageNow,pageNumber);
cartPage.setUrl("cartServlet?action=readCart");
req.setAttribute("page",cartPage);
List<Cart> cart=cartService.queryCart();
int totalNumber=0;
int totalPrices=0;
for (Cart cart1:cart) {
totalNumber=totalNumber+cart1.getNumber();
totalPrices=totalPrices+cart1.getTotalPrice();
}
req.setAttribute("totalNumber",totalNumber);
req.setAttribute("totalPrices",totalPrices);
req.getRequestDispatcher("/user/order.jsp").forward(req,resp);
}
}
后台管理servlet
package servlet;
import pojo.Food;
import pojo.Page;
import service.FoodService;
import service.FoodServiceimpl;
import service.UserService;
import service.UserServiceimpl;
import until.WebUntil;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
public class FoodServlet extends BaseServlet{
private FoodService foodService=new FoodServiceimpl();
//添加菜系
protected void addFood(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String name = req.getParameter("name");
int price=WebUntil.parseInt(req.getParameter("price"),0);
int number = WebUntil.parseInt(req.getParameter("number"),0);
int stock =WebUntil.parseInt(req.getParameter("stock"),0) ;
Food food=new Food(null,name,price,number,stock,null);
foodService.addFood(food);
req.getRequestDispatcher("foodServlet?action=page&pageNow="+req.getParameter("pageNow")).forward(req,resp);
}
protected void getFood(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
int id=WebUntil.parseInt(req.getParameter("id"),0);
Food foods = foodService.queryFoodById(id);
req.setAttribute("foods",foods);
req.getRequestDispatcher("user/updateFood.jsp").forward(req,resp);
}
//修改菜系
protected void updateFood(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Food food = WebUntil.copy(req.getParameterMap(), new Food());
System.out.println(food);
foodService.updateFood(food);
req.getRequestDispatcher("foodServlet?action=page&pageNow="+req.getParameter("pageNow")).forward(req,resp);
}
//删除菜系
protected void deleteFood(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
int id=WebUntil.parseInt(req.getParameter("id"),0);
foodService.deleteFood(id);
req.getRequestDispatcher("foodServlet?action=page&pageNow="+req.getParameter("pageNow")).forward(req,resp);
}
//读取菜系到页面
protected void readFood(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
List<Food> food=foodService.readFood();
//保存菜系数据域
req.setAttribute("food",food);
//页面跳转回后台界面
req.getRequestDispatcher("user/manager.jsp").forward(req,resp);
}
//后台数据制作分页
protected void page(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取当前页码
int pageNow= WebUntil.parseInt(req.getParameter("pageNow"),1);
//获取一个界面出现个数
int pageNumber=WebUntil.parseInt(req.getParameter("pageNumber"), Page.number);
//从数据库查找当前数据
Page<Food> foods= foodService.page(pageNow,pageNumber);
foods.setUrl("foodServlet?action=page");
req.setAttribute("page",foods);
req.getRequestDispatcher("/user/manager.jsp").forward(req,resp);
}
}
分页servlet
package servlet;
import pojo.Food;
import pojo.Page;
import service.FoodService;
import service.FoodServiceimpl;
import until.WebUntil;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
public class PageServlet extends BaseServlet{
private FoodService foodService=new FoodServiceimpl();
//处理主页数据以及分页功能
protected void pageChinaFood(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取当前页码
int pageNow= WebUntil.parseInt(req.getParameter("pageNow"),1);
//获取一个界面出现个数
int pageNumber=WebUntil.parseInt(req.getParameter("pageNumber"), Page.number);
//从数据库查找当前数据
Page<Food> foods= foodService.page(pageNow,pageNumber);
foods.setUrl("pageServlet?action=pageChinaFood");
req.setAttribute("page",foods);
req.getRequestDispatcher("/user/mainChinaFood.jsp").forward(req,resp);
}
}
用户功能sevlet
package servlet;
import pojo.User;
import service.UserService;
import service.UserServiceimpl;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class UserServlet extends BaseServlet{
protected UserService userService=new UserServiceimpl();
//注册
protected void register(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getParameter("username");
String password = req.getParameter("password");
String phone = req.getParameter("phone");
User user = new User(null, username, password, phone);
if(userService.exitUsername(username)){
userService.register(user);
req.getRequestDispatcher("/user/register_successs.jsp").forward(req,resp);
}else {
req.getRequestDispatcher("/user/regist.jsp").forward(req,resp);
}
}
//登陆
protected void login(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getParameter("username");
String password = req.getParameter("password");
User user = new User(null, username, password, null);
if(userService.login(user)==null){
req.getRequestDispatcher("/user/login.jsp").forward(req,resp);
}else{
req.getSession().setAttribute("user",user);
req.getRequestDispatcher("/user/login_success.jsp").forward(req,resp);
}
}
//退出登录
protected void loginout(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.getSession().invalidate();
resp.sendRedirect(req.getContextPath());
}
}
前端界面,
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html lang="cn">
<head>
<meta charset="UTF-8">
<title>Title</title>
<base href="http://localhost:8080/OrderFood/">
<link type="text/css" rel="stylesheet" href="static/css/mainChinaFood.css">
<link rel="stylesheet" type="text/css" href="static/style(js)/bootstrap.bundle.min.js">
<link rel="stylesheet" type="text/css" href="static/style(css)/bootstrap.min.css">
<script type="text/javascript" src="static/lib/jquery-1.7.2.js"></script>
<script type="text/javascript" >
$(function () {
$("#button").click(function (){
location.href="user/order.jsp";
})
})
</script>
</head>
<body>
<div id="div1">
<div id="font">食谱大全</div>
<a href="cartServlet?action=readCart" type="button" class="btn btn-link" id="button">我的订单</a>
<!-- 商品列表-->
<div id="background">
<c:forEach items="${requestScope.page.foods}" var="food">
<div id="box">
<img src="static/piture/小笼包.jpg" alt="" id="img1">
<div id="d1">菜品名称:${food.name}</div>
<div id="d2">菜品价格:${food.price}元/份</div>
<div id="d3">菜品数量:${food.stock}份</div>
<a href="cartServlet?action=addCart&id=${food.id}&pageNow=${requestScope.page.pageNow}" id="button1" type="button" class="btn btn-dark btn-sm">加入我的订单</a>
</div>
</c:forEach>
<!-- 分页区域-->
<%@include file="/common/page.jsp"%>
<script type="text/javascript">
$(function () {
$("#pages").click(function () {
var a=$("#inputs").val()
location.href="${pageScope.basePath}${requestScope.page.url}&pageNow="+a
})
})
</script>
<div style="font-size: 1.3pc;color: blue;position:absolute;top: 83%;left: 38%">您刚刚添加了${requestScope.cart.ordername}进入我的订单</div>
</div>
</div>
</body>
</html>
标签:food,resp,req,系统,getParameter,pageNow,import,点餐,制作 来源: https://blog.csdn.net/weixin_50616848/article/details/121390355