源码获取:博客首页 "资源" 里下载!

项目介绍

优咪网上购物体验系统

1. 该平台主要有两大功能:
(1) 浏览平台官方和认证作者提供的篮球相关信息,信息类型包括:视频,新闻,评论类文章,比赛结果
(2) 篮球周边商城,商品分类球鞋、球衣、篮球、运动装备、休闲衣服
(3) 特别功能:每条信息和每一个商品都有一个特殊类型:标签(可有多个标签)。当用户在浏览某条信息(例如在看某段视频到结尾时),平台根据标签向用户推送标签相同的商品。反之,用户在浏览某件商品时,亦根据标签向用户推送与该商品标签相同的信息。
2. 该平台有三种用户:平台管理员、平台认证作者、普通用户
(1) 平台管理员:
① 可管理平台官方运营的商店,对商店的商品进行增删查改,定期上线活动
② 管理平台的信息发布,可对信息进行增删改查
(2) 平台认证作者:
① 可发布自己攥写的文章或自己剪辑的视频
② 可在自己发布的信息下方添加商品链接,若用户购买可获得提成
(3) 用户:
① 可无广告地浏览平台上关于篮球的资讯
② 可浏览商品并且购买
③ 可申请成为官方认证作者

环境需要

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.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目

6.数据库:MySql 5.7版本;

技术栈

1. 后端:Springboot

2. 前端:html+bootstrap+jQuery+layui+ueditor

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 将项目中application.yml配置文件中的数据库配置改为自己的配置
3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行;
4. 运行项目 前台地址:http://localhost:8080/

后台浏览地址:http://localhost:8080/login.html

后台管理-登录页:

/*** 后台管理-登录页*/
@Controller
public class AdminLoginController extends BaseController {@Autowiredprivate AdminService adminService;//转到后台管理-登录页@RequestMapping("admin/login")public String goToPage(){logger.info("转到后台管理-登录页");return "admin/loginPage";}//登陆验证-ajax@ResponseBody@RequestMapping(value = "admin/login/doLogin",method = RequestMethod.POST,produces = "application/json;charset=utf-8")public String checkLogin(HttpSession session, @RequestParam String username, @RequestParam String password) {logger.info("管理员登录验证");Integer admin = adminService.login(username,password);JSONObject object = new JSONObject();if(admin == null){logger.info("登录验证失败");object.put("success",false);} else {logger.info("登录验证成功,管理员ID传入会话");session.setAttribute("adminId",admin);object.put("success",true);}return object.toJSONString();}//获取管理员头像路径-ajax@ResponseBody@RequestMapping(value = "admin/login/profile_picture",method = RequestMethod.GET,produces = "application/json;charset=utf-8")public String getAdminProfilePicture(@RequestParam String username){logger.info("根据用户名获取管理员头像路径");Admin admin = adminService.get(username,null);JSONObject object = new JSONObject();if(admin == null){logger.info("未找到头像路径");object.put("success",false);} else {logger.info("成功获取头像路径");object.put("success",true);object.put("srcString",admin.getAdmin_profile_picture_src());}return object.toJSONString();}
}

后台管理-分类页:

