基于javaweb mysql的jsp servlet美食商城管理系统(java jsp bootstrap jquery mysql)

29,417次阅读
没有评论

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

基于 javaweb+mysql 的 jsp+servlet 美食商城管理系统(java+jsp+bootstrap+jquery+mysql)

私信 源码获取及调试交流

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

基于 javaweb 的 JSP+Servlet 美食商城管理系统(java+jsp+bootstrap+jquery+mysql)

项目介绍

本项目分为前台与后台,前台由用户登录,后台由管理员登录;

管理员角色包含以下功能:

管理员登录, 会员管理, 资讯管理, 链接管理, 图片管理, 美食类别管理, 制作方法管理, 美食管理, 美食库存管理, 订单管理, 留言管理等功能。

用户角色包含以下功能:用户登录, 按分类查看菜品, 查看站内资讯, 提交留言, 查看商品详情, 加入购物车, 提交订单, 付款, 查看我的订单等功能。

环境需要

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 项目:否;

技术栈

JSP+CSS+JavaScript+jQuery+Bootstrap+mysql

使用说明

  1. 使用 Navicat 或者其它工具,在 mysql 中创建对应名称的数据库,并导入项目的 sql 文件;2. 使用 IDEA/Eclipse/MyEclipse 导入项目,Eclipse/MyEclipse 导入时,若为 maven 项目请选择 maven; 若为 maven 项目,导入成功后请执行 maven clean;maven install 命令,然后运行;3. 将项目中 util/SimpleDataSource.java 配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入 localhost:8080/jsp_zhctms_site 登录 注:tomcat 中配置项目路径必须为 jsp_zhctms_site 用户账号 / 密码:user/123456 管理员账号 / 密码:admin/admin
					+ "'where id=" + id);
			request.setAttribute("suc", "");
			go("/admin/propertyedit.jsp?id=" + id, request, response);
		}
		// AJAX 根据父类查子类
		if (ac.equals("searchsontype")) {String xml_start = "selects>";
			String xml_end = "selects>";
			String xml = "";
			String fprotype = request.getParameter("fprotype");
			ArrayListHashMap> list = (ArrayListHashMap>) dao
					.select("select * from protype where fatherid='" + fprotype
							+ "'and delstatus='0' ");
			if (list.size() > 0) {for (HashMap map : list) {xml += "select>value>" + map.get("id") + "value>text>"
							+ map.get("typename") + "text>value>"
							+ map.get("id") + "value>text>"
							+ map.get("typename") + "text>select>";
				}
			}
			String last_xml = xml_start + xml + xml_end;
			response.setContentType("text/xml;charset=GB2312");
			response.setCharacterEncoding("utf-8");
			response.getWriter().write(last_xml);
			response.getWriter().flush();

		}
		// 公用方法,图片上传
		if (ac.equals("uploadimg")) {
			try {
				String filename = "";
				request.setCharacterEncoding("utf-8");
				RequestContext requestContext = new ServletRequestContext(request);
				if (FileUpload.isMultipartContent(requestContext)) {DiskFileItemFactory factory = new DiskFileItemFactory();
					factory.setRepository(new File(request
							.getRealPath("/upfile/") + "/"));
					ServletFileUpload upload = new ServletFileUpload(factory);
					upload.setSizeMax(100 * 1024 * 1024);
					List items = new ArrayList();
					items = upload.parseRequest(request);
					FileItem fileItem = (FileItem) items.get(0);
					if (fileItem.getName() != null && fileItem.getSize() != 0) {if (fileItem.getName() != null
								&& fileItem.getSize() != 0) {File fullFile = new File(fileItem.getName());

	
	protected int pageSize;

	
	protected long pageNumber;

	
	protected long count;

	
	protected Collection collection;

	
	protected CommDAO dao = new CommDAO();

	
	protected String info;

	
	protected String path;

	
	protected HttpServletRequest request;

	
	protected String parameter = "";

	
	protected PageManager(String path, int pageSize, HttpServletRequest request) {
		
		this.currentPage = 1;
		this.pageNumber = 1;
		this.count = 0;
		this.pageSize = pageSize  0 ? DEFAULTPAGESIZE : pageSize;
		this.request = request;
		this.path = path;
					+ "','"
					+ delstatus
					+ "','"
					+ savetime + "')");
			request.setAttribute("suc", "");
			go("/admin/sysuseradd.jsp", request, response);
		}
		
		if (ac.equals("sysuseredit")) {
			String id = request.getParameter("id");
			String userpwd = request.getParameter("userpwd");
			String realname = request.getParameter("realname");
			String sex = request.getParameter("sex");
			String idcard = request.getParameter("idcard");
			String tel = request.getParameter("tel");
			String email = request.getParameter("email");
			String addr = request.getParameter("addr");
			dao.commOper("update sysuser set userpwd='" + userpwd
					+ "',realname='" + realname + "',sex='" + sex
					+ "',idcard='" + idcard + "',tel='" + tel + "',email='"
					+ email + "',addr='" + addr + "'where id=" + id);
			request.setAttribute("suc", "");
			go("/admin/sysuseredit.jsp?id=" + id, request, response);
		}
		
		if (ac.equals("protypeadd")) {
			String typename = request.getParameter("typename");
			String fatherid = request.getParameter("fatherid");
			dao.commOper("insert into protype (typename,fatherid,delstatus) values ('"
					+ typename + "','" + fatherid + "','0')");
			request.setAttribute("suc", "操作成功!");
			go("/admin/protype.jsp", request, response);
		}
		
		if (ac.equals("protypeedit")) {
			String id = request.getParameter("id");
			String typename = request.getParameter("typename");
			dao.commOper("update protype set typename='" + typename
					+ "'where id=" + id);
			request.setAttribute("suc", "操作成功!");
			go("/admin/protype.jsp?id=" + id, request, response);
		}
		
		if (ac.equals("propertyadd")) {
			String propertyname = request.getParameter("propertyname");
							+ "','"
							+ savetime
							+ "','"
							+ shstatus
							+ "','"
							+ wlinfo
							+ "','"
							+ fkstatus
							+ "','"
							+ shrname + "','" + shrtel + "','" + shraddr + "')");
					dao.commOper("insert into dddetail (ddno,goodid,sl) values ('"
							+ ddno + "','" + gid + "','" + sl + "')");

					out.print("true");
				}
			} else {
				out.print("false");
			}
			
			
		}

		
		if (ac.equals("updatecart")) {
			String id = request.getParameter("carid");
			int sl = Integer.valueOf(request.getParameter("sl"));
			dao.commOper("update car set sl=" + sl + "where id=" + id);
			out.print("true");
		}

		
		if (ac.equals("updatetprice")) {
			ArrayListHashMap> goodlist = (ArrayListHashMap>) dao
					.select("select *,a.id as aid,b.id as bid from car a,goods b where a.gid=b.id and a.mid='"
							+ member.get("id")
							+ "'and b.delstatus='0'order by a.id desc");
			double totalprice = 0.0;
			for (HashMap carmap : goodlist) {
				if (carmap.get("tprice") != null
						&& !carmap.get("tprice").equals("")) {
					totalprice += Double.valueOf(carmap.get("tprice")
							.toString())
							* Integer.valueOf(carmap.get("sl").toString());
				} else {
					totalprice += Double
							.valueOf(carmap.get("price").toString())
							* Integer.valueOf(carmap.get("sl").toString());
				}
			}
			out.print(totalprice);
		}
				request.setCharacterEncoding("utf-8");
				RequestContext requestContext = new ServletRequestContext(
						request);
				if (FileUpload.isMultipartContent(requestContext)) {
					DiskFileItemFactory factory = new DiskFileItemFactory();
					factory.setRepository(new File(request
							.getRealPath("/upfile/") + "/"));
					ServletFileUpload upload = new ServletFileUpload(factory);
					upload.setSizeMax(100 * 1024 * 1024);
					List items = new ArrayList();
					items = upload.parseRequest(request);
					goodname = ((FileItem) items.get(0)).getString();
					goodname = Info.getUTFStr(goodname);
					fid = ((FileItem) items.get(1)).getString();
					fid = Info.getUTFStr(fid);
					sid = ((FileItem) items.get(2)).getString();
					sid = Info.getUTFStr(sid);
					goodpp = ((FileItem) items.get(3)).getString();
					goodpp = Info.getUTFStr(goodpp);
					price = ((FileItem) items.get(4)).getString();
					price = Info.getUTFStr(price);
					note = ((FileItem) items.get(6)).getString();
					note = Info.getUTFStr(note);
					FileItem fileItem = (FileItem) items.get(5);
					if (fileItem.getName() != null && fileItem.getSize() != 0) {
						if (fileItem.getName() != null
								&& fileItem.getSize() != 0) {
							File fullFile = new File(fileItem.getName());
							filename = Info.generalFileName(fullFile.getName());
							File newFile = new File(
									request.getRealPath("/upfile/") + "/"
											+ filename);
							try {
								fileItem.write(newFile);
							} catch (Exception e) {
								e.printStackTrace();
							}
						} else {
						}
					}
				} else {
					dao.commOper("update goods set tprice='" + tprice
							+ "'where id=" + id);
					request.setAttribute("suc", "特价设置成功!");
					go("/admin/goodsgl.jsp", request, response);
				}
			} else {
				dao.commOper("update goods set tprice='' where id=" + id);
				request.setAttribute("info", "特价已取消!");
				go("/admin/goodsgl.jsp", request, response);
			}
		}

		out.flush();
		out.close();
	}

	private static Properties config = null;
	static {
		 
	}














	public static void main(String[] args) {
		System.out.println(new CommDAO().select("select * from mixinfo"));
	}

}


	
	protected String info;

	
	protected String path;

	
	protected HttpServletRequest request;

	
	protected String parameter = "";

	
	protected PageManager(String path, int pageSize, HttpServletRequest request) {
		
		this.currentPage = 1;
		this.pageNumber = 1;
		this.count = 0;
		this.pageSize = pageSize  0 ? DEFAULTPAGESIZE : pageSize;
		this.request = request;
		this.path = path;

		request.setAttribute("page", this);

		try {
			this.currentPage = Integer.parseInt(request
					.getParameter("currentPage"))  0 ? 1 : Integer
					.parseInt(request.getParameter("currentPage"));

		} catch (Exception e) {

			try {
				this.currentPage = Integer.parseInt((String) request
						.getSession().getAttribute("currentPage"));

			} catch (Exception e1) {
				this.currentPage = 1;

			}

		}

	}

public class PageManager {
	private PageManager() {

	}

	
	public static final int DEFAULTPAGESIZE = 20;

	
	public static final int segment = 10;

	
	protected int currentPage;

	
	protected int pageSize;

	
	protected long pageNumber;

	
	protected long count;

	
	protected Collection collection;

	
	protected CommDAO dao = new CommDAO();
			}
		}

		
		if (ac.equals("kcwarningset")) {
			String num = request.getParameter("num");
			String id = request.getParameter("id");
			dao.commOper("update kcwarnning set num=" + Integer.parseInt(num)
					+ "where id=" + id);
			request.setAttribute("suc", "");
			go("/admin/kcwarningset.jsp", request, response);
		}
		
		if (ac.equals("kcinto")) {
			String pid = request.getParameter("pid");
			String num = request.getParameter("num");
			String type = request.getParameter("type");
			String reason = request.getParameter("reason");
			String savetime = Info.getDateStr();
			dao.commOper("insert into kcrecord (pid,num,type,reason,savetime) values"
					+ "('"
					+ pid
					+ "','"
					+ Integer.parseInt(num)
					+ "','"
					+ type + "','" + reason + "','" + savetime + "')");
			request.setAttribute("suc", "");
			go("/admin/kcinto.jsp", request, response);
		}
		
		if (ac.equals("kcout")) {
			String pid = request.getParameter("pid");
			String num = request.getParameter("num");
			String type = request.getParameter("type");
			String reason = request.getParameter("reason");
			String savetime = Info.getDateStr();

			int znum = 0;
			int innum = 0;
			int outnum = 0;
			ArrayListHashMap> inlist = (ArrayListHashMap>) dao
					.select("select * from kcrecord where  type='in'and pid='"
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		StringBuffer   sb   =   new   StringBuffer(50);   
		 response.setContentType("application/x-msdownload;charset=utf-8");   
        try {
			response.setHeader("Content-Disposition",   new   String(sb.toString()   
			         .getBytes(),   "ISO8859-1"));
		} catch (UnsupportedEncodingException e1) {
			
			e1.printStackTrace();
		}
		 String filename = request.getParameter("filename");
		  if (request.getHeader("User-Agent").toLowerCase().indexOf("firefox") > 0){
		     try {
				filename = new String(filename.getBytes("UTF-8"), "ISO8859-1");
			} catch (UnsupportedEncodingException e) {
				
				e.printStackTrace();
			}
		 }
		 else 
		      if (request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0){
		           try {
					filename = URLEncoder.encode(filename, "UTF-8");
				} catch (UnsupportedEncodingException e) {
					
					e.printStackTrace();
				}
		      }
		 response.setContentType("text/plain");
		 response.setHeader("Location",filename);
		 response.reset();
		 response.setHeader("Cache-Control", "max-age=0" );
		 response.setHeader("Content-Disposition", "attachment; filename=" + filename);
		   

		    try {
				       BufferedInputStream bis = null;
					   BufferedOutputStream bos = null;
					   OutputStream fos = null;
					  
					   
	       
	       if(d2[2].length()==1)
	       {
	    	   DATE2 = DATE2+"-0"+d2[2];
	       }else{
	    	   DATE2 = DATE2+"-"+d2[2];
	       }
	       
	       
	       for(int j=0;j10000;j++)
	       {
	    	i=j;
	    	String gday = Info.getDay(DATE1, j);
	    	if(gday.equals(DATE2))
	    	{
	    		break;
	    	}
	       }
	        return i;
	    }
	    
	   
	    

	    
	    public static String compare_datezq(String DATE1, String DATE2) {
	       DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
	        try {
	            Date dt1 = df.parse(DATE1);
	            Date dt2 = df.parse(DATE2);
	            if (dt1.getTime() > dt2.getTime()) {
	               
	                return "big";
	            } else if (dt1.getTime()  dt2.getTime()) {
	              
	                return "small";
	            } else {
	                return "den";
		return new PageManager(path, pageSize, request);

	}

	
	public void doList(String hql) {
        String sql = "select count(*)"+hql.substring(hql.indexOf("from"));
        sql = sql.substring(0,sql.indexOf("order"));
        
		this.count = this.dao.getInt(sql);
		if (this.count != 0) {
			this.pageNumber = count % this.pageSize == 0 ? this.count
					/ this.pageSize : this.count / this.pageSize + 1;
			if (this.currentPage > this.pageNumber)
				this.currentPage = (int) this.pageNumber;

		}
		this.request.getSession().setAttribute("currentPage",
				String.valueOf(this.currentPage));
		this.collection = this.dao.select(hql,
				this.currentPage , this.pageSize);

		this.refreshUrl();
	}

	
	public void addParameter(List parameter) {

		StringBuffer para = new StringBuffer("");
		if (parameter != null && parameter.size() != 0) {
			Iterator iterator = parameter.iterator();
			while (iterator.hasNext()) {
				para.append("&").append(iterator.next().toString());
			}
		}
		this.parameter = para.toString();

	}

	
	protected void refreshUrl() {
			String realname = request.getParameter("realname");
			String sex = request.getParameter("sex");
			String idcard = request.getParameter("idcard");
			String tel = request.getParameter("tel");
			String email = request.getParameter("email");
			String addr = request.getParameter("addr");
			String delstatus = "0";
			String savetime = Info.getDateStr();
			dao.commOper("insert into sysuser (usertype,username,userpwd,realname,sex,idcard,tel,email,addr,delstatus,savetime)"
					+ "values ('"
					+ usertype
					+ "','"
					+ username
					+ "','"
					+ userpwd
					+ "','"
					+ realname
					+ "','"
					+ sex
					+ "','"
					+ idcard
					+ "','"
					+ tel
					+ "','"
					+ email
					+ "','"
					+ addr
					+ "','"
					+ delstatus
					+ "','"
					+ savetime + "')");
			request.setAttribute("suc", "");
			go("/admin/sysuseradd.jsp", request, response);
		}
		
		if (ac.equals("sysuseredit")) {
			String id = request.getParameter("id");
			String userpwd = request.getParameter("userpwd");
			String realname = request.getParameter("realname");
			String sex = request.getParameter("sex");
			String idcard = request.getParameter("idcard");
			String tel = request.getParameter("tel");
			String email = request.getParameter("email");
			String addr = request.getParameter("addr");
			dao.commOper("update sysuser set userpwd='" + userpwd
					+ "',realname='" + realname + "',sex='" + sex
					+ "',idcard='" + idcard + "',tel='" + tel + "',email='"
					+ email + "',addr='" + addr + "'where id=" + id);
			request.setAttribute("suc", "");
			} else {
				request.setAttribute("error", "");
				go("admin/login.jsp", request, response);
			}
		}
		
		if (ac.equals("backexit")) {
			session.removeAttribute("admin");
			go("admin/login.jsp", request, response);
		}

		
		if (ac.equals("newsadd")) {
			try {
				String title = "";
				String img = "";
				String note = "";
				request.setCharacterEncoding("utf-8");
				RequestContext requestContext = new ServletRequestContext(
						request);
				if (FileUpload.isMultipartContent(requestContext)) {
					DiskFileItemFactory factory = new DiskFileItemFactory();
					factory.setRepository(new File(request
							.getRealPath("/upfile/") + "/"));
					ServletFileUpload upload = new ServletFileUpload(factory);
					upload.setSizeMax(100 * 1024 * 1024);
					List items = new ArrayList();
					items = upload.parseRequest(request);

					title = ((FileItem) items.get(0)).getString();
					title = Info.getUTFStr(title);

					note = ((FileItem) items.get(2)).getString();
					note = Info.getUTFStr(note);

					FileItem fileItem = (FileItem) items.get(1);
					if (fileItem.getName() != null && fileItem.getSize() != 0) {
						if (fileItem.getName() != null
								&& fileItem.getSize() != 0) {
							File fullFile = new File(fileItem.getName());
							img = Info.generalFileName(fullFile.getName());
							File newFile = new File(
									request.getRealPath("/upfile/") + "/" + img);
							try {
								fileItem.write(newFile);
							} catch (Exception e) {
								e.printStackTrace();
							}
						} else {
		if (ac.equals("uploadimg")) {
			try {
				String filename = "";
				request.setCharacterEncoding("utf-8");
				RequestContext requestContext = new ServletRequestContext(
						request);
				if (FileUpload.isMultipartContent(requestContext)) {

					DiskFileItemFactory factory = new DiskFileItemFactory();
					factory.setRepository(new File(request
							.getRealPath("/upfile/") + "/"));
					ServletFileUpload upload = new ServletFileUpload(factory);
					upload.setSizeMax(100 * 1024 * 1024);
					List items = new ArrayList();
					items = upload.parseRequest(request);
					FileItem fileItem = (FileItem) items.get(0);
					if (fileItem.getName() != null && fileItem.getSize() != 0) {
						if (fileItem.getName() != null
								&& fileItem.getSize() != 0) {
							File fullFile = new File(fileItem.getName());
							filename = Info.generalFileName(fullFile.getName());
							File newFile = new File(
									request.getRealPath("/upfile/") + "/"
											+ filename);
							try {
								fileItem.write(newFile);
							} catch (Exception e) {
								e.printStackTrace();
							}
						} else {
						}
					}
				}

				go("/js/uploadimg.jsp?filename=" + filename, request, response);
			} catch (Exception e1) {
				e1.printStackTrace();
			}
		}

		
		if (ac.equals("kcwarningset")) {
			String num = request.getParameter("num");
			String id = request.getParameter("id");
			dao.commOper("update kcwarnning set num=" + Integer.parseInt(num)
					+ "where id=" + id);
			request.setAttribute("suc", "");
			go("/admin/kcwarningset.jsp", request, response);
		}
		
		if (ac.equals("kcinto")) {
			String pid = request.getParameter("pid");
	
	protected String info;

	
	protected String path;

	
	protected HttpServletRequest request;

	
	protected String parameter = "";

	
	protected PageManager(String path, int pageSize, HttpServletRequest request) {
		
		this.currentPage = 1;
		this.pageNumber = 1;
		this.count = 0;
		this.pageSize = pageSize  0 ? DEFAULTPAGESIZE : pageSize;
		this.request = request;
		this.path = path;

		request.setAttribute("page", this);

		try {
			this.currentPage = Integer.parseInt(request
					.getParameter("currentPage"))  0 ? 1 : Integer
					.parseInt(request.getParameter("currentPage"));

		} catch (Exception e) {

			try {
				this.currentPage = Integer.parseInt((String) request
						.getSession().getAttribute("currentPage"));

			} catch (Exception e1) {
				this.currentPage = 1;

			}
			source=source.substring(0,length)+"...";
		}
		
		return source;
	} 
	
	

	public static String getDateStr(){
		String dateString="";
		try{
		java.text.SimpleDateFormat formatter=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		java.util.Date currentTime_1=new java.util.Date();
		dateString=formatter.format(currentTime_1);
		}catch(Exception e){
		     }
		 return dateString;
		 } 
	
	public static String getAutoNo(){
		String dateString="";
		try{
		java.text.SimpleDateFormat formatter=new java.text.SimpleDateFormat("MMddHHmmss");
		java.util.Date currentTime_1=new java.util.Date();
		dateString=formatter.format(currentTime_1);
		}catch(Exception e){
		     }
		 return dateString;
		 } 
	
	public static void main(String[] g )
	{
	
	
	
		
	}
	

	
	 public static String getUTFStr(String str) {
		 if(str==null){
			 return "";
		 }
		 
		 try {
			str =  new String(str.getBytes("ISO-8859-1"),"utf-8");
		} catch (UnsupportedEncodingException e) {
			
				go("/admin/kcout.jsp", request, response);
			} else {
				dao.commOper("insert into kcrecord (pid,num,type,reason,savetime) values"
						+ "('"
						+ pid
						+ "','"
						+ Integer.parseInt(num)
						+ "','"
						+ type + "','" + reason + "','" + savetime + "')");
				request.setAttribute("suc", "");
				go("/admin/kcout.jsp", request, response);
			}
		}

		
		if (ac.equals("imgadvaddold")) {
			try {
				String img = "";
				String imgtype = "";
				request.setCharacterEncoding("utf-8");
				RequestContext requestContext = new ServletRequestContext(
						request);
				if (FileUpload.isMultipartContent(requestContext)) {
					DiskFileItemFactory factory = new DiskFileItemFactory();
					factory.setRepository(new File(request
							.getRealPath("/upfile/") + "/"));
					ServletFileUpload upload = new ServletFileUpload(factory);
					upload.setSizeMax(100 * 1024 * 1024);
					List items = new ArrayList();
					items = upload.parseRequest(request);

					imgtype = ((FileItem) items.get(1)).getString();
					imgtype = Info.getUTFStr(imgtype);

					FileItem fileItem = (FileItem) items.get(0);
					if (fileItem.getName() != null && fileItem.getSize() != 0) {
						if (fileItem.getName() != null
								&& fileItem.getSize() != 0) {
							File fullFile = new File(fileItem.getName());
							img = Info.generalFileName(fullFile.getName());
							File newFile = new File(
									request.getRealPath("/upfile/") + "/" + img);
							try {
								fileItem.write(newFile);
							} catch (Exception e) {
								e.printStackTrace();
							}
						} else {
						}
					}

基于 javaweb mysql 的 jsp servlet 美食商城管理系统(java jsp bootstrap jquery mysql)
基于 javaweb mysql 的 jsp servlet 美食商城管理系统(java jsp bootstrap jquery mysql)
基于 javaweb mysql 的 jsp servlet 美食商城管理系统(java jsp bootstrap jquery mysql)
基于 javaweb mysql 的 jsp servlet 美食商城管理系统(java jsp bootstrap jquery mysql)
基于 javaweb mysql 的 jsp servlet 美食商城管理系统(java jsp bootstrap jquery mysql)
请添加图片描述

原文地址: 基于 javaweb mysql 的 jsp servlet 美食商城管理系统(java jsp bootstrap jquery mysql)

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