• JSP图书销售管理系统


    作者主页:夜未央5788

     简介:Java领域优质创作者、Java项目、学习资料、技术互助

    文末获取源码

    项目介绍

    该系统分为前后台,普通用户与管理员两种角色,前台普通用户登录,后台管理员登录;
    用户角色包含以下功能:
    提交订单,查看图书列表,查看图书详情,查看订单,查看购物车,用户登录等功能。

    管理员角色包含以下功能:
    一级分类管理,分类管理,发货,图书信息管理,添加图书,订单管理等功能。

    环境需要

    1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
    2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
    3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
    4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 

    5.数据库:MySql 5.7版本;

    6.是否Maven项目:否;

    技术栈

    1.后端:servlet

    2.前端:JSP+CSS+JavaScript+jQuery

    使用说明

    1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;

    2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;

    若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;

    3. 将项目中c3p0-config.xml配置文件中的数据库配置改为自己的配置;

    4. 运行项目,在浏览器中输入http://localhost:8080/goods/ 登录

    注:Tomcat中配置项目路径必须为goods,否则会导致

    管理员账号/密码:guanyu/123

    用户账号/密码: zhangsan/123456

    运行截图

    前台界面

     

     

     

     

    后台管理员界面

     

     

     

     

     

    相关代码

     图书servlet

    1. public class BookServlet extends BaseServlet {
    2. private BookService bookService = new BookService();
    3. /**
    4. * 获取当前页码
    5. * @param req
    6. * @return
    7. */
    8. private int getPc(HttpServletRequest req) {
    9. int pc = 1;
    10. String param = req.getParameter("pc");
    11. if(param != null && !param.trim().isEmpty()) {
    12. try {
    13. pc = Integer.parseInt(param);
    14. } catch(RuntimeException e) {}
    15. }
    16. return pc;
    17. }
    18. /**
    19. * 截取url,页面中的分页导航中需要使用它做为超链接的目标!
    20. * @param req
    21. * @return
    22. */
    23. /*
    24. * http://localhost:8080/goods/BookServlet?methed=findByCategory&cid=xxx&pc=3
    25. * /goods/BookServlet + methed=findByCategory&cid=xxx&pc=3
    26. */
    27. private String getUrl(HttpServletRequest req) {
    28. String url = req.getRequestURI() + "?" + req.getQueryString();
    29. /*
    30. * 如果url中存在pc参数,截取掉,如果不存在那就不用截取。
    31. */
    32. int index = url.lastIndexOf("&pc=");
    33. if(index != -1) {
    34. url = url.substring(0, index);
    35. }
    36. return url;
    37. }
    38. /**
    39. * 按bid查询
    40. * @param req
    41. * @param resp
    42. * @return
    43. * @throws ServletException
    44. * @throws IOException
    45. */
    46. public String load(HttpServletRequest req, HttpServletResponse resp)
    47. throws ServletException, IOException {
    48. String bid = req.getParameter("bid");//获取链接的参数bid
    49. Book book = bookService.load(bid);//通过bid得到book对象
    50. req.setAttribute("book", book);//保存到req中
    51. return "f:/jsps/book/desc.jsp";//转发到desc.jsp
    52. }
    53. /**
    54. * 按分类查
    55. * @param req
    56. * @param resp
    57. * @return
    58. * @throws ServletException
    59. * @throws IOException
    60. */
    61. public String findByCategory(HttpServletRequest req, HttpServletResponse resp)
    62. throws ServletException, IOException {
    63. /*
    64. * 1. 得到pc:如果页面传递,使用页面的,如果没传,pc=1
    65. */
    66. int pc = getPc(req);
    67. /*
    68. * 2. 得到url:...
    69. */
    70. String url = getUrl(req);
    71. /*
    72. * 3. 获取查询条件,本方法就是cid,即分类的id
    73. */
    74. String cid = req.getParameter("cid");
    75. /*
    76. * 4. 使用pc和cid调用service#findByCategory得到PageBean
    77. */
    78. PageBean<Book> pb = bookService.findByCategory(cid, pc);
    79. /*
    80. * 5. 给PageBean设置url,保存PageBean,转发到/jsps/book/list.jsp
    81. */
    82. pb.setUrl(url);
    83. req.setAttribute("pb", pb);
    84. return "f:/jsps/book/list.jsp";
    85. }
    86. /**
    87. * 按作者查
    88. * @param req
    89. * @param resp
    90. * @return
    91. * @throws ServletException
    92. * @throws IOException
    93. */
    94. public String findByAuthor(HttpServletRequest req, HttpServletResponse resp)
    95. throws ServletException, IOException {
    96. /*
    97. * 1. 得到pc:如果页面传递,使用页面的,如果没传,pc=1
    98. */
    99. int pc = getPc(req);
    100. /*
    101. * 2. 得到url:...
    102. */
    103. String url = getUrl(req);
    104. /*
    105. * 3. 获取查询条件,本方法就是cid,即分类的id
    106. */
    107. String author = req.getParameter("author");
    108. /*
    109. * 4. 使用pc和cid调用service#findByCategory得到PageBean
    110. */
    111. PageBean<Book> pb = bookService.findByAuthor(author, pc);
    112. /*
    113. * 5. 给PageBean设置url,保存PageBean,转发到/jsps/book/list.jsp
    114. */
    115. pb.setUrl(url);
    116. req.setAttribute("pb", pb);
    117. return "f:/jsps/book/list.jsp";
    118. }

    购物车servlet

    1. public class CartItemServlet extends BaseServlet {
    2. private CartItemService cartItemService = new CartItemService();
    3. /**
    4. * 加载多个CartItem
    5. * @param req
    6. * @param resp
    7. * @return
    8. * @throws ServletException
    9. * @throws IOException
    10. */
    11. public String loadCartItems(HttpServletRequest req, HttpServletResponse resp)
    12. throws ServletException, IOException {
    13. /*
    14. * 1. 获取cartItemIds参数
    15. */
    16. String cartItemIds = req.getParameter("cartItemIds");
    17. double total = Double.parseDouble(req.getParameter("total"));
    18. /*
    19. * 2. 通过service得到List<CartItem>
    20. */
    21. List<CartItem> cartItemList = cartItemService.loadCartItems(cartItemIds);
    22. /*
    23. * 3. 保存,然后转发到/cart/showitem.jsp
    24. */
    25. req.setAttribute("cartItemList", cartItemList);
    26. req.setAttribute("total", total);
    27. req.setAttribute("cartItemIds", cartItemIds);
    28. return "f:/jsps/cart/showitem.jsp";
    29. }
    30. public String updateQuantity(HttpServletRequest req, HttpServletResponse resp)
    31. throws ServletException, IOException {
    32. String cartItemId = req.getParameter("cartItemId");
    33. int quantity = Integer.parseInt(req.getParameter("quantity"));
    34. CartItem cartItem = cartItemService.updateQuantity(cartItemId, quantity);
    35. // 给客户端返回一个json对象
    36. StringBuilder sb = new StringBuilder("{");
    37. sb.append("\"quantity\"").append(":").append(cartItem.getQuantity());
    38. sb.append(",");
    39. sb.append("\"subtotal\"").append(":").append(cartItem.getSubtotal());
    40. sb.append("}");
    41. resp.getWriter().print(sb);
    42. return null;
    43. }
    44. /**
    45. * 批量删除功能
    46. * @param req
    47. * @param resp
    48. * @return
    49. * @throws ServletException
    50. * @throws IOException
    51. */
    52. public String batchDelete(HttpServletRequest req, HttpServletResponse resp)
    53. throws ServletException, IOException {
    54. /*
    55. * 1. 获取cartItemIds参数
    56. * 2. 调用service方法完成工作
    57. * 3. 返回到list.jsp
    58. */
    59. String cartItemIds = req.getParameter("cartItemIds");
    60. cartItemService.batchDelete(cartItemIds);
    61. return myCart(req, resp);
    62. }
    63. /**
    64. * 添加购物车条目
    65. * @param req
    66. * @param resp
    67. * @return
    68. * @throws ServletException
    69. * @throws IOException
    70. */
    71. public String add(HttpServletRequest req, HttpServletResponse resp)
    72. throws ServletException, IOException {
    73. /*
    74. * 1. 封装表单数据到CartItem(bid, quantity)
    75. */
    76. Map map = req.getParameterMap();
    77. CartItem cartItem = CommonUtils.toBean(map, CartItem.class);
    78. Book book = CommonUtils.toBean(map, Book.class);
    79. User user = (User)req.getSession().getAttribute("sessionUser");
    80. cartItem.setBook(book);
    81. cartItem.setUser(user);
    82. /*
    83. * 2. 调用service完成添加
    84. */
    85. cartItemService.add(cartItem);
    86. /*
    87. * 3. 查询出当前用户的所有条目,转发到list.jsp显示
    88. */
    89. return myCart(req, resp);
    90. }

    如果也想学习本系统,下面领取。回复:017JSP 

  • 相关阅读:
    定了!百度WAVE SUMMIT 2024正式定档6月28日
    MySQL MVVC多版本并发控制
    leetcode经典例题——单词拆分
    腾讯云安全2022年度产品发布会:“3+1”一体化防护体系 助力企业实现云上安全“最优解”
    汽车发电机
    ios CI/CD 持续集成 组件化专题一 iOS 将图片打包成bundle
    各种存储性能瓶颈分析与优化方案
    傻瓜式制作产品图册,一秒就能学会
    微信公众号获取openid流程
    Java剑指Offer青蛙跳台阶问题
  • 原文地址:https://blog.csdn.net/hanyunlong1989/article/details/125597713