基于javaweb mysql的ssm茶叶售卖商场(java ssm jsp jquery mysql)(平台、卖家、买家)

28,761次阅读
没有评论

共计 18674 个字符,预计需要花费 47 分钟才能阅读完成。

基于 javaweb+mysql 的 ssm 茶叶售卖商场(java+ssm+jsp+jquery+mysql)(平台、卖家、买家)

私信 源码获取及调试交流

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts 等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于 javaweb 的 SSM 茶叶售卖商场(java+ssm+jsp+jquery+mysql)(平台、卖家、买家)

管理员(后台管理):

admin 123456

卖家

saler1 123456

买家

buyer1 123456

SSM 的茶叶商城网站

# 项目介绍

该系统主要分为前台和后台两大功能模块,共包含三个角色:卖家、买家和管理员。

具体的系统功能如下:

1. 前台功能

前台首页、用户注册、用户登录、新闻公告、茶叶行情、查看茶叶、茶叶详情、加入购物车、加入收藏、购买茶叶、付款结算、添加评论、留言交流、个人中心、我的订单、我的收藏、意见反馈、发布茶叶、我的销售等功能。

2. 后台功能

后台系统登陆、用户管理、管理员管理、网站内容管理、茶叶类型管理、茶叶信息管理、购买订单管理、用户评价管理、意见反馈管理、留言交流管理等功能。

由于本程序规模不大,可供课程设计,毕业设计学习演示之用

# 环境需要

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/8.0 等版本均可;

# 技术栈

后台框架:Spring、SpringMVC、MyBatis

UI 界面:JSP、jQuery

数据库:MySQL

	@RequestMapping("usercenter.action")
	public String usercenter() {
		this.front();
		if (this.getSession().getAttribute("userid") == null) {
			return "redirect:/index/preLogin.action";
		}
		return "users/usercenter";
	}

	@RequestMapping("userinfo.action")
	public String userinfo() {
		this.front();
		if (this.getSession().getAttribute("userid") == null) {
			return "redirect:/index/preLogin.action";
		}
		String userid = (String) this.getSession().getAttribute("userid");
		this.getSession().setAttribute("users", this.usersService.getUsersById(userid));
		return "users/userinfo";
	}

	@RequestMapping("personal.action")
	public String personal(Users users) {
		this.front();
		if (this.getSession().getAttribute("userid") == null) {
			return "redirect:/index/preLogin.action";
		}
		this.usersService.updateUsers(users);
		return "redirect:/index/userinfo.action";
	}

	
	@RequestMapping("bbs.action")
	public String bbs() {
		this.front();
		ListBbs> bbsList = this.bbsService.getAllBbs();
		this.getRequest().setAttribute("bbsList", bbsList);
		return "users/bbs";
	}

	
		if(cond != null){
			if ("usersid".equals(cond)) {
				complains.setUsersid(name);
			}
			if ("title".equals(cond)) {
				complains.setTitle(name);
			}
			if ("contents".equals(cond)) {
				complains.setContents(name);
			}
			if ("addtime".equals(cond)) {
				complains.setAddtime(name);
			}
			if ("status".equals(cond)) {
				complains.setStatus(name);
			}
			if ("reps".equals(cond)) {
				complains.setReps(name);
			}
		}

		ListString> nameList = new ArrayListString>();
		ListString> valueList = new ArrayListString>();
		nameList.add(cond);
		valueList.add(name);
		PageHelper.getPage(this.complainsService.getComplainsByLike(complains), "complains", nameList, valueList, 10, number, this.getRequest(), "query");
		name = null;
		cond = null;
		return "admin/querycomplains";
	}

	
	@RequestMapping("getComplainsById.action")
	public String getComplainsById(String id) {
		Complains complains = this.complainsService.getComplainsById(id);
		this.getRequest().setAttribute("complains", complains);
		ListUsers> usersList = this.usersService.getAllUsers();
		this.getRequest().setAttribute("usersList", usersList);
		return "admin/editcomplains";
	}

}

		int r = fc + random.nextInt(bc - fc - 16);
		int g = fc + random.nextInt(bc - fc - 14);
		int b = fc + random.nextInt(bc - fc - 18);
		return new Color(r, g, b);
	}

	
	public void getRandcode(HttpServletRequest request, HttpServletResponse response) {
		HttpSession session = request.getSession();
		
		BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
		Graphics g = image.getGraphics();
		g.fillRect(0, 0, width, height);
		g.setFont(new Font("Times New Roman", Font.ROMAN_BASELINE, 18));
		g.setColor(getRandColor(110, 133));
		
		for (int i = 0; i  lineSize; i++) {
			drowLine(g);
		}
		
		String randomString = "";
		for (int i = 1; i  stringNum; i++) {
			randomString = drowString(g, randomString, i);
		}
		
		
		session.removeAttribute(RANDOMCODEKEY);
		session.setAttribute(RANDOMCODEKEY, randomString);
		g.dispose();
		try {
			
			ImageIO.write(image, "JPEG", response.getOutputStream());
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	
	private String drowString(Graphics g, String randomString, int i) {
		int pageNumber = list.size();
		int maxPage = pageNumber;
		if (maxPage % pageSize == 0) {maxPage = maxPage / pageSize;} else {maxPage = maxPage / pageSize + 1;}
		if (number == null) {number = "0";}
		int start = Integer.parseInt(number) * pageSize;
		int over = (Integer.parseInt(number) + 1) * pageSize;
		int count = pageNumber - over;
		if (count   共为");
		buffer.append(maxPage);
		buffer.append("页  共有");
		buffer.append(pageNumber);
		buffer.append("条  当前为第");
		buffer.append((Integer.parseInt(number) + 1));
		buffer.append("页  ");
		if ((Integer.parseInt(number) + 1) == 1) {buffer.append("首页");
		} else {buffer.append("首页a>");
		}
		buffer.append("  ");
		if ((Integer.parseInt(number) + 1) == 1) {buffer.append("上一页");
		} else {buffer.append("上一页a>");
		}
		buffer.append("  ");
		if (maxPage 下一页a>");
		}
		buffer.append("  ");
	public String deleteComplains(String id) {
		this.complainsService.deleteComplains(id);
		return "redirect:/complains/getAllComplains.action";
	}

	
	@RequestMapping("deleteComplainsByIds.action")
	public String deleteComplainsByIds() {
		String[] ids = this.getRequest().getParameterValues("complainsid");
		for (String complainsid : ids) {
			this.complainsService.deleteComplains(complainsid);
		}
		return "redirect:/complains/getAllComplains.action";
	}

	
	@RequestMapping("updateComplains.action")
	public String updateComplains(Complains complains) {
		this.complainsService.updateComplains(complains);
		return "redirect:/complains/getAllComplains.action";
	}

	
	@RequestMapping("status.action")
	public String status(String id) {
		String status = "";
		Complains complains = this.complainsService.getComplainsById(id);
		if (status.equals(complains.getStatus())) {
			status = "";
		}
		complains.setStatus(status);
		this.complainsService.updateComplains(complains);
		return "redirect:/complains/getAllComplains.action";
	}

	
	@RequestMapping("getAllComplains.action")
	public String getAllComplains(String number) {
		ListComplains> complainsList = this.complainsService.getAllComplains();
		PageHelper.getPage(complainsList, "complains", null, null, 10, number, this.getRequest(), null);
		return "admin/listcomplains";
	}

	
	@RequestMapping("queryComplainsByCond.action")
	public String queryComplainsByCond(String cond, String name, String number) {
		Complains complains = new Complains();
		if(cond != null){
			if ("usersid".equals(cond)) {
				complains.setUsersid(name);
			}
			if ("title".equals(cond)) {
				complains.setTitle(name);
			}
	}
	
	@RequestMapping("addAdmin.action")
	public String addAdmin(Admin admin) {
		admin.setAddtime(VeDate.getStringDateShort());
		this.adminService.insertAdmin(admin);
		return "redirect:/admin/createAdmin.action";
	}

	
	@RequestMapping("deleteAdmin.action")
	public String deleteAdmin(String id) {
		this.adminService.deleteAdmin(id);
		return "redirect:/admin/getAllAdmin.action";
	}

	
	@RequestMapping("deleteAdminByIds.action")
	public String deleteAdminByIds() {
		String[] ids = this.getRequest().getParameterValues("adminid");
		for (String adminid : ids) {
			this.adminService.deleteAdmin(adminid);
		}
		return "redirect:/admin/getAllAdmin.action";
	}

	
	@RequestMapping("updateAdmin.action")
	public String updateAdmin(Admin admin) {
		this.adminService.updateAdmin(admin);
		return "redirect:/admin/getAllAdmin.action";
	}

	
	@RequestMapping("getAllAdmin.action")
	public String getAllAdmin(String number) {
		ListAdmin> adminList = this.adminService.getAllAdmin();
		PageHelper.getPage(adminList, "admin", null, null, 10, number, this.getRequest(), null);
		return "admin/listadmin";
	}

	
	@RequestMapping("queryAdminByCond.action")
		this.front();
		if (this.getSession().getAttribute("userid") == null) {
			return "redirect:/index/preLogin.action";
		}
		Goods goods = this.goodsService.getGoodsById(id);
		this.getRequest().setAttribute("goods", goods);
		return "users/editGoods";
	}

	@RequestMapping("updateGoods.action")
	public String updateGoods(Goods goods) {
		this.goodsService.updateGoods(goods);
		this.front();
		if (this.getSession().getAttribute("userid") == null) {
			return "redirect:/index/preLogin.action";
		}
		return "redirect:/index/myGoods.action";
	}

	@RequestMapping("deleteGoods.action")
	public String deleteGoods(String id) {
		this.front();
		if (this.getSession().getAttribute("userid") == null) {
			return "redirect:/index/preLogin.action";
		}
		this.goodsService.deleteGoods(id);
		return "redirect:/index/myGoods.action";
	}

	@RequestMapping("preTopic.action")
	public String preTopic(String id) {
		this.front();
		if (this.getSession().getAttribute("userid") == null) {
			return "redirect:/index/preLogin.action";
		}
		Orders orders = this.ordersService.getOrdersById(id);
		this.getRequest().setAttribute("id", id);
		this.getRequest().setAttribute("orders", orders);
		return "users/addTopic";
	}

		request.setAttribute("html", html);
		request.setAttribute(name + "List", objList);
	}

}


@Controller

@RequestMapping(value = "/admin" , produces = "text/plain;charset=utf-8")
public class AdminController extends BaseController {
	
	@Autowired
	private AdminService adminService;

	
	@RequestMapping("index.action")
	public String index() {
		return "admin/index";
	}

	
	@RequestMapping("login.action")
	public String login() {
		String username = this.getRequest().getParameter("username");
		String password = this.getRequest().getParameter("password");
		Admin adminEntity = new Admin();
		adminEntity.setUsername(username);
		ListAdmin> adminlist = this.adminService.getAdminByCond(adminEntity);
		if (adminlist.size() == 0) {
			this.getRequest().setAttribute("message", "用户名不存在");
			return "redirect:/admin/index.action";
		} else {
			Admin admin = adminlist.get(0);
			if (password.equals(admin.getPassword())) {
				this.getSession().setAttribute("adminid", admin.getAdminid());
				this.getSession().setAttribute("adminname", admin.getUsername());
				this.getSession().setAttribute("realname", admin.getRealname());
			} else {
				this.getRequest().setAttribute("message", "密码错误");
				return "redirect:/admin/index.action";
			}
		}
		return "admin/main";
		this.front();
		if (this.getSession().getAttribute("userid") == null) {
			return "redirect:/index/preLogin.action";
		}
		String userid = (String) this.getSession().getAttribute("userid");
		Cart cart = new Cart();
		cart.setUsersid(userid);
		ListCart> cartList = this.cartService.getCartByCond(cart);
		this.getRequest().setAttribute("cartList", cartList);
		return "users/cart";
	}

	
	@RequestMapping("deletecart.action")
	public String deletecart(String id) {
		this.front();
		if (this.getSession().getAttribute("userid") == null) {
			return "redirect:/index/preLogin.action";
		}
		this.cartService.deleteCart(id);
		return "redirect:/index/cart.action";
	}

	
	@RequestMapping("checkout.action")
	public String checkout() {
		this.front();
		if (this.getSession().getAttribute("userid") == null) {
			return "redirect:/index/preLogin.action";
		}
		String userid = (String) this.getSession().getAttribute("userid");
		Cart cart1 = new Cart();
		cart1.setUsersid(userid);
		ListCart> cartList = this.cartService.getCartByCond(cart1);
		if (cartList.size() == 0) {
			this.getRequest().setAttribute("message", "请选购茶叶");
			return "redirect:/index/cart.action";
		} else {
			for (Cart cart : cartList) {
				Goods goods = this.goodsService.getGoodsById(cart.getGoodsid());
				goods.setSellnum("" + (Integer.parseInt(goods.getSellnum()) + Integer.parseInt(cart.getNum())));
				goods.setStorage("" + (Integer.parseInt(goods.getStorage()) - Integer.parseInt(cart.getNum())));
				this.goodsService.updateGoods(goods);
				String ordercode = "PD" + VeDate.getStringId();
		PageHelper.getPage(topicList, "topic", null, null, 10, number, this.getRequest(), null);
		return "admin/listtopic";
	}

	
	@RequestMapping("queryTopicByCond.action")
	public String queryTopicByCond(String cond, String name, String number) {
		Topic topic = new Topic();
		if(cond != null){
			if ("usersid".equals(cond)) {
				topic.setUsersid(name);
			}
			if ("ordersid".equals(cond)) {
				topic.setOrdersid(name);
			}
			if ("goodsid".equals(cond)) {
				topic.setGoodsid(name);
			}
			if ("num".equals(cond)) {
				topic.setNum(name);
			}
			if ("contents".equals(cond)) {
				topic.setContents(name);
			}
			if ("addtime".equals(cond)) {
				topic.setAddtime(name);
			}
		}

		ListString> nameList = new ArrayListString>();
		ListString> valueList = new ArrayListString>();
		nameList.add(cond);
		valueList.add(name);
		PageHelper.getPage(this.topicService.getTopicByLike(topic), "topic", nameList, valueList, 10, number, this.getRequest(), "query");
		name = null;
		cond = null;
		return "admin/querytopic";
	}

	
	@RequestMapping("getTopicById.action")
	public String getTopicById(String id) {
		Topic topic = this.topicService.getTopicById(id);
		this.getRequest().setAttribute("topic", topic);
		ListUsers> usersList = this.usersService.getAllUsers();
		this.getRequest().setAttribute("usersList", usersList);
		ListOrders> ordersList = this.ordersService.getAllOrders();
		this.getRequest().setAttribute("ordersList", ordersList);
		ListGoods> goodsList = this.goodsService.getAllGoods();
		this.getRequest().setAttribute("goodsList", goodsList);
		return "admin/edittopic";
			}
			if ("hits".equals(cond)) {
				bbs.setHits(name);
			}
			if ("repnum".equals(cond)) {
				bbs.setRepnum(name);
			}
		}

		ListString> nameList = new ArrayListString>();
		ListString> valueList = new ArrayListString>();
		nameList.add(cond);
		valueList.add(name);
		PageHelper.getPage(this.bbsService.getBbsByLike(bbs), "bbs", nameList, valueList, 10, number, this.getRequest(), "query");
		name = null;
		cond = null;
		return "admin/querybbs";
	}

	
	@RequestMapping("getBbsById.action")
	public String getBbsById(String id) {
		Bbs bbs = this.bbsService.getBbsById(id);
		this.getRequest().setAttribute("bbs", bbs);
		ListUsers> usersList = this.usersService.getAllUsers();
		this.getRequest().setAttribute("usersList", usersList);
		return "admin/editbbs";
	}

}

		nameList.add(cond);
		valueList.add(name);
		PageHelper.getPage(this.rebbsService.getRebbsByLike(rebbs), "rebbs", nameList, valueList, 10, number, this.getRequest(), "query");
		name = null;
		cond = null;
		return "admin/queryrebbs";
	}

	
	@RequestMapping("getRebbsById.action")
	public String getRebbsById(String id) {
		Rebbs rebbs = this.rebbsService.getRebbsById(id);
		this.getRequest().setAttribute("rebbs", rebbs);
		ListUsers> usersList = this.usersService.getAllUsers();
		this.getRequest().setAttribute("usersList", usersList);
		ListBbs> bbsList = this.bbsService.getAllBbs();
		this.getRequest().setAttribute("bbsList", bbsList);
		return "admin/editrebbs";
	}

}

public class RandomValidateCode {
	public static final String RANDOMCODEKEY = "RANDOMVALIDATECODEKEY";
	
	private String randString = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	
	private int width = 95;
	private int height = 25;
	private int lineSize = 40;
	private int stringNum = 4;

	private Random random = new Random();

	
		buffer.append("  共为");
		buffer.append(maxPage);
		buffer.append("页  共有");
		buffer.append(pageNumber);
		buffer.append("条  当前为第");
		buffer.append((Integer.parseInt(number) + 1));
		buffer.append("页  ");
		if ((Integer.parseInt(number) + 1) == 1) {buffer.append("首页");
		} else {buffer.append("首页a>");
		}
		buffer.append("  ");
		if ((Integer.parseInt(number) + 1) == 1) {buffer.append("上一页");
		} else {buffer.append("上一页a>");
		}
		buffer.append("  ");
		if (maxPage 下一页a>");
		}
		buffer.append("  ");
		if (maxPage 尾页a>");
		}
		String html = buffer.toString();
		request.setAttribute("html", html);
		request.setAttribute(name + "List", objList);
	}

	public static void getUserPage(List?> list, String name, String actionName, int pageSize, String number, HttpServletRequest request) {StringBuffer buffer = new StringBuffer();
		String path = "";
		String action = actionName + ".action";
		ListObject> objList = new ArrayListObject>();
		int pageNumber = list.size();
		int maxPage = pageNumber;
		if (maxPage % pageSize == 0) {maxPage = maxPage / pageSize;} else {maxPage = maxPage / pageSize + 1;}
	private String randString = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	
	private int width = 95;
	private int height = 25;
	private int lineSize = 40;
	private int stringNum = 4;

	private Random random = new Random();

	
	private Font getFont() {
		return new Font("Fixedsys", Font.CENTER_BASELINE, 18);
	}

	
	private Color getRandColor(int fc, int bc) {
		if (fc > 255)
			fc = 255;
		if (bc > 255)
			bc = 255;
		int r = fc + random.nextInt(bc - fc - 16);
		int g = fc + random.nextInt(bc - fc - 14);
		int b = fc + random.nextInt(bc - fc - 18);
		return new Color(r, g, b);
	}

	
	public void getRandcode(HttpServletRequest request, HttpServletResponse response) {
		HttpSession session = request.getSession();
		
		BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
		Graphics g = image.getGraphics();
		g.fillRect(0, 0, width, height);
		g.setFont(new Font("Times New Roman", Font.ROMAN_BASELINE, 18));
		g.setColor(getRandColor(110, 133));
		
		for (int i = 0; i  lineSize; i++) {
			drowLine(g);
		}
		
		String randomString = "";
		for (int i = 1; i  stringNum; i++) {
			randomString = drowString(g, randomString, i);
		}
		
		
		this.getRequest().setAttribute("id", id);
		Orders orders = this.ordersService.getOrdersById(id);
		this.getRequest().setAttribute("orders", orders);
		return "users/pay";
	}

	
	@RequestMapping("pay.action")
	public String pay(String id) {
		this.front();
		if (this.getSession().getAttribute("userid") == null) {
			return "redirect:/index/preLogin.action";
		}
		Orders orders = this.ordersService.getOrdersById(this.getRequest().getParameter("id"));
		orders.setStatus("已付款");
		this.ordersService.updateOrders(orders);
		return "redirect:/index/showOrders.action";
	}

	
	@RequestMapping("over.action")
	public String over(String id) {
		this.front();
		if (this.getSession().getAttribute("userid") == null) {
			return "redirect:/index/preLogin.action";
		}
		Orders orders = this.ordersService.getOrdersById(this.getRequest().getParameter("id"));
		orders.setStatus("已收货");
		this.ordersService.updateOrders(orders);
		return "redirect:/index/showOrders.action";
	}

	
	@RequestMapping("cancel.action")
	public String cancel(String id) {
		this.front();
		if (this.getSession().getAttribute("userid") == null) {
			return "redirect:/index/preLogin.action";
		}
		Orders orders = this.ordersService.getOrdersById(this.getRequest().getParameter("id"));
		orders.setStatus("已取消");
		this.ordersService.updateOrders(orders);
		return "redirect:/index/showOrders.action";
	}

	
	@RequestMapping("cate.action")
	public String cate(String id, String number) {
		this.front();
		Goods goods = new Goods();
		goods.setCateid(id);
		ListGoods> tempList = this.goodsService.getGoodsByCond(goods);
		Rebbs rebbs = new Rebbs();
		if(cond != null){
			if ("usersid".equals(cond)) {
				rebbs.setUsersid(name);
			}
			if ("bbsid".equals(cond)) {
				rebbs.setBbsid(name);
			}
			if ("contents".equals(cond)) {
				rebbs.setContents(name);
			}
			if ("addtime".equals(cond)) {
				rebbs.setAddtime(name);
			}
		}

		ListString> nameList = new ArrayListString>();
		ListString> valueList = new ArrayListString>();
		nameList.add(cond);
		valueList.add(name);
		PageHelper.getPage(this.rebbsService.getRebbsByLike(rebbs), "rebbs", nameList, valueList, 10, number, this.getRequest(), "query");
		name = null;
		cond = null;
		return "admin/queryrebbs";
	}

	
	@RequestMapping("getRebbsById.action")
	public String getRebbsById(String id) {
		Rebbs rebbs = this.rebbsService.getRebbsById(id);
		this.getRequest().setAttribute("rebbs", rebbs);
		ListUsers> usersList = this.usersService.getAllUsers();
		this.getRequest().setAttribute("usersList", usersList);
		ListBbs> bbsList = this.bbsService.getAllBbs();
		this.getRequest().setAttribute("bbsList", bbsList);
		return "admin/editrebbs";
	}

}

	@Autowired
	private TopicService topicService;

	@RequestMapping("chartline.action")
	@ResponseBody
	public String chartline() throws JSONException {
		String start = this.getRequest().getParameter("start");
		String end = this.getRequest().getParameter("end");
		long days = VeDate.getDays(end, start) + 1;
		JSONArray total = new JSONArray();
		JSONArray count = new JSONArray();
		JSONArray day = new JSONArray(); 
		for (int i = 0; i  days; i++) {
			String nxtDay = VeDate.getNextDay(start, "" + i);
			System.out.println(nxtDay);
			Orders orders = new Orders();
			orders.setAddtime(nxtDay);
			ListOrders> list = this.ordersService.getOrdersByCond(orders);
			double sellTotal = 0;
			double sellCount = 0;
			for (Orders x : list) {
				sellTotal += Double.parseDouble(x.getTotal());
			}
			sellCount = list.size();
			total.put(VeDate.getDouble(sellTotal));
			count.put(sellCount);
			day.put(nxtDay);
		}
		JSONArray cate = new JSONArray();
		cate.put("订单收入");
		JSONObject json = new JSONObject();
		json.put("sellTotal", total.toString());
		json.put("days", day.toString().replaceAll(""", ""));
		json.put("cate", cate.toString().replaceAll(""", ""));
		System.out.println(json.toString());
		return json.toString();
	}

	@RequestMapping("chartPie.action")
	@ResponseBody
	public String chartPie() throws JSONException {
		JSONArray names = new JSONArray();
		JSONArray count = new JSONArray();
		int stars1 = 0;
		int stars2 = 0;
		int stars3 = 0;
		int stars4 = 0;
		int stars5 = 0;
		names.put("非常满意");
		names.put("满意");
		names.put("一般");
		names.put("不满意");

基于 javaweb mysql 的 ssm 茶叶售卖商场(java ssm jsp jquery mysql)(平台、卖家、买家)
基于 javaweb mysql 的 ssm 茶叶售卖商场(java ssm jsp jquery mysql)(平台、卖家、买家)
基于 javaweb mysql 的 ssm 茶叶售卖商场(java ssm jsp jquery mysql)(平台、卖家、买家)
基于 javaweb mysql 的 ssm 茶叶售卖商场(java ssm jsp jquery mysql)(平台、卖家、买家)
基于 javaweb mysql 的 ssm 茶叶售卖商场(java ssm jsp jquery mysql)(平台、卖家、买家)
基于 javaweb mysql 的 ssm 茶叶售卖商场(java ssm jsp jquery mysql)(平台、卖家、买家)
基于 javaweb mysql 的 ssm 茶叶售卖商场(java ssm jsp jquery mysql)(平台、卖家、买家)
请添加图片描述

原文地址: 基于 javaweb mysql 的 ssm 茶叶售卖商场(java ssm jsp jquery mysql)(平台、卖家、买家)

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-10-07发表,共计18674字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)