• Java项目:SSM实现的一个在线文具学习用品购买商城网站


    作者主页:夜未央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. 后端:Spring+SpringMVC+Mybatis

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

    使用说明

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

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

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

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

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

    运行截图

    前台界面

     

     

     

     

     

     

    后台界面

     

     

     

     

     

    相关代码

    Action 基类

    1. package com.action;
    2. import java.io.IOException;
    3. import java.io.PrintWriter;
    4. import java.util.Map;
    5. import javax.servlet.http.HttpServletRequest;
    6. import javax.servlet.http.HttpServletResponse;
    7. import javax.servlet.http.HttpSession;
    8. import org.apache.commons.logging.Log;
    9. import org.apache.commons.logging.LogFactory;
    10. import org.json.JSONException;
    11. import org.json.JSONObject;
    12. import org.springframework.stereotype.Controller;
    13. import org.springframework.web.context.request.RequestContextHolder;
    14. import org.springframework.web.context.request.ServletRequestAttributes;
    15. /**
    16. * Action 基类
    17. */
    18. @Controller
    19. public class BaseAction {
    20. /* 日志 */
    21. protected final Log log = LogFactory.getLog(getClass());
    22. /* 获取基本环境 */
    23. public Map getParameters() {// 封装为Map的requestParameters
    24. ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
    25. return attrs.getRequest().getParameterMap();
    26. }
    27. public HttpServletRequest getRequest() {
    28. ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
    29. return attrs.getRequest();
    30. }
    31. public HttpSession getSession() {
    32. HttpSession session = null;
    33. try {
    34. session = this.getRequest().getSession();
    35. } catch (Exception e) {
    36. }
    37. return session;
    38. }
    39. /* 向客户端输出操作成功或失败信息 */
    40. public void writeJsonResponse(String success) throws IOException, JSONException {
    41. ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
    42. HttpServletResponse response = attrs.getResponse();
    43. response.setContentType("text/json;charset=UTF-8");
    44. PrintWriter out = response.getWriter();
    45. // 将要被返回到客户端的对象
    46. JSONObject json = new JSONObject();
    47. json.accumulate("result", success);
    48. System.out.println(json.toString());
    49. out.println(json.toString());
    50. out.flush();
    51. out.close();
    52. }
    53. }

    分类Action

    1. package com.action;
    2. import java.util.ArrayList;
    3. import java.util.List;
    4. import javax.annotation.Resource;
    5. import org.springframework.beans.factory.annotation.Autowired;
    6. import org.springframework.stereotype.Controller;
    7. import org.springframework.web.bind.annotation.RequestMapping;
    8. import com.entity.Cate;
    9. import com.service.CateService;
    10. import com.util.PageHelper;
    11. import com.util.VeDate;
    12. //定义为控制器
    13. @Controller
    14. // 设置路径
    15. @RequestMapping(value = "/cate", produces = "text/plain;charset=utf-8")
    16. public class CateAction extends BaseAction {
    17. // 注入Service 由于标签的存在 所以不需要getter setter
    18. @Autowired
    19. @Resource
    20. private CateService cateService;
    21. // 准备添加数据
    22. @RequestMapping("createCate.action")
    23. public String createCate() {
    24. return "admin/addcate";
    25. }
    26. // 添加数据
    27. @RequestMapping("addCate.action")
    28. public String addCate(Cate cate) {
    29. cate.setAddtime(VeDate.getStringDateShort());
    30. this.cateService.insertCate(cate);
    31. return "redirect:/cate/createCate.action";
    32. }
    33. // 通过主键删除数据
    34. @RequestMapping("deleteCate.action")
    35. public String deleteCate(String id) {
    36. this.cateService.deleteCate(id);
    37. return "redirect:/cate/getAllCate.action";
    38. }
    39. // 批量删除数据
    40. @RequestMapping("deleteCateByIds.action")
    41. public String deleteCateByIds() {
    42. String[] ids = this.getRequest().getParameterValues("cateid");
    43. for (String cateid : ids) {
    44. this.cateService.deleteCate(cateid);
    45. }
    46. return "redirect:/cate/getAllCate.action";
    47. }
    48. // 更新数据
    49. @RequestMapping("updateCate.action")
    50. public String updateCate(Cate cate) {
    51. this.cateService.updateCate(cate);
    52. return "redirect:/cate/getAllCate.action";
    53. }
    54. // 显示全部数据
    55. @RequestMapping("getAllCate.action")
    56. public String getAllCate(String number) {
    57. List cateList = this.cateService.getAllCate();
    58. PageHelper.getPage(cateList, "cate", null, null, 10, number, this.getRequest(), null);
    59. return "admin/listcate";
    60. }
    61. // 按条件查询数据 (模糊查询)
    62. @RequestMapping("queryCateByCond.action")
    63. public String queryCateByCond(String cond, String name, String number) {
    64. Cate cate = new Cate();
    65. if (cond != null) {
    66. if ("catename".equals(cond)) {
    67. cate.setCatename(name);
    68. }
    69. if ("memo".equals(cond)) {
    70. cate.setMemo(name);
    71. }
    72. if ("addtime".equals(cond)) {
    73. cate.setAddtime(name);
    74. }
    75. }
    76. List nameList = new ArrayList();
    77. List valueList = new ArrayList();
    78. nameList.add(cond);
    79. valueList.add(name);
    80. PageHelper.getPage(this.cateService.getCateByLike(cate), "cate", nameList, valueList, 10, number, this.getRequest(), "query");
    81. name = null;
    82. cond = null;
    83. return "admin/querycate";
    84. }
    85. // 按主键查询数据
    86. @RequestMapping("getCateById.action")
    87. public String getCateById(String id) {
    88. Cate cate = this.cateService.getCateById(id);
    89. this.getRequest().setAttribute("cate", cate);
    90. return "admin/editcate";
    91. }
    92. public CateService getCateService() {
    93. return cateService;
    94. }
    95. public void setCateService(CateService cateService) {
    96. this.cateService = cateService;
    97. }
    98. }

    城市Action

    1. package com.action;
    2. import java.util.ArrayList;
    3. import java.util.List;
    4. import javax.annotation.Resource;
    5. import org.springframework.beans.factory.annotation.Autowired;
    6. import org.springframework.stereotype.Controller;
    7. import org.springframework.web.bind.annotation.RequestMapping;
    8. import com.entity.City;
    9. import com.service.CityService;
    10. import com.util.PageHelper;
    11. //定义为控制器
    12. @Controller
    13. // 设置路径
    14. @RequestMapping(value = "/city", produces = "text/plain;charset=utf-8")
    15. public class CityAction extends BaseAction {
    16. // 注入Service 由于标签的存在 所以不需要getter setter
    17. @Autowired
    18. @Resource
    19. private CityService cityService;
    20. // 准备添加数据
    21. @RequestMapping("createCity.action")
    22. public String createCity() {
    23. return "admin/addcity";
    24. }
    25. // 添加数据
    26. @RequestMapping("addCity.action")
    27. public String addCity(City city) {
    28. this.cityService.insertCity(city);
    29. return "redirect:/city/createCity.action";
    30. }
    31. // 通过主键删除数据
    32. @RequestMapping("deleteCity.action")
    33. public String deleteCity(String id) {
    34. this.cityService.deleteCity(id);
    35. return "redirect:/city/getAllCity.action";
    36. }
    37. // 批量删除数据
    38. @RequestMapping("deleteCityByIds.action")
    39. public String deleteCityByIds() {
    40. String[] ids = this.getRequest().getParameterValues("cityid");
    41. for (String cityid : ids) {
    42. this.cityService.deleteCity(cityid);
    43. }
    44. return "redirect:/city/getAllCity.action";
    45. }
    46. // 更新数据
    47. @RequestMapping("updateCity.action")
    48. public String updateCity(City city) {
    49. this.cityService.updateCity(city);
    50. return "redirect:/city/getAllCity.action";
    51. }
    52. // 显示全部数据
    53. @RequestMapping("getAllCity.action")
    54. public String getAllCity(String number) {
    55. List cityList = this.cityService.getAllCity();
    56. PageHelper.getPage(cityList, "city", null, null, 10, number, this.getRequest(), null);
    57. return "admin/listcity";
    58. }
    59. // 按条件查询数据 (模糊查询)
    60. @RequestMapping("queryCityByCond.action")
    61. public String queryCityByCond(String cond, String name, String number) {
    62. City city = new City();
    63. if (cond != null) {
    64. if ("cityname".equals(cond)) {
    65. city.setCityname(name);
    66. }
    67. }
    68. List nameList = new ArrayList();
    69. List valueList = new ArrayList();
    70. nameList.add(cond);
    71. valueList.add(name);
    72. PageHelper.getPage(this.cityService.getCityByLike(city), "city", nameList, valueList, 10, number, this.getRequest(), "query");
    73. name = null;
    74. cond = null;
    75. return "admin/querycity";
    76. }
    77. // 按主键查询数据
    78. @RequestMapping("getCityById.action")
    79. public String getCityById(String id) {
    80. City city = this.cityService.getCityById(id);
    81. this.getRequest().setAttribute("city", city);
    82. return "admin/editcity";
    83. }
    84. public CityService getCityService() {
    85. return cityService;
    86. }
    87. public void setCityService(CityService cityService) {
    88. this.cityService = cityService;
    89. }
    90. }

    明细Action

    1. package com.action;
    2. import java.util.ArrayList;
    3. import java.util.List;
    4. import javax.annotation.Resource;
    5. import org.springframework.beans.factory.annotation.Autowired;
    6. import org.springframework.stereotype.Controller;
    7. import org.springframework.web.bind.annotation.RequestMapping;
    8. import com.entity.Details;
    9. import com.service.DetailsService;
    10. import com.entity.Jiancai;
    11. import com.entity.City;
    12. import com.entity.Peihuo;
    13. import com.service.JiancaiService;
    14. import com.service.CityService;
    15. import com.service.PeihuoService;
    16. import com.util.PageHelper;
    17. //定义为控制器
    18. @Controller
    19. // 设置路径
    20. @RequestMapping(value = "/details", produces = "text/plain;charset=utf-8")
    21. public class DetailsAction extends BaseAction {
    22. // 注入Service 由于标签的存在 所以不需要getter setter
    23. @Autowired
    24. @Resource
    25. private DetailsService detailsService;
    26. @Autowired
    27. @Resource
    28. private JiancaiService jiancaiService;
    29. @Autowired
    30. @Resource
    31. private CityService cityService;
    32. @Autowired
    33. @Resource
    34. private PeihuoService peihuoService;
    35. // 准备添加数据
    36. @RequestMapping("createDetails.action")
    37. public String createDetails() {
    38. List jiancaiList = this.jiancaiService.getAllJiancai();
    39. this.getRequest().setAttribute("jiancaiList", jiancaiList);
    40. List cityList = this.cityService.getAllCity();
    41. this.getRequest().setAttribute("cityList", cityList);
    42. List peihuoList = this.peihuoService.getAllPeihuo();
    43. this.getRequest().setAttribute("peihuoList", peihuoList);
    44. return "admin/adddetails";
    45. }
    46. // 添加数据
    47. @RequestMapping("addDetails.action")
    48. public String addDetails(Details details) {
    49. this.detailsService.insertDetails(details);
    50. return "redirect:/details/createDetails.action";
    51. }
    52. // 通过主键删除数据
    53. @RequestMapping("deleteDetails.action")
    54. public String deleteDetails(String id) {
    55. this.detailsService.deleteDetails(id);
    56. return "redirect:/details/getAllDetails.action";
    57. }
    58. // 批量删除数据
    59. @RequestMapping("deleteDetailsByIds.action")
    60. public String deleteDetailsByIds() {
    61. String[] ids = this.getRequest().getParameterValues("detailsid");
    62. for (String detailsid : ids) {
    63. this.detailsService.deleteDetails(detailsid);
    64. }
    65. return "redirect:/details/getAllDetails.action";
    66. }
    67. // 更新数据
    68. @RequestMapping("updateDetails.action")
    69. public String updateDetails(Details details) {
    70. this.detailsService.updateDetails(details);
    71. return "redirect:/details/getAllDetails.action";
    72. }
    73. // 显示全部数据
    74. @RequestMapping("getAllDetails.action")
    75. public String getAllDetails(String number) {
    76. List
      detailsList = this.detailsService.getAllDetails();
    77. PageHelper.getPage(detailsList, "details", null, null, 10, number, this.getRequest(), null);
    78. return "admin/listdetails";
    79. }
    80. // 按条件查询数据 (模糊查询)
    81. @RequestMapping("queryDetailsByCond.action")
    82. public String queryDetailsByCond(String cond, String name, String number) {
    83. Details details = new Details();
    84. if (cond != null) {
    85. if ("ordercode".equals(cond)) {
    86. details.setOrdercode(name);
    87. }
    88. if ("jiancaiid".equals(cond)) {
    89. details.setJiancaiid(name);
    90. }
    91. if ("num".equals(cond)) {
    92. details.setNum(name);
    93. }
    94. if ("price".equals(cond)) {
    95. details.setPrice(name);
    96. }
    97. if ("cityid".equals(cond)) {
    98. details.setCityid(name);
    99. }
    100. if ("peihuoid".equals(cond)) {
    101. details.setPeihuoid(name);
    102. }
    103. if ("viewdate".equals(cond)) {
    104. details.setViewdate(name);
    105. }
    106. }
    107. List nameList = new ArrayList();
    108. List valueList = new ArrayList();
    109. nameList.add(cond);
    110. valueList.add(name);
    111. PageHelper.getPage(this.detailsService.getDetailsByLike(details), "details", nameList, valueList, 10, number, this.getRequest(),
    112. "query");
    113. name = null;
    114. cond = null;
    115. return "admin/querydetails";
    116. }
    117. // 按主键查询数据
    118. @RequestMapping("getDetailsById.action")
    119. public String getDetailsById(String id) {
    120. Details details = this.detailsService.getDetailsById(id);
    121. this.getRequest().setAttribute("details", details);
    122. List jiancaiList = this.jiancaiService.getAllJiancai();
    123. this.getRequest().setAttribute("jiancaiList", jiancaiList);
    124. List cityList = this.cityService.getAllCity();
    125. this.getRequest().setAttribute("cityList", cityList);
    126. List peihuoList = this.peihuoService.getAllPeihuo();
    127. this.getRequest().setAttribute("peihuoList", peihuoList);
    128. return "admin/editdetails";
    129. }
    130. public DetailsService getDetailsService() {
    131. return detailsService;
    132. }
    133. public void setDetailsService(DetailsService detailsService) {
    134. this.detailsService = detailsService;
    135. }
    136. }

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

  • 相关阅读:
    Upload-labs十六和十七关
    定时删除指定目录下的文件,文件名按时间有规律,定时删除过期文件
    《机器学习——数学公式推导合集》1. 最小二乘法(least square method)求解线性模型
    删除的流程
    [附源码]Python计算机毕业设计Django的酒店预订系统设计与实现
    Java 端口扫描器示例
    windows11对编程有用的功能
    【CompletableFuture 总结】
    设计模式-05-代理模式
    ResultMap结果集映射 P10
  • 原文地址:https://blog.csdn.net/hanyunlong1989/article/details/126358195