ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java项目:基于Jsp实现网上订餐系统

2022-01-19 16:33:01  阅读:177  来源: 互联网

标签:HttpServletRequest Java cn req request validator Jsp import 订餐


 项目编号:BS-SC-001

本项目基于JSP+SERVLET+Durid连接池进行开发实现,数据库采用MYSQL数据库,开发工具为IDEA或ECLIPSE,前端用采用BootStrap开发实现。系统采用三层架构设计,MVC设计模式。系统功能完整,页面简洁大方,维护方便,适合做毕业设计使用。

具体系统功能展示如下:

前台页面功能:

分类显示

餐品详情

添加购物车

个人订单管理

个人资料修改

系统留言

最近浏览功能

后台管理功能:

管理员登陆:  admin / admin

用户管理

分类管理

餐品管理

订单管理

留言管理

新闻管理

本系统是一款优秀的毕业设计系统,完美的实现了基于餐饮业务的网上订餐流程,功能强大,运行稳定,结构清晰,便于修改,适合做毕业设计使用。

部分核心代码:

package cn.jbit.easybuy.web;

import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import cn.jbit.easybuy.biz.FacilityService;
import cn.jbit.easybuy.biz.OrderService;
import cn.jbit.easybuy.biz.ProductService;
import cn.jbit.easybuy.biz.impl.FacilityServiceImpl;
import cn.jbit.easybuy.biz.impl.OrderServiceImpl;
import cn.jbit.easybuy.biz.impl.ProductServiceImpl;
import cn.jbit.easybuy.entity.News;
import cn.jbit.easybuy.entity.Pager;
import cn.jbit.easybuy.entity.Product;
import cn.jbit.easybuy.entity.ProductCategory;
import cn.jbit.easybuy.entity.ShoppingCart;
import cn.jbit.easybuy.entity.User;
import cn.jbit.easybuy.util.ActionResult;
import cn.jbit.easybuy.util.Validator;

public class CartServlet extends HttpServlet {
	protected Map<String, ActionResult> viewMapping = new HashMap<String, ActionResult>();
	private ProductService productService;
	private FacilityService facilityService;
	private OrderService orderService;

	public void init() throws ServletException {
		productService = new ProductServiceImpl();
		facilityService = new FacilityServiceImpl();
		orderService = new OrderServiceImpl();
	}

	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		doPost(req, resp);
	}

	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		req.setCharacterEncoding("utf-8");
		createViewMapping();
		String actionIndicator = req.getParameter("action");
		String result = "";

		if (actionIndicator == null)
			actionIndicator = "list";
		if ("list".endsWith(actionIndicator)) {
			result = list(req);
		} else if ("add".endsWith(actionIndicator)) {
			result = add(req);
		} else if ("mod".endsWith(actionIndicator)) {
			result = mod(req);
		} else if ("remove".endsWith(actionIndicator)) {
			result = remove(req);
		} else if ("pay".endsWith(actionIndicator)) {
			result = pay(req);
		}
		toView(req, resp, result);
	}

	private String pay(HttpServletRequest request) {
		ShoppingCart cart = getCartFromSession(request);
		User user = getUserFromSession(request);
		if(user==null)
			return "login";
		orderService.payShoppingCart(cart, user);
		removeCartFromSession(request);
		return "paySuccess";
	}

	private void removeCartFromSession(HttpServletRequest request) {
		request.getSession().removeAttribute("cart");
	}

	private User getUserFromSession(HttpServletRequest request) {
		HttpSession session = request.getSession();
		return (User) session.getAttribute("loginUser");
	}

	private String add(HttpServletRequest request) {
		String id = request.getParameter("entityId");
		String quantityStr = request.getParameter("quantity");
		long quantity = 1;
		if (!Validator.isEmpty(quantityStr))
			quantity = Long.parseLong(quantityStr);

		Product product = productService.findById(id);
		ShoppingCart cart = getCartFromSession(request);
		cart.addItem(product, quantity);
		return "addSuccess";
	}

	private String mod(HttpServletRequest request) {
		String id = request.getParameter("entityId");
		String quantityStr = request.getParameter("quantity");
		long quantity = 1;
		if (!Validator.isEmpty(quantityStr))
			quantity = Long.parseLong(quantityStr);
		String indexStr = request.getParameter("index");
		ShoppingCart cart = getCartFromSession(request);
		cart.modifyQuantity(Integer.parseInt(indexStr), quantity);
		return "modSuccess";
	}

	private String remove(HttpServletRequest request) {
		String id = request.getParameter("entityId");
		String quantityStr = request.getParameter("quantity");
		long quantity = 1;
		if (!Validator.isEmpty(quantityStr))
			quantity = Long.parseLong(quantityStr);
		String indexStr = request.getParameter("index");
		ShoppingCart cart = getCartFromSession(request);
		cart.getItems().remove(Integer.parseInt(indexStr));
		return "removeSuccess";
	}

	private ShoppingCart getCartFromSession(HttpServletRequest request) {
		HttpSession session = request.getSession();
		ShoppingCart cart = (ShoppingCart) session.getAttribute("cart");
		if (cart == null) {
			cart = new ShoppingCart();
			session.setAttribute("cart", cart);
		}
		//取出当前用户的订单列表

		return cart;
	}

	private String list(HttpServletRequest request) {
		getCartFromSession(request);
		return "listSuccess";
	}

	private void prepareCategories(HttpServletRequest request) {
		List<ProductCategory> categories = productService
				.getProductCategories(null);
		request.setAttribute("categories", categories);
	}

	private void prepareNews(HttpServletRequest request) {
		List<News> allNews = facilityService.getAllNews(new Pager(10, 1));
		request.setAttribute("allNews", allNews);
	}

	protected void createViewMapping() {
		this.addMapping("listSuccess", "shopping.jsp");
		this.addMapping("paySuccess", "shopping-result.jsp");
		this.addMapping("addSuccess", "Cart", true);
		this.addMapping("removeSuccess", "Cart", true);
		this.addMapping("modSuccess", "Cart", true);
		this.addMapping("login", "login.jsp");
	}

	private void toView(HttpServletRequest req, HttpServletResponse resp,
			String result) throws IOException, ServletException {
		ActionResult dest = this.viewMapping.get(result);
		if (dest.isRedirect()) {
			resp.sendRedirect(dest.getViewName());
		} else {
			req.getRequestDispatcher(dest.getViewName()).forward(req, resp);
		}
	}

	protected void addMapping(String viewName, String url) {
		this.viewMapping.put(viewName, new ActionResult(url));
	}

	protected void addMapping(String viewName, String url, boolean isDirect) {
		this.viewMapping.put(viewName, new ActionResult(url, isDirect));
	}
}
package cn.jbit.easybuy.web;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.jbit.easybuy.biz.ProductService;
import cn.jbit.easybuy.biz.impl.ProductServiceImpl;
import cn.jbit.easybuy.entity.ProductCategory;
import cn.jbit.easybuy.util.ActionResult;
import cn.jbit.easybuy.util.Validator;

public class CategoryServlet extends HttpServlet {
	private ProductService productService;

	public void init() throws ServletException {
		productService = new ProductServiceImpl();
	}

	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		doPost(req, resp);
	}

	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		req.setCharacterEncoding("utf-8");
		String actionIndicator = req.getParameter("action");
		ActionResult result = new ActionResult("error");
		Validator validator = new Validator(Validator.toSingleParameters(req));

		if (actionIndicator == null)
			actionIndicator = "list";
		if ("read".endsWith(actionIndicator)) {
			result = read(req, validator);
		} else if ("list".endsWith(actionIndicator)) {
			result = list(req, validator);
		} else if ("create".endsWith(actionIndicator)) {
			result = create(req, validator);
		} else if ("delete".endsWith(actionIndicator)) {
			result = delete(req, validator);
		} else if ("save".endsWith(actionIndicator)) {
			boolean isEdit = true;
			String editIndicator = req.getParameter("entityId");
			if (Validator.isEmpty(editIndicator))
				isEdit = false;
			result = save(req, validator, isEdit);
		}

		if (!validator.hasErrors() && result.isRedirect()) {
			resp.sendRedirect(result.getViewName());
		} else {
			req.setAttribute("errors", validator.getErrors());
			req.getRequestDispatcher(result.getViewName()).forward(req, resp);
		}
	}

	public ActionResult read(HttpServletRequest request, Validator validator) {
		ProductCategory category = productService.findCategoryById(request
				.getParameter("entityId"));
		pupulateRequest(request, category);
		List<ProductCategory> categories = productService.getRootCategories();
		request.setAttribute("categories", categories);
		return new ActionResult("productClass-modify.jsp");
	}

	public ActionResult save(HttpServletRequest request, Validator validator,
			boolean isEdit) {
		String entityId = request.getParameter("entityId");
		checkInputErrors(request, validator);
		saveToDatabase(request, validator, isEdit);

		return new ActionResult("Category", true);
	}

	public ActionResult create(HttpServletRequest request, Validator validator) {
		List<ProductCategory> categories = productService.getRootCategories();
		request.setAttribute("categories", categories);
		request.setAttribute("parentId", 0);
		return new ActionResult("productClass-modify.jsp");
	}

	public ActionResult delete(HttpServletRequest request, Validator validator) {
		productService.deleteCategory(request.getParameter("entityId"));
		return new ActionResult("Category", true);
	}

	public ActionResult list(HttpServletRequest request, Validator validator) {
		List<ProductCategory> categories = productService
				.getProductCategories(null);
		request.setAttribute("categories", categories);
		return new ActionResult("productClass.jsp");
	}

	private void saveToDatabase(HttpServletRequest request,
			Validator validator, boolean isEdit) {
		if (!validator.hasErrors()) {
			ProductCategory productCategory;
			if (!isEdit) {
				productCategory = new ProductCategory();
				populateEntity(request, productCategory);
				productCategory.setParentId(Long.parseLong(request
						.getParameter("parentId")));
				productService.saveCategory(productCategory);
			} else {
				productCategory = productService.findCategoryById(request
						.getParameter("entityId"));
				Long parentId = Long
						.parseLong(request.getParameter("parentId"));
				populateEntity(request, productCategory);

				if (parentId == 0) {
					if (productCategory.getId().equals(
							productCategory.getParentId())) {
						// 说明是一级分类,父分类不能修改,只能改名字
						productService.updateCategoryName(productCategory);
					} else {
						// 二级分类修改为一级分类了,需要额外更新:
						// Product原先属于该二级分类的,全部更新一级为它,二级为空
						productCategory.setParentId(productCategory.getId());
						productService.updateCategory(productCategory,
								"Level2To1");
					}
				} else {
					if (!parentId.equals(productCategory.getParentId())) {
						// 二级分类修改了父分类,需要额外更新:
						// Product原先属于该二级分类的,全部更新一级为新的父分类
						productCategory.setParentId(parentId);
						productService.updateCategory(productCategory,
								"ModifyParent");
					} else {
						// 二级分类修改了名字
						productService.updateCategoryName(productCategory);
					}
				}
			}
		}
	}

	private void pupulateRequest(HttpServletRequest request,
			ProductCategory productCategory) {
		request
				.setAttribute("entityId", Long
						.toString(productCategory.getId()));
		request.setAttribute("name", productCategory.getName());
		request.setAttribute("parentId", (productCategory.getParentId()
				.equals(productCategory.getId())) ? 0 : productCategory
				.getParentId());
	}

	private void checkInputErrors(HttpServletRequest request,
			Validator validator) {
		validator.checkRequiredError(new String[] { "name" });
	}

	private void populateEntity(HttpServletRequest request,
			ProductCategory productCategory) {
		productCategory.setName(request.getParameter("name"));
	}
}

package cn.jbit.easybuy.web;

import java.io.IOException;
import java.util.Date;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.jbit.easybuy.biz.FacilityService;
import cn.jbit.easybuy.biz.ProductService;
import cn.jbit.easybuy.biz.impl.FacilityServiceImpl;
import cn.jbit.easybuy.biz.impl.ProductServiceImpl;
import cn.jbit.easybuy.entity.Comment;
import cn.jbit.easybuy.entity.Pager;
import cn.jbit.easybuy.entity.ProductCategory;
import cn.jbit.easybuy.util.ActionResult;
import cn.jbit.easybuy.util.Validator;

public class CommentServlet extends HttpServlet {
	private FacilityService facilityService;
	private ProductService productService;

	public void init() throws ServletException {
		this.facilityService = new FacilityServiceImpl();
		this.productService = new ProductServiceImpl();
	}

	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		doPost(req, resp);
	}

	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		req.setCharacterEncoding("utf-8");
		String actionIndicator = req.getParameter("action");
		ActionResult result = new ActionResult("error");
		Validator validator = new Validator(Validator.toSingleParameters(req));

		if (actionIndicator == null)
			actionIndicator = "list";
		if ("read".endsWith(actionIndicator)) {
			result = read(req, validator);
		} else if ("list".endsWith(actionIndicator)) {
			result = list(req, validator);
		} else if ("delete".endsWith(actionIndicator)) {
			result = delete(req, validator);
		} else if ("save".endsWith(actionIndicator)) {
			boolean isEdit = true;
			String editIndicator = req.getParameter("entityId");
			if (Validator.isEmpty(editIndicator))
				isEdit = false;
			result = save(req, validator, isEdit);
		}

		if (!validator.hasErrors() && result.isRedirect()) {
			resp.sendRedirect(result.getViewName());
		} else {
			req.setAttribute("errors", validator.getErrors());
			req.getRequestDispatcher(result.getViewName()).forward(req, resp);
		}
	}

	public ActionResult read(HttpServletRequest request, Validator validator) {
		Comment comment = facilityService.findCommentById(request
				.getParameter("entityId"));
		pupulateRequest(request, comment);
		return new ActionResult("guestbook-modify.jsp");
	}

	public ActionResult save(HttpServletRequest request, Validator validator,
			boolean isEdit) {
		checkInputErrors(request, validator);
		saveToDatabase(request, validator, isEdit);
		return new ActionResult("GuestBook", true);
	}

	public ActionResult delete(HttpServletRequest request, Validator validator) {
		facilityService.deleteComment(request.getParameter("entityId"));
		return new ActionResult("GuestBook", true);
	}

	public ActionResult list(HttpServletRequest request, Validator validator) {
		String page = request.getParameter("page");
		int pageNo = 1;
		if (!Validator.isEmpty(page))
			pageNo = Integer.parseInt(page);
		long rowCount = facilityService.getCommentRowCount();
		Pager pager = new Pager(rowCount, pageNo);
		List<Comment> comments = facilityService.getComments(pager);
		List<ProductCategory> categories = productService
				.getProductCategories(null);
		request.setAttribute("categories", categories);
		request.setAttribute("comments", comments);
		request.setAttribute("pager", pager);
		request.setAttribute("pageNo", pageNo);
		return new ActionResult("guestbook.jsp");
	}

	private void pupulateRequest(HttpServletRequest request, Comment comment) {
		request.setAttribute("entityId", Long.toString(comment.getId()));
		request.setAttribute("reply", comment.getReply());
		request.setAttribute("content", comment.getContent());
		request.setAttribute("nickName", comment.getNickName());
		request.setAttribute("replayTime", Validator.dateToString(comment
				.getReplyTime()));
	}

	private void saveToDatabase(HttpServletRequest request,
			Validator validator, boolean isEdit) {
		if (!validator.hasErrors()) {
			Comment comment;
			if (!isEdit) {
				comment = new Comment();
				comment.setCreateTime(new Date());
				populateEntity(request, comment);
				facilityService.saveComment(comment);
			} else {
				comment = facilityService.findCommentById(request
						.getParameter("entityId"));
				if (!Validator.isEmpty(request.getParameter("reply"))) {
					comment.setReply(request.getParameter("reply"));
					comment.setReplyTime(new Date());
				}
				facilityService.updateComment(comment);
			}
		}
	}

	private void checkInputErrors(HttpServletRequest request,
			Validator validator) {
		validator.checkRequiredError(new String[] { "content", "nickName" });
	}

	private void populateEntity(HttpServletRequest request, Comment comment) {
		comment.setContent(request.getParameter("content"));
		comment.setNickName(request.getParameter("nickName"));
	}
}

标签:HttpServletRequest,Java,cn,req,request,validator,Jsp,import,订餐
来源: https://blog.csdn.net/znzbs/article/details/122584000

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有