Java毕业设计实战 共享租车信息管理系统
一、项目简述
基于servlet+jsp+jdbc的后台管理系统,包含5个模块:汽车账户部管理、租车账户部管理、汽车信息管理表、租车记录表、租车租聘表。功能完整,均能实现增删查改。
二、项目运行
运行环境: jdk8+tomcat8.5+mysql5.7+Eclipse
项目技术: servlet+jsp+jdbc+easyui+jquery
主页登陆注册业务:
public class ForeServlet extends BaseForeServlet { /** * 显示主页 * * @param request * @param response * @param page * @return */ public String home(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("调用了 ForeServlet home方法"); List<Category> cs = new CategoryDAO().list(); new ProductDAO().fill(cs); new ProductDAO().fillByRow(cs); request.setAttribute("cs", cs); return "home.jsp"; } /** * 注册 * * @param request * @param response * @param page * @return */ public String register(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("调用了 ForeServlet register方法"); Map<String, String> params = new HashMap<>(); InputStream inputStream = super.parseUpload(request, params); System.out.println(params); String name = params.get("name"); String password = params.get("password"); System.out.println(name); // 判断用户名是否存在 boolean exist = userDAO.isExists(name); if (exist) { request.setAttribute("msg", "用户名已经被使用"); return "register.jsp"; } User user = new User(); user.setName(name); user.setPassword(password); System.out.println(user.getName()); System.out.println(user.getPassword()); userDAO.add(user); return "@registerSuccess.jsp"; } /** * 登录 * * @param request * @param response * @param page * @return */ public String login(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("调用了 ForeServlet login方法"); Map<String, String> params = new HashMap<>(); InputStream inputStream = super.parseUpload(request, params); System.out.println(params); String name = params.get("name"); String password = params.get("password"); // 登录 User user = userDAO.get(name, password); if (null == user) { request.setAttribute("msg", "账号密码错误"); return "login.jsp"; } // 将账号密码储存在Session中 request.getSession().setAttribute("user", user); return "@forehome"; } /** * 登出 * * @param request * @param response * @param page * @return */ public String logout(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("调用了 ForeServlet logout方法"); request.getSession().removeAttribute("user"); return "@forehome"; } /** * 检查用户是否登录 * * @param request * @param response * @param page * @return */ public String checkLogin(HttpServletRequest request, HttpServletResponse response, Page page) { User user = (User) request.getSession().getAttribute("user"); if (user != null) { return "%success"; } return "%fail"; } /** * 模态登录框通过 Ajax 方法登录 * * @param request * @param response * @param page * @return */ public String loginAjax(HttpServletRequest request, HttpServletResponse response, Page page) { String name = request.getParameter("name"); String password = request.getParameter("password"); User user = userDAO.get(name, password); if (user == null) return "%fail"; request.getSession().setAttribute("user", user); return "%success"; } /** * 显示产品页 * * @param request * @param response * @param page * @return */ public String product(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("调用了 ForeServlet product方法"); int pid = Integer.parseInt(request.getParameter("pid")); Product p = productDAO.get(pid); // 获取产品的single图片和detail图片 List<ProductImage> productSingleImages = productImageDAO.list(p, ProductImageDAO.type_single); List<ProductImage> productDetailImages = productImageDAO.list(p, ProductImageDAO.type_detail); p.setProductSingleImages(productSingleImages); p.setProductDetailImages(productDetailImages); //p.setFirstProductImage(productSingleImages.get(0)); // 获取产品属性信息 List<PropertyValue> pvs = propertyValueDAO.list(p.getId()); // 获取产品评价信息 List<Review> reviews = reviewDAO.list(p.getId()); // 设置产品销量数和评价数 productDAO.setSaleAndReviewNumber(p); request.setAttribute("p", p); request.setAttribute("pvs", pvs); request.setAttribute("reviews", reviews); return "product.jsp"; } /** * 分类页面 * * @return */ public String category(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("调用了ForeServlet category方法"); int cid = Integer.parseInt(request.getParameter("cid")); // 获取分类对象并为填充产品对象、销量、评价 Category c = new CategoryDAO().get(cid); new ProductDAO().fill(c); new ProductDAO().setSaleAndReviewNumber(c.getProducts()); // 根据获取的排序方式进行排序 String sort = request.getParameter("sort"); if (null != sort) { switch (sort) { case "review": Collections.sort(c.getProducts(), new ProductReviewComparator()); break; case "date": Collections.sort(c.getProducts(), new ProductDateComparator()); break; case "saleCount": Collections.sort(c.getProducts(), new ProductSaleCountComparator()); break; case "price": Collections.sort(c.getProducts(), new ProductPriceComparator()); break; case "all": Collections.sort(c.getProducts(), new ProductAllComparator()); break; } } // 排序完成后,将分类对象添加到域对象 request 中 request.setAttribute("c", c); return "category.jsp"; } /** * 搜索功能 * * @param request * @param response * @param page * @return */ public String search(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("调用了ForeServlet search方法"); String keyword = request.getParameter("keyword"); List<Product> ps = null; // 加入异常,防止崩溃 try { ps = productDAO.search(keyword, 0, 50); } catch (Exception e) { e.printStackTrace(); } // 设置产品的销量和评论 productDAO.setSaleAndReviewNumber(ps); request.setAttribute("ps", ps); return "searchResult.jsp"; } /** * 立即购买 * * @param request * @param response * @param page * @return */ public String buyone(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("调用了ForeServlet buyone方法"); int pid = Integer.parseInt(request.getParameter("pid")); int num = Integer.parseInt(request.getParameter("num")); Product p = productDAO.get(pid); User user = (User) request.getSession().getAttribute("user"); List<OrderItem> ois = orderItemDAO.listByUser(user.getId()); int oiid = 0; boolean found = false; // 遍历订单,如果订单已存在对应的产品,就在对应购物车的基础上调整数量 if (null != ois) { for (OrderItem oi : ois) { if (oi.getProduct().getId() == p.getId()) { oi.setNumber(oi.getNumber() + num); orderItemDAO.update(oi); found = true; oiid = oi.getId(); break; } } } // 如果没找到对应的商品,则新建一条订单项 if (!found) { OrderItem oi = new OrderItem(); oi.setUser(user); oi.setProduct(p); oi.setNumber(num); orderItemDAO.add(oi); oiid = oi.getId(); } return "@forebuy?oiid=" + oiid; } /** * 结算页面 * * @param request * @param response * @param page * @return */ public String buy(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("调用了ForeServlet buy方法"); String[] oiids = request.getParameterValues("oiid"); List<OrderItem> ois = new ArrayList<>(); float total = 0; for (String strid : oiids) { int oiid = Integer.parseInt(strid); OrderItem oi = orderItemDAO.get(oiid); total += oi.getProduct().getPromotePrice() * oi.getNumber(); ois.add(oi); } request.getSession().setAttribute("ois", ois); request.setAttribute("total", total); return "buy.jsp"; } /** * 购物车 * * @param request * @param response * @param page * @return */ public String cart(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("调用了ForeServlet cart方法"); User user = (User) request.getSession().getAttribute("user"); List<OrderItem> ois = orderItemDAO.listByUser(user.getId()); request.setAttribute("ois", ois); return "cart.jsp"; } /** * 加入购物车 * * @param request * @param response * @param page * @return */ public String addCart(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("调用了ForeServlet addCart方法"); int pid = Integer.parseInt(request.getParameter("pid")); int num = Integer.parseInt(request.getParameter("num")); Product p = productDAO.get(pid); User user = (User) request.getSession().getAttribute("user"); List<OrderItem> ois = orderItemDAO.listByUser(user.getId()); int oiid = 0; boolean found = false; // 遍历订单,如果订单已存在对应的产品,就在对应购物车的基础上调整数量 if (null != ois) { for (OrderItem oi : ois) { if (oi.getProduct().getId() == p.getId()) { oi.setNumber(oi.getNumber() + num); orderItemDAO.update(oi); found = true; oiid = oi.getId(); break; } } } // 如果没找到对应的商品,则新建一条订单项 if (!found) { OrderItem oi = new OrderItem(); oi.setUser(user); oi.setProduct(p); oi.setNumber(num); orderItemDAO.add(oi); oiid = oi.getId(); } return "%success"; } /** * 更改当前订单项的内容 * * @param request * @param response * @param page * @return * @throws UnsupportedEncodingException */ public String changeOrderItem(HttpServletRequest request, HttpServletResponse response, Page page) throws UnsupportedEncodingException { System.out.println("调用了ForeServlet changeOrderItem方法"); User user = (User) request.getSession().getAttribute("user"); if (null == user) return "%fail"; int pid = Integer.parseInt(request.getParameter("pid")); int number = Integer.parseInt(request.getParameter("number")); List<OrderItem> ois = orderItemDAO.listByUser(user.getId()); for (OrderItem oi : ois) { if (oi.getProduct().getId() == pid) { oi.setNumber(number); orderItemDAO.update(oi); break; } } return "%success"; } /** * 删除订单项 * * @param request * @param response * @param page * @return * @throws UnsupportedEncodingException */ public String deleteOrderItem(HttpServletRequest request, HttpServletResponse response, Page page) throws UnsupportedEncodingException { System.out.println("调用了ForeServlet deleteOrderItem方法"); User user = (User) request.getSession().getAttribute("user"); if (null == user) return "%fail"; int oiid = Integer.parseInt(request.getParameter("oiid")); orderItemDAO.delete(oiid); return "%success"; } /** * 创建订单 * * @param request * @param response * @param page * @return * @throws UnsupportedEncodingException */ public String createOrder(HttpServletRequest request, HttpServletResponse response, Page page) throws UnsupportedEncodingException { System.out.println("调用了ForeServlet createOrder方法"); // 防止post方法中文乱码 request.setCharacterEncoding("UTF-8"); User user = (User) request.getSession().getAttribute("user"); List<OrderItem> ois = (List<OrderItem>) request.getSession().getAttribute("ois"); if (ois.isEmpty()) return "@login.jsp"; String address = request.getParameter("address"); String post = request.getParameter("post"); String reciver = request.getParameter("reciver"); String mobile = request.getParameter("mobile"); Order order = new Order(); String orderCode = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); order.setOrderCode(orderCode); order.setAddress(address); order.setPost(post); order.setReceiver(reciver); order.setMobile(mobile); order.setUserMessage("默认内容"); order.setCreateDate(new Date()); order.setUser(user); order.setStatus(OrderDAO.waitPay); orderDAO.add(order); // 统计总金额并设置每个订单项的所属订单 float total = 0; for (OrderItem oi : ois) { oi.setOrder(order); orderItemDAO.update(oi); total += oi.getProduct().getPromotePrice() * oi.getNumber(); } return "@forealipay?oid=" + order.getId() + "&total=" + total; } /** * 支付界面 * * @param request * @param response * @param page * @return */ public String alipay(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("调用了ForeServlet alipay方法"); return "alipay.jsp"; } /** * 支付完成界面 * @param request * @param response * @param page * @return */ public String payed(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("调用了ForeServlet payed方法"); int oid = Integer.parseInt(request.getParameter("oid")); Order order = orderDAO.get(oid); order.setStatus(OrderDAO.waitDelivery); order.setPayDate(new Date()); orderDAO.update(order); request.setAttribute("o", order); return "payed.jsp"; } /** * 我的订单页面 * @param request * @param response * @param page * @return */ public String bought(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("调用了ForeServlet bought方法"); User user = (User) request.getSession().getAttribute("user"); List<Order> os = orderDAO.list(user.getId(), OrderDAO.delete); orderItemDAO.fill(os); request.setAttribute("os", os); return "bought.jsp"; } }
用户登陆页面:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE html> <html> <head> <title>用户登录</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/bootstrap.css" rel="external nofollow" > <link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/style.css" rel="external nofollow" > <script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery.min.js"></script> <script type="text/javascript" src="<%=request.getContextPath()%>/js/bootstrap.min.js"></script> <script type="text/javascript" src="<%=request.getContextPath()%>/js/simpleCart.min.js"></script> </head> <body> <!--header--> <jsp:include page="header.jsp"> <jsp:param name="flag" value="9"></jsp:param> </jsp:include> <!--//header--> <!--account--> <div class="account"> <div class="container"> <div class="register"> <c:if test="${!empty msg }"> <div class="alert alert-success">${msg }</div> </c:if> <c:if test="${!empty failMsg }"> <div class="alert alert-danger">${failMsg }</div> </c:if> <form action="<%=request.getContextPath()%>/user_login" method="post"> <div class="register-top-grid"> <h3>用户登录</h3> <div class="input"> <span>用户名/邮箱 <label style="color:red;">*</label></span> <input type="text" name="ue" placeholder="请输入用户名" required="required"> </div> <div class="input"> <span>密码 <label style="color:red;">*</label></span> <input type="text" name="password" placeholder="请输入密码" required="required"> </div> <div class="clearfix"> </div> </div> <div class="register-but text-center"> <input type="submit" value="提交"> <div class="clearfix"> </div> </div> </form> <div class="clearfix"> </div> </div> </div> </div> <!--//account--> <!--footer--> <jsp:include page="footer.jsp"></jsp:include> <!--//footer--> </body> </html>
添加类型业务:
@WebServlet("/addCategoryServlet") public class AddCategoryServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); String a = request.getParameter("parentId"); String b = request.getParameter("className"); System.out.println("parentId"+a); System.out.println("className"+b); Category category = new Category(); category.setCategory_parentid(Integer.valueOf(a)); category.setCategory_name(b); CategoryService service = new CategoryServiceImpl(); service.addCategory(category); PrintWriter out = response.getWriter(); out.write("<script>"); out.write("alert('插入分类成功!');"); out.write("location.href='/HOMEECMS/categoryListServlet'"); out.write("</script>"); out.close(); // request.getRequestDispatcher("").forward(request,response); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } }
关于Java毕业设计实战之共享租车信息管理系统的实现的文章就介绍至此,更多相关Java 共享租车信息管理内容请搜索编程宝库以前的文章,希望以后支持编程宝库!
一、项目运行环境配置:Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)项目技术:S ...