/*** 后台管理-分类页*/
@Controller
public class CategoryController extends BaseController {@Autowiredprivate CategoryService categoryService;@Autowiredprivate LastIDService lastIDService;@Autowiredprivate PropertyService propertyService;//转到后台管理-分类页-ajax@RequestMapping(value = "admin/category", method = RequestMethod.GET)public String goToPage(HttpSession session, Map<String, Object> map) {logger.info("检查管理员权限");Object adminId = checkAdmin(session);if (adminId == null) {return "admin/include/loginMessage";}logger.info("获取前10条分类列表");PageUtil pageUtil = new PageUtil(0, 10);List<Category> categoryList = categoryService.getList(null, pageUtil);map.put("categoryList", categoryList);logger.info("获取分类总数量");Integer categoryCount = categoryService.getTotal(null);map.put("categoryCount", categoryCount);logger.info("获取分页信息");pageUtil.setTotal(categoryCount);map.put("pageUtil", pageUtil);logger.info("转到后台管理-分类页-ajax方式");return "admin/categoryManagePage";}//转到后台管理-分类详情页-ajax@RequestMapping(value = "admin/category/{cid}", method = RequestMethod.GET)public String goToDetailsPage(HttpSession session, Map<String, Object> map, @PathVariable Integer cid/* 分类ID */) {logger.info("检查管理员权限");Object adminId = checkAdmin(session);if (adminId == null) {return "admin/include/loginMessage";}logger.info("获取category_id为{}的分类信息", cid);Category category = categoryService.get(cid);logger.info("获取分类子信息-属性列表");category.setPropertyList(propertyService.getList(new Property().setProperty_category(category), null));map.put("category", category);logger.info("转到后台管理-分类详情页-ajax方式");return "admin/include/categoryDetails";}//转到后台管理-分类添加页-ajax@RequestMapping(value = "admin/category/new", method = RequestMethod.GET)public String goToAddPage(HttpSession session, Map<String, Object> map) {logger.info("检查管理员权限");Object adminId = checkAdmin(session);if (adminId == null) {return "admin/include/loginMessage";}logger.info("转到后台管理-分类添加页-ajax方式");return "admin/include/categoryDetails";}//添加分类信息-ajax@ResponseBody@RequestMapping(value = "admin/category", method = RequestMethod.POST, produces = "application/json;charset=utf-8")public String addCategory(@RequestParam String category_name/* 分类名称 */,@RequestParam String category_image_src/* 分类图片路径 */) {JSONObject jsonObject = new JSONObject();logger.info("整合分类信息");Category category = new Category().setCategory_name(category_name).setCategory_image_src(category_image_src.substring(category_image_src.lastIndexOf("/") + 1));logger.info("添加分类信息");boolean yn = categoryService.add(category);if (yn) {int category_id = lastIDService.selectLastID();logger.info("添加成功!,新增分类的ID值为:{}", category_id);jsonObject.put("success", true);jsonObject.put("category_id", category_id);} else {jsonObject.put("success", false);logger.warn("添加失败!事务回滚");throw new RuntimeException();}return jsonObject.toJSONString();}//更新分类信息-ajax@ResponseBody@RequestMapping(value = "admin/category/{category_id}", method = RequestMethod.PUT, produces = "application/json;charset=utf-8")public String updateCategory(@RequestParam String category_name/* 分类名称 */,@RequestParam String category_image_src/* 分类图片路径 */,@PathVariable("category_id") Integer category_id/* 分类ID */) {JSONObject jsonObject = new JSONObject();logger.info("整合分类信息");Category category = new Category().setCategory_id(category_id).setCategory_name(category_name).setCategory_image_src(category_image_src.substring(category_image_src.lastIndexOf("/") + 1));logger.info("更新分类信息,分类ID值为:{}", category_id);boolean yn = categoryService.update(category);if (yn) {logger.info("更新成功!");jsonObject.put("success", true);jsonObject.put("category_id", category_id);} else {jsonObject.put("success", false);logger.info("更新失败!事务回滚");throw new RuntimeException();}return jsonObject.toJSONString();}//按条件查询分类-ajax@ResponseBody@RequestMapping(value = "admin/category/{index}/{count}", method = RequestMethod.GET, produces = "application/json;charset=utf-8")public String getCategoryBySearch(@RequestParam(required = false) String category_name/* 分类名称 */,@PathVariable Integer index/* 页数 */,@PathVariable Integer count/* 行数 */) throws UnsupportedEncodingException {//移除不必要条件if (category_name != null) {//如果为非空字符串则解决中文乱码:URLDecoder.decode(String,"UTF-8");category_name = "".equals(category_name) ? null : URLDecoder.decode(category_name, "UTF-8");}JSONObject object = new JSONObject();logger.info("按条件获取第{}页的{}条分类", index + 1, count);PageUtil pageUtil = new PageUtil(index, count);List<Category> categoryList = categoryService.getList(category_name, pageUtil);object.put("categoryList", JSONArray.parseArray(JSON.toJSONString(categoryList)));logger.info("按条件获取分类总数量");Integer categoryCount = categoryService.getTotal(category_name);object.put("categoryCount", categoryCount);logger.info("获取分页信息");pageUtil.setTotal(categoryCount);object.put("totalPage", pageUtil.getTotalPage());object.put("pageUtil", pageUtil);return object.toJSONString();}// 上传分类图片-ajax@ResponseBody@RequestMapping(value = "admin/uploadCategoryImage", method = RequestMethod.POST, produces = "application/json;charset=utf-8")public String uploadCategoryImage(@RequestParam MultipartFile file, HttpSession session) {String originalFileName = file.getOriginalFilename();logger.info("获取图片原始文件名:  {}", originalFileName);String extension = originalFileName.substring(originalFileName.lastIndexOf('.'));String fileName = UUID.randomUUID() + extension;String filePath = session.getServletContext().getRealPath("/") + "res/images/item/categoryPicture/" + fileName;logger.info("文件上传路径:{}", filePath);JSONObject object = new JSONObject();try {logger.info("文件上传中...");file.transferTo(new File(filePath));logger.info("文件上传完成");object.put("success", true);object.put("fileName", fileName);} catch (IOException e) {logger.warn("文件上传失败!");e.printStackTrace();object.put("success", false);}return object.toJSONString();}
}

后台管理-订单页:

/*** 后台管理-订单页*/
@Controller
public class OrderController extends BaseController{@Autowiredprivate ProductOrderService productOrderService;@Autowiredprivate AddressService addressService;@Autowiredprivate UserService userService;@Autowiredprivate ProductOrderItemService productOrderItemService;@Autowiredprivate ProductService productService;@Autowiredprivate ProductImageService productImageService;@Autowiredprivate LastIDService lastIDService;//转到后台管理-订单页-ajax@RequestMapping(value = "admin/order", method = RequestMethod.GET)public String goToPage(HttpSession session, Map<String, Object> map){logger.info("检查管理员权限");Object adminId = checkAdmin(session);if(adminId == null){return "admin/include/loginMessage";}logger.info("获取前10条订单列表");PageUtil pageUtil = new PageUtil(0, 10);List<ProductOrder> productOrderList = productOrderService.getList(null, null, new OrderUtil("productOrder_id", true), pageUtil);map.put("productOrderList",productOrderList);logger.info("获取订单总数量");Integer productOrderCount = productOrderService.getTotal(null, null);map.put("productOrderCount", productOrderCount);logger.info("获取分页信息");pageUtil.setTotal(productOrderCount);map.put("pageUtil", pageUtil);logger.info("转到后台管理-订单页-ajax方式");return "admin/orderManagePage";}//转到后台管理-订单详情页-ajax@RequestMapping(value = "admin/order/{oid}", method = RequestMethod.GET)public String goToDetailsPage(HttpSession session, Map<String, Object> map, @PathVariable Integer oid/* 订单ID */) {logger.info("检查管理员权限");Object adminId = checkAdmin(session);if(adminId == null){return "admin/include/loginMessage";}logger.info("获取order_id为{}的订单信息",oid);ProductOrder order = productOrderService.get(oid);logger.info("获取订单详情-地址信息");Address address = addressService.get(order.getProductOrder_address().getAddress_areaId());Stack<String> addressStack = new Stack<>();//详细地址addressStack.push(order.getProductOrder_detail_address());//最后一级地址addressStack.push(address.getAddress_name() + " ");//如果不是第一级地址while (!address.getAddress_areaId().equals(address.getAddress_regionId().getAddress_areaId())) {address = addressService.get(address.getAddress_regionId().getAddress_areaId());addressStack.push(address.getAddress_name() + " ");}StringBuilder builder = new StringBuilder();while (!addressStack.empty()) {builder.append(addressStack.pop());}logger.warn("订单地址字符串:{}", builder);order.setProductOrder_detail_address(builder.toString());logger.info("获取订单详情-用户信息");order.setProductOrder_user(userService.get(order.getProductOrder_user().getUser_id()));logger.info("获取订单详情-订单项信息");List<ProductOrderItem> productOrderItemList = productOrderItemService.getListByOrderId(oid, null);if (productOrderItemList != null) {logger.info("获取订单详情-订单项对应的产品信息");for (ProductOrderItem productOrderItem : productOrderItemList) {Integer productId = productOrderItem.getProductOrderItem_product().getProduct_id();logger.warn("获取产品ID为{}的产品信息", productId);Product product = productService.get(productId);if (product != null) {logger.warn("获取产品ID为{}的第一张预览图片信息", productId);product.setSingleProductImageList(productImageService.getList(productId, (byte) 0, new PageUtil(0, 1)));}productOrderItem.setProductOrderItem_product(product);}}order.setProductOrderItemList(productOrderItemList);map.put("order", order);logger.info("转到后台管理-订单详情页-ajax方式");return "admin/include/orderDetails";}//更新订单信息-ajax@ResponseBody@RequestMapping(value = "admin/order/{order_id}", method = RequestMethod.PUT, produces = "application/json;charset=UTF-8")public String updateOrder(@PathVariable("order_id") String order_id) {JSONObject jsonObject = new JSONObject();logger.info("整合订单信息");ProductOrder productOrder = new ProductOrder().setProductOrder_id(Integer.valueOf(order_id)).setProductOrder_status((byte) 2).setProductOrder_delivery_date(new Date());logger.info("更新订单信息,订单ID值为:{}", order_id);boolean yn = productOrderService.update(productOrder);if (yn) {logger.info("更新成功!");jsonObject.put("success", true);} else {logger.info("更新失败!事务回滚");jsonObject.put("success", false);throw new RuntimeException();}jsonObject.put("order_id", order_id);return jsonObject.toJSONString();}//按条件查询订单-ajax@ResponseBody@RequestMapping(value = "admin/order/{index}/{count}", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")public String getOrderBySearch(@RequestParam(required = false) String productOrder_code/* 订单号 */,@RequestParam(required = false) String productOrder_post/* 订单邮政编码 */,@RequestParam(required = false) Byte[] productOrder_status_array/* 订单状态数组 */,@RequestParam(required = false) String orderBy/* 排序字段 */,@RequestParam(required = false,defaultValue = "true") Boolean isDesc/* 是否倒序 */,@PathVariable Integer index/* 页数 */,@PathVariable Integer count/* 行数 */){//移除不必要条件if (productOrder_status_array != null && (productOrder_status_array.length <= 0 || productOrder_status_array.length >=5)) {productOrder_status_array = null;}if (productOrder_code != null){productOrder_code = "".equals(productOrder_code) ? null : productOrder_code;}if(productOrder_post != null){productOrder_post = "".equals(productOrder_post) ? null : productOrder_post;}if (orderBy != null && "".equals(orderBy)) {orderBy = null;}//封装查询条件ProductOrder productOrder = new ProductOrder().setProductOrder_code(productOrder_code).setProductOrder_post(productOrder_post);OrderUtil orderUtil = null;if (orderBy != null) {logger.info("根据{}排序,是否倒序:{}",orderBy,isDesc);orderUtil = new OrderUtil(orderBy, isDesc);}JSONObject object = new JSONObject();logger.info("按条件获取第{}页的{}条订单", index + 1, count);PageUtil pageUtil = new PageUtil(index, count);List<ProductOrder> productOrderList = productOrderService.getList(productOrder, productOrder_status_array, orderUtil, pageUtil);object.put("productOrderList", JSONArray.parseArray(JSON.toJSONString(productOrderList)));logger.info("按条件获取订单总数量");Integer productOrderCount = productOrderService.getTotal(productOrder, productOrder_status_array);object.put("productOrderCount", productOrderCount);logger.info("获取分页信息");pageUtil.setTotal(productOrderCount);object.put("totalPage", pageUtil.getTotalPage());object.put("pageUtil", pageUtil);return object.toJSONString();}
}

后台管理-用户页:

/*** 后台管理-用户页*/
@Controller
public class UserController extends BaseController {@Autowiredprivate UserService userService;@Autowiredprivate AddressService addressService;@Autowiredprivate ReviewService reviewService;@Autowiredprivate ProductOrderItemService productOrderItemService;@Autowiredprivate ProductService productService;@Autowiredprivate ProductImageService productImageService;//转到后台管理-用户页-ajax@RequestMapping(value = "admin/user", method = RequestMethod.GET)public String goUserManagePage(HttpSession session, Map<String, Object> map) {logger.info("检查管理员权限");Object adminId = checkAdmin(session);if (adminId == null) {return "admin/include/loginMessage";}logger.info("获取前十条用户信息");PageUtil pageUtil = new PageUtil(0, 10);List<User> userList = userService.getList(null, null, pageUtil);map.put("userList", userList);logger.info("获取用户总数量");Integer userCount = userService.getTotal(null);map.put("userCount", userCount);logger.info("获取分页信息");pageUtil.setTotal(userCount);map.put("pageUtil", pageUtil);logger.info("转到后台管理-用户页-ajax方式");return "admin/userManagePage";}//转到后台管理-用户详情页-ajax@RequestMapping(value = "admin/user/{uid}", method = RequestMethod.GET)public String getUserById(HttpSession session, Map<String, Object> map, @PathVariable Integer uid/* 用户ID */) {logger.info("检查管理员权限");Object adminId = checkAdmin(session);if (adminId == null) {return "admin/include/loginMessage";}logger.info("获取user_id为{}的用户信息", uid);User user = userService.get(uid);logger.info("获取用户详情-所在地地址信息");Address address = addressService.get(user.getUser_address().getAddress_areaId());Stack<String> addressStack = new Stack<>();//最后一级地址addressStack.push(address.getAddress_name() + " ");//如果不是第一级地址while (!address.getAddress_areaId().equals(address.getAddress_regionId().getAddress_areaId())) {address = addressService.get(address.getAddress_regionId().getAddress_areaId());addressStack.push(address.getAddress_name() + " ");}StringBuilder builder = new StringBuilder();while (!addressStack.empty()) {builder.append(addressStack.pop());}logger.info("所在地地址字符串:{}", builder);user.setUser_address(new Address().setAddress_name(builder.toString()));logger.info("获取用户详情-家乡地址信息");address = addressService.get(user.getUser_homeplace().getAddress_areaId());//最后一级地址addressStack.push(address.getAddress_name() + " ");//如果不是第一级地址while (!address.getAddress_areaId().equals(address.getAddress_regionId().getAddress_areaId())) {address = addressService.get(address.getAddress_regionId().getAddress_areaId());addressStack.push(address.getAddress_name() + " ");}builder = new StringBuilder();while (!addressStack.empty()) {builder.append(addressStack.pop());}logger.info("家乡地址字符串:{}", builder);user.setUser_homeplace(new Address().setAddress_name(builder.toString()));logger.info("获取用户详情-购物车订单项信息");List<ProductOrderItem> productOrderItemList = productOrderItemService.getListByUserId(user.getUser_id(), null);if (productOrderItemList != null) {logger.info("获取用户详情-购物车订单项对应的产品信息");for (ProductOrderItem productOrderItem : productOrderItemList) {Integer productId = productOrderItem.getProductOrderItem_product().getProduct_id();logger.warn("获取产品ID为{}的产品信息", productId);Product product = productService.get(productId);if (product != null) {logger.warn("获取产品ID为{}的第一张预览图片信息", productId);product.setSingleProductImageList(productImageService.getList(productId, (byte) 0, new PageUtil(0, 1)));}productOrderItem.setProductOrderItem_product(product);}}user.setProductOrderItemList(productOrderItemList);if (!StringUtils.isEmpty(user.getUser_realname())) {logger.info("用户隐私加密");user.setUser_realname(user.getUser_realname().substring(0, 1) + "*");} else {user.setUser_realname("未命名");}map.put("user", user);logger.info("转到后台管理-用户详情页-ajax方式");return "admin/include/userDetails";}//按条件查询用户-ajax@ResponseBody@RequestMapping(value = "admin/user/{index}/{count}", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")public String getUserBySearch(@RequestParam(required = false) String user_name/* 用户名称 */,@RequestParam(required = false) Byte[] user_gender_array/* 用户性别数组 */,@RequestParam(required = false) String orderBy/* 排序字段 */,@RequestParam(required = false, defaultValue = "true") Boolean isDesc/* 是否倒序 */,@PathVariable Integer index/* 页数 */,@PathVariable Integer count/* 行数 */) throws UnsupportedEncodingException {//移除不必要条件Byte gender = null;if (user_gender_array != null && user_gender_array.length == 1) {gender = user_gender_array[0];}if (user_name != null) {//如果为非空字符串则解决中文乱码:URLDecoder.decode(String,"UTF-8");user_name = "".equals(user_name) ? null : URLDecoder.decode(user_name, "UTF-8");}if (orderBy != null && "".equals(orderBy)) {orderBy = null;}//封装查询条件User user = new User().setUser_name(user_name).setUser_gender(gender);OrderUtil orderUtil = null;if (orderBy != null) {logger.info("根据{}排序,是否倒序:{}", orderBy, isDesc);orderUtil = new OrderUtil(orderBy, isDesc);}JSONObject object = new JSONObject();logger.info("按条件获取第{}页的{}条用户", index + 1, count);PageUtil pageUtil = new PageUtil(index, count);List<User> userList = userService.getList(user, orderUtil, pageUtil);object.put("userList", JSONArray.parseArray(JSON.toJSONString(userList)));logger.info("按条件获取用户总数量");Integer userCount = userService.getTotal(user);object.put("userCount", userCount);logger.info("获取分页信息");pageUtil.setTotal(userCount);object.put("totalPage", pageUtil.getTotalPage());object.put("pageUtil", pageUtil);return object.toJSONString();}
}

源码获取:博客首页 "资源" 里下载!

Java项目:优咪商城系统(java+SpringBoot+html+bootstrap+layui+maven+mysql)相关推荐

  1. Java项目:在线水果商城系统(java+JSP+Spring+SpringMVC +MyBatis+html+mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 功能: 区分为管理员用户和普通用户,普通用户:用户注册登录,首页水果展示,商品分类展示,购物车添加,下单,订单查询,个人信息修 ...

  2. Java项目:家居购物商城系统(java+html+jdbc+mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 功能: Java Web精品项目源码,家居商城分类展示,商品展示, 商品下单,购物车,个人中心,后台管理,用户管理,商品管理, ...

  3. Java项目:在线蛋糕商城系统(java+jsp+jdbc+mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 功能: 主页显示热销商品:所有蛋糕商品展示,可进行商品搜 索:点击商品进入商品详情页,具有立即购买和加入购物 车功能,可增减购 ...

  4. Java项目:在线甜品商城系统(java+SSM+JSP+JavaScript+Mysql)

    源码获取:俺的博客首页 "资源" 里下载! 项目介绍 管理员角色包含以下功能: 管理员登录,套餐管理,甜品管理,预定管理等功能. 用户角色包含以下功能: 用户登录与注册,查看首页, ...

  5. Java项目:茶叶售卖商城系统(java+SSM+JSP+EasyUi+mysql)

    源码获取:博客首页 "资源" 里下载! 这是一个应用SSM框架的项目,前端页面整洁清晰.该系统有两个角色,一个是普通用户,另一个是管理员. 普通用户具有注册.登录.查看商品.添加购 ...

  6. Java项目:网上花店商城系统(java+jsp+servlert+mysql+ajax)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 功能: 一套完整的网上花店商场系统,系统支持前台会员的注册 登陆系统留言,花朵的品种选择,详情浏览,加入购物 车,购买花朵等: ...

  7. Java项目:网上图书商城系统(java+SSM+Jsp+MySQL+Redis+JWT+Shiro+RabbitMQ+EasyUI)

    源码获取:博客首页 "资源" 里下载! 这个项目涉及到Shiro整合JWT.秒杀功能所具备的基本要求(限流.乐观锁.接口隐藏.JMeter高并发测试等等).消息中间件RabbitM ...

  8. Java项目:嘟嘟网上商城系统(java+jdbc+jsp+mysql+ajax)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 功能: 商品的分类展示,用户的注册登录,购物车,订单结算, 购物车加减,后台商品管理,分类管理,订单管理等等功 能. 二.项目 ...

  9. Java项目嘟嘟网上商城系统(java+jdbc+jsp+mysql+ajax)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 功能: 商品的分类展示,用户的注册登录,购物车,订单结算, 购物车加减,后台商品管理,分类管理,订单管理等等功 能. 二.项目 ...

最新文章

  1. python 终止、结束、退出 代码
  2. SoapUI实践:自动化测试、压力测试、持续集成
  3. 常见的表死锁情况及解决方法
  4. 类型转换与采样 || SMOTE算法
  5. php中的单引号、双引号和转义字符
  6. Matlab | matpower5.0:最优潮流执行步骤
  7. VTK:图片之ImageVariance3D
  8. STM32F10x 使用SysTick的延时函数
  9. Facebook 如何管理150亿张照片
  10. 配置snmp_多种设备基于 SNMP 协议的敏感信息泄露漏洞数据分析报告
  11. 如何自己去写一个鼠标驱动_为什么要用哈密顿采样器(Hamiltonian Monte Carlo),以及如何自己写一个...
  12. ubuntu中将git 提交编译器nano 修改为vim
  13. c语言fseek128字节,C语言rewind和fseek函数的用法详解(随机读写文件)
  14. solidity数据位置
  15. 6.2.2 构造函数模式
  16. java nextline_使用新一代Java
  17. Document类型、HTMLDocument类型和document对象的区别
  18. iOS6正式版不完美越狱教程(附安装讯飞输入法)
  19. MFC—显示NX图标或透明背景图标
  20. 深度终端:ubuntu等linux下好用的远程终端软件

热门文章

  1. 一场关于Google成功和博士发表论文的大讨论
  2. 2021-08-22 2021年机修钳工(技师)考试题及机修钳工(技师)报名考试
  3. 数据科学的统计学知识笔记
  4. Java中BufferImage与Mat格式的互相转换
  5. 同花顺显示无法与服务器建立联系,【图】同花顺不能登入的试试这个服务器(已失效)_同花顺_股票软件技术交流论坛_理想论坛 - 股票论坛...
  6. 【论文阅读】Dive into Ambiguity: Latent Distribution Mining and Pairwise UncertaintyEstimation for Facial
  7. 牛顿(Newton)迭代法求解非线性方程以及方程组的Matlab实现
  8. HTML一些简单样式的小练习
  9. Android动态链接库减小体积
  10. Python计算机视觉第七章 图像搜索