作者主页:夜未央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 基类
package com.action;import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;/*** Action 基类*/
@Controller
public class BaseAction {/* 日志 */protected final Log log = LogFactory.getLog(getClass());/* 获取基本环境 */public Map<String, String[]> getParameters() {// 封装为Map的requestParametersServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();return attrs.getRequest().getParameterMap();}public HttpServletRequest getRequest() {ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();return attrs.getRequest();}public HttpSession getSession() {HttpSession session = null;try {session = this.getRequest().getSession();} catch (Exception e) {}return session;}/* 向客户端输出操作成功或失败信息 */public void writeJsonResponse(String success) throws IOException, JSONException {ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();HttpServletResponse response = attrs.getResponse();response.setContentType("text/json;charset=UTF-8");PrintWriter out = response.getWriter();// 将要被返回到客户端的对象JSONObject json = new JSONObject();json.accumulate("result", success);System.out.println(json.toString());out.println(json.toString());out.flush();out.close();}
}
分类Action
package com.action;import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.entity.Cate;
import com.service.CateService;
import com.util.PageHelper;
import com.util.VeDate;//定义为控制器
@Controller
// 设置路径
@RequestMapping(value = "/cate", produces = "text/plain;charset=utf-8")
public class CateAction extends BaseAction {// 注入Service 由于标签的存在 所以不需要getter setter@Autowired@Resourceprivate CateService cateService;// 准备添加数据@RequestMapping("createCate.action")public String createCate() {return "admin/addcate";}// 添加数据@RequestMapping("addCate.action")public String addCate(Cate cate) {cate.setAddtime(VeDate.getStringDateShort());this.cateService.insertCate(cate);return "redirect:/cate/createCate.action";}// 通过主键删除数据@RequestMapping("deleteCate.action")public String deleteCate(String id) {this.cateService.deleteCate(id);return "redirect:/cate/getAllCate.action";}// 批量删除数据@RequestMapping("deleteCateByIds.action")public String deleteCateByIds() {String[] ids = this.getRequest().getParameterValues("cateid");for (String cateid : ids) {this.cateService.deleteCate(cateid);}return "redirect:/cate/getAllCate.action";}// 更新数据@RequestMapping("updateCate.action")public String updateCate(Cate cate) {this.cateService.updateCate(cate);return "redirect:/cate/getAllCate.action";}// 显示全部数据@RequestMapping("getAllCate.action")public String getAllCate(String number) {List<Cate> cateList = this.cateService.getAllCate();PageHelper.getPage(cateList, "cate", null, null, 10, number, this.getRequest(), null);return "admin/listcate";}// 按条件查询数据 (模糊查询)@RequestMapping("queryCateByCond.action")public String queryCateByCond(String cond, String name, String number) {Cate cate = new Cate();if (cond != null) {if ("catename".equals(cond)) {cate.setCatename(name);}if ("memo".equals(cond)) {cate.setMemo(name);}if ("addtime".equals(cond)) {cate.setAddtime(name);}}List<String> nameList = new ArrayList<String>();List<String> valueList = new ArrayList<String>();nameList.add(cond);valueList.add(name);PageHelper.getPage(this.cateService.getCateByLike(cate), "cate", nameList, valueList, 10, number, this.getRequest(), "query");name = null;cond = null;return "admin/querycate";}// 按主键查询数据@RequestMapping("getCateById.action")public String getCateById(String id) {Cate cate = this.cateService.getCateById(id);this.getRequest().setAttribute("cate", cate);return "admin/editcate";}public CateService getCateService() {return cateService;}public void setCateService(CateService cateService) {this.cateService = cateService;}}
城市Action
package com.action;import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.entity.City;
import com.service.CityService;
import com.util.PageHelper;//定义为控制器
@Controller
// 设置路径
@RequestMapping(value = "/city", produces = "text/plain;charset=utf-8")
public class CityAction extends BaseAction {// 注入Service 由于标签的存在 所以不需要getter setter@Autowired@Resourceprivate CityService cityService;// 准备添加数据@RequestMapping("createCity.action")public String createCity() {return "admin/addcity";}// 添加数据@RequestMapping("addCity.action")public String addCity(City city) {this.cityService.insertCity(city);return "redirect:/city/createCity.action";}// 通过主键删除数据@RequestMapping("deleteCity.action")public String deleteCity(String id) {this.cityService.deleteCity(id);return "redirect:/city/getAllCity.action";}// 批量删除数据@RequestMapping("deleteCityByIds.action")public String deleteCityByIds() {String[] ids = this.getRequest().getParameterValues("cityid");for (String cityid : ids) {this.cityService.deleteCity(cityid);}return "redirect:/city/getAllCity.action";}// 更新数据@RequestMapping("updateCity.action")public String updateCity(City city) {this.cityService.updateCity(city);return "redirect:/city/getAllCity.action";}// 显示全部数据@RequestMapping("getAllCity.action")public String getAllCity(String number) {List<City> cityList = this.cityService.getAllCity();PageHelper.getPage(cityList, "city", null, null, 10, number, this.getRequest(), null);return "admin/listcity";}// 按条件查询数据 (模糊查询)@RequestMapping("queryCityByCond.action")public String queryCityByCond(String cond, String name, String number) {City city = new City();if (cond != null) {if ("cityname".equals(cond)) {city.setCityname(name);}}List<String> nameList = new ArrayList<String>();List<String> valueList = new ArrayList<String>();nameList.add(cond);valueList.add(name);PageHelper.getPage(this.cityService.getCityByLike(city), "city", nameList, valueList, 10, number, this.getRequest(), "query");name = null;cond = null;return "admin/querycity";}// 按主键查询数据@RequestMapping("getCityById.action")public String getCityById(String id) {City city = this.cityService.getCityById(id);this.getRequest().setAttribute("city", city);return "admin/editcity";}public CityService getCityService() {return cityService;}public void setCityService(CityService cityService) {this.cityService = cityService;}}
明细Action
package com.action;import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.entity.Details;
import com.service.DetailsService;
import com.entity.Jiancai;
import com.entity.City;
import com.entity.Peihuo;
import com.service.JiancaiService;
import com.service.CityService;
import com.service.PeihuoService;
import com.util.PageHelper;//定义为控制器
@Controller
// 设置路径
@RequestMapping(value = "/details", produces = "text/plain;charset=utf-8")
public class DetailsAction extends BaseAction {// 注入Service 由于标签的存在 所以不需要getter setter@Autowired@Resourceprivate DetailsService detailsService;@Autowired@Resourceprivate JiancaiService jiancaiService;@Autowired@Resourceprivate CityService cityService;@Autowired@Resourceprivate PeihuoService peihuoService;// 准备添加数据@RequestMapping("createDetails.action")public String createDetails() {List<Jiancai> jiancaiList = this.jiancaiService.getAllJiancai();this.getRequest().setAttribute("jiancaiList", jiancaiList);List<City> cityList = this.cityService.getAllCity();this.getRequest().setAttribute("cityList", cityList);List<Peihuo> peihuoList = this.peihuoService.getAllPeihuo();this.getRequest().setAttribute("peihuoList", peihuoList);return "admin/adddetails";}// 添加数据@RequestMapping("addDetails.action")public String addDetails(Details details) {this.detailsService.insertDetails(details);return "redirect:/details/createDetails.action";}// 通过主键删除数据@RequestMapping("deleteDetails.action")public String deleteDetails(String id) {this.detailsService.deleteDetails(id);return "redirect:/details/getAllDetails.action";}// 批量删除数据@RequestMapping("deleteDetailsByIds.action")public String deleteDetailsByIds() {String[] ids = this.getRequest().getParameterValues("detailsid");for (String detailsid : ids) {this.detailsService.deleteDetails(detailsid);}return "redirect:/details/getAllDetails.action";}// 更新数据@RequestMapping("updateDetails.action")public String updateDetails(Details details) {this.detailsService.updateDetails(details);return "redirect:/details/getAllDetails.action";}// 显示全部数据@RequestMapping("getAllDetails.action")public String getAllDetails(String number) {List<Details> detailsList = this.detailsService.getAllDetails();PageHelper.getPage(detailsList, "details", null, null, 10, number, this.getRequest(), null);return "admin/listdetails";}// 按条件查询数据 (模糊查询)@RequestMapping("queryDetailsByCond.action")public String queryDetailsByCond(String cond, String name, String number) {Details details = new Details();if (cond != null) {if ("ordercode".equals(cond)) {details.setOrdercode(name);}if ("jiancaiid".equals(cond)) {details.setJiancaiid(name);}if ("num".equals(cond)) {details.setNum(name);}if ("price".equals(cond)) {details.setPrice(name);}if ("cityid".equals(cond)) {details.setCityid(name);}if ("peihuoid".equals(cond)) {details.setPeihuoid(name);}if ("viewdate".equals(cond)) {details.setViewdate(name);}}List<String> nameList = new ArrayList<String>();List<String> valueList = new ArrayList<String>();nameList.add(cond);valueList.add(name);PageHelper.getPage(this.detailsService.getDetailsByLike(details), "details", nameList, valueList, 10, number, this.getRequest(),"query");name = null;cond = null;return "admin/querydetails";}// 按主键查询数据@RequestMapping("getDetailsById.action")public String getDetailsById(String id) {Details details = this.detailsService.getDetailsById(id);this.getRequest().setAttribute("details", details);List<Jiancai> jiancaiList = this.jiancaiService.getAllJiancai();this.getRequest().setAttribute("jiancaiList", jiancaiList);List<City> cityList = this.cityService.getAllCity();this.getRequest().setAttribute("cityList", cityList);List<Peihuo> peihuoList = this.peihuoService.getAllPeihuo();this.getRequest().setAttribute("peihuoList", peihuoList);return "admin/editdetails";}public DetailsService getDetailsService() {return detailsService;}public void setDetailsService(DetailsService detailsService) {this.detailsService = detailsService;}}
如果也想学习本系统,下面领取。回复:192ssm