基于javaweb的在线甜品商城系统(java+ssm+jsp+javascript+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

基于javaweb+mysql的在线甜品商城系统(java+SSM+JSP+JavaScript+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版本;

技术栈

  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. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,在浏览器中输入 http://localhost:8080/

商品管理控制层:

@WebServlet(“/backstage_goodsServlet”)

public class GoodsServlet extends HttpServlet{

GoodsService service = new GoodsService();

@Override

protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

String action = req.getParameter(“action”);

switch(action) {

case “addGoods”:addGoods(req,resp);break;

case “getGoodsList”:getGoodsList(req,resp);break;

case “getGoodsListByName”:getGoodsListByName(req,resp);break;

case “deleteGoods”:deleteGoods(req,resp);break;

case “toGoodsUpdatePage”:toGoodsUpdatePage(req,resp);break;

case “updateGoods”:updateGoods(req,resp);break;

case “upGoodsImage”:upGoodsImage(req,resp);break;

case “fastbuy”:sendOrder(req,resp);break;

/**

  • 提交订单

  • @throws IOException

*/

public void sendOrder(HttpServletRequest req, HttpServletResponse resp) throws IOException {

//设置请求编码格式:

req.setCharacterEncoding(“utf-8”);

//设置响应编码格式

resp.setContentType(“text/html;charset=utf-8”);

SimpleDateFormat df = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);//设置日期格式

Orders order = new Orders();

order.setNumber(order.getRandomString(10));

order.setTime(df.format(new Date()));

order.setName(req.getParameter(“recipients”));

order.setAddress(req.getParameter(“address”));

order.setPhone(req.getParameter(“phone”));

order.setAddress_label(req.getParameter(“addressLabel”));

order.setSex(req.getParameter(“sex”));

order.setUser(“sjb”);

order.setGoods_id(99);

order.setGoods_num(3);

order.setGoods_status(1);

int d = service.addOrder(order);

try {

if(d>0) {

JSONResult ok = JSONResult.ok();

resp.getWriter().println(JsonUtil.javaObjectToJson(ok));

}else {

JSONResult error = JSONResult.errorMsg(“订单提交失败!”);

resp.getWriter().println(JsonUtil.javaObjectToJson(error));

} catch (Exception e) {

e.printStackTrace();

/**

  • 保存商品

  • @throws IOException

*/

public void addGoods(HttpServletRequest req,HttpServletResponse resp) throws IOException {

//设置请求编码格式:

req.setCharacterEncoding(“utf-8”);

//设置响应编码格式

resp.setContentType(“text/html;charset=utf-8”);

FileUploadUtil upFile = new FileUploadUtil();

ServletContext servletContext = req.getSession().getServletContext();

List items= upFile.getRequsetFileItems(req,servletContext);

//保存所有用户提交的 表单数据 的map

Map<String, String> formData = new HashMap<>();

String savePath = “D:\头条视频\\2020-12-16\Gok_ShoppingMallx\WebContent\home\img”;

try {

//遍历

for (FileItem file : items) {

if(!file.isFormField()) {

String fileSuffix = FileUploadUtil.getFileSuffix(file).toUpperCase();

//必须是jpg或png 图片文件才能进行上传操作

if(“JPG”.equals(fileSuffix) || “PNG”.equals(fileSuffix)) {

//生成新图片名

String imgName = FileUploadUtil.getImgNewName(fileSuffix);

FileUploadUtil.saveFile(file, savePath, imgName);

formData.put(“imgUrl”,imgName);

}else {

//非文件数据存入

formData.put(file.getFieldName(), file.getString(“utf-8”));

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

Goods goods = new Goods();

goods.setName(formData.get(“goodsName”));

goods.setNum(Integer.parseInt(formData.get(“num”)));

goods.setPrice(Double.parseDouble(formData.get(“price”)));

goods.setImgurl(formData.get(“imgUrl”));

goods.setType(formData.get(“type”));

goods.setDescriiption(formData.get(“descriiption”));

goods.setColor(formData.get(“color”));

goods.setMemory(formData.get(“memory”));

goods.setCreateDate(new SimpleDateFormat(“yyyy-MM-dd”).format(new Date()));

int d = service.addGoods(goods);

try {

if(d>0) {

JSONResult ok = JSONResult.ok();

resp.getWriter().println(JsonUtil.javaObjectToJson(ok));

}else {

JSONResult errorMsg = JSONResult.errorMsg(“添加失败,请重试”);

resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg));

} catch (Exception e) {

e.printStackTrace();

/**

  • 向前端页面返回商品数据列表

*/

public void getGoodsList(HttpServletRequest req,HttpServletResponse resp) {

List allGoods = service.getAllGoods();

req.setAttribute(“goodsList”, allGoods);

try {

req.getRequestDispatcher(“/backstage/tgls/goodsManage/goods_list.jsp”).forward(req, resp);

} catch (ServletException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

/**

  • @throws IOException

  • 根据商品名查询商品

  • @param req

  • @param resp

  • @throws

*/

public void getGoodsListByName(HttpServletRequest req,HttpServletResponse resp) throws IOException {

//设置请求编码格式:

req.setCharacterEncoding(“utf-8”);

//设置响应编码格式

resp.setContentType(“text/html;charset=utf-8”);

String name = req.getParameter(“goodsName”);

String type = req.getParameter(“type”);

Map<String,String> parmas = new HashMap<>();

parmas.put(“name”, name);

parmas.put(“type”, type);

List list = service.getGoodsByName(parmas);

try {

if(list != null) {

JSONResult ok = JSONResult.ok(list);

resp.getWriter().println(JsonUtil.javaObjectToJson(ok));

}else {

JSONResult errorMsg = JSONResult.errorMsg(“未获取到任何数据,请重试”);

resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg));

} catch (Exception e) {

e.printStackTrace();

/**

  • 修改商品时,获取此商品的全部数据,并返回至修改页面

*/

public void toGoodsUpdatePage(HttpServletRequest req,HttpServletResponse resp) {

int id = Integer.parseInt(req.getParameter(“id”));

Goods goods = service.getGoodsInfoById(id);

req.setAttribute(“goods”, goods);

try {

req.getRequestDispatcher(“/backstage/tgls/goodsManage/goods_update.jsp”).forward(req, resp);

} catch (ServletException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

/**

*修改商品信息时,如果有修改图片,先将图片进行修改

  • @throws IOException

*/

public void upGoodsImage(HttpServletRequest req,HttpServletResponse resp) throws IOException {

//设置请求编码格式:

req.setCharacterEncoding(“utf-8”);

//设置响应编码格式

resp.setContentType(“text/html;charset=utf-8”);

FileUploadUtil upFile = new FileUploadUtil();

ServletContext servletContext = req.getSession().getServletContext();

List items= upFile.getRequsetFileItems(req,servletContext);

String savePath = “D:\头条视频\\2020-12-16\Gok_ShoppingMallx\WebContent\home\img”;

String imgName = null;

try {

//遍历

for (FileItem file : items) {

if(!file.isFormField()) {

String fileSuffix = FileUploadUtil.getFileSuffix(file);

//必须是jpg或png 图片文件才能进行上传操作

if(“jpg”.equals(fileSuffix) || “png”.equals(fileSuffix)) {

//生成新图片名

imgName = FileUploadUtil.getImgNewName(fileSuffix);

FileUploadUtil.saveFile(file, savePath, imgName);

int d = service.updateGoodsImgById(imgName, Integer.parseInt(req.getParameter(“id”)));

if(d>0) {

JSONResult ok = JSONResult.ok(imgName);

resp.getWriter().println(JsonUtil.javaObjectToJson(ok));

}else {

JSONResult errorMsg = JSONResult.errorMsg(“修改失败,请重试”);

resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg));

} catch (Exception e) {

e.printStackTrace();

/**

  • 修改商品

  • @throws IOException

*/

public void updateGoods(HttpServletRequest req,HttpServletResponse resp) throws IOException {

//设置请求编码格式:

req.setCharacterEncoding(“utf-8”);

//设置响应编码格式

resp.setContentType(“text/html;charset=utf-8”);

Goods goods = new Goods();

goods.setId(Integer.parseInt(req.getParameter(“id”)));

goods.setName(req.getParameter(“goodsName”));

goods.setNum(Integer.parseInt(req.getParameter(“num”)));

goods.setPrice(Double.parseDouble(req.getParameter(“price”)));

goods.setType(req.getParameter(“type”));

goods.setColor(req.getParameter(“color”));

goods.setMemory(req.getParameter(“memory”));

goods.setDescriiption(req.getParameter(“descriiption”));

int d = service.updateGoodsById(goods);

try {

if(d>0) {

JSONResult ok = JSONResult.ok();

resp.getWriter().println(JsonUtil.javaObjectToJson(ok));

}else {

JSONResult errorMsg = JSONResult.errorMsg(“修改失败,请重试”);

resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg));

} catch (Exception e) {

e.printStackTrace();

/**

  • 删除商品

  • @throws IOException

*/

public void deleteGoods(HttpServletRequest req,HttpServletResponse resp) throws IOException {

//设置请求编码格式:

req.setCharacterEncoding(“utf-8”);

//设置响应编码格式

resp.setContentType(“text/html;charset=utf-8”);

int id = Integer.parseInt(req.getParameter(“id”));

int d = service.deleteGoodsById(id);

try {

if(d>0) {

JSONResult ok = JSONResult.ok();

resp.getWriter().println(JsonUtil.javaObjectToJson(ok));

}else {

JSONResult errorMsg = JSONResult.errorMsg(“删除失败,请重试”);

resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg));

} catch (Exception e) {

e.printStackTrace();

用户管理控制层:

@WebServlet(“/backstage_userServlet”)

public class UserServlet extends HttpServlet{

UserService service = new UserService();

@Override

protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

String action = req.getParameter(“action”);

switch(action) {

case “login”:login(req, resp);break;

case “modifyPassword”:modifyPassword(req, resp);break;

case “checkOldPassword”:checkOldPassword(req, resp);break;

case “afterModifyPassword”:afterModifyPassword(req, resp);break;

case “logout”:logout(req, resp);break;

/**

  • 用户登录

  • @throws IOException

*/

public void login(HttpServletRequest req, HttpServletResponse resp) throws IOException {

//设置请求编码格式:

req.setCharacterEncoding(“utf-8”);

//设置响应编码格式

resp.setContentType(“text/html;charset=utf-8”);

//获取前端页面传来的用户名

String userName = req.getParameter(“userName”);

//获取前端页面传来的密码

String password = req.getParameter(“password”);

// 1、先验证该用户的角色是否为管理员

String userRole = service.getUserRoleByName(userName);

try {

if(!“admin”.equals(userRole)) {

JSONResult errorMsg = JSONResult.errorMsg(“暂无登录权限”);

resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg));

}else {

//2、获取用户数据 进行用户名和密码验证

User user = service.getUserByNameAndPassword(userName, password);

if(user!=null) {

//将用户数据保存到session 作用域中,方便在后续的操作中使用用户数据

req.getSession().setAttribute(“user”, user);

JSONResult ok = JSONResult.ok();

resp.getWriter().println(JsonUtil.javaObjectToJson(ok));

}else {

// 将错误信息封装在结果集中

JSONResult result = JSONResult.errorMsg(“用户名或密码错误,请重试”);

//以json的形式返回给前端

resp.getWriter().println(JsonUtil.javaObjectToJson(result));

} catch (Exception e) {

e.printStackTrace();

/**

  • 检查旧密码是否正确 ,在修改密码操作时使用

  • @throws IOException

*/

public void checkOldPassword(HttpServletRequest req, HttpServletResponse resp) throws IOException {

//设置请求编码格式:

req.setCharacterEncoding(“utf-8”);

//设置响应编码格式

resp.setContentType(“text/html;charset=utf-8”);

User user =(User) req.getSession().getAttribute(“user”);

String oldPassword = service.getPasswordById(user.getId());

String password = req.getParameter(“password”);

try {

if(!oldPassword.equals(password)) {

JSONResult errorMsg = JSONResult.errorMsg(“原始密码错误,请重新输入”);

resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg));

}else {

JSONResult ok = JSONResult.ok();

resp.getWriter().println(JsonUtil.javaObjectToJson(ok));

} catch (IOException e) {

e.printStackTrace();

/**

  • 修改密码

  • @throws IOException

*/

public void modifyPassword(HttpServletRequest req, HttpServletResponse resp) throws IOException {

//设置请求编码格式:

req.setCharacterEncoding(“utf-8”);

//设置响应编码格式

resp.setContentType(“text/html;charset=utf-8”);

String password = req.getParameter(“newPassword”);

User user =(User) req.getSession().getAttribute(“user”);

int id = user.getId();

int d = service.updatePasswordById(id, password);

try {

if(d>0) {

JSONResult ok = JSONResult.ok();

resp.getWriter().println(JsonUtil.javaObjectToJson(ok));

}else {

JSONResult errorMsg = JSONResult.errorMsg(“修改失败,请重试”);

resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg));

} catch (Exception e) {

e.printStackTrace();

/**

  • 成功修改密码后,清除session中的数据,并且重新跳转到登录页

  • @param req

  • @param resp

*/

public void afterModifyPassword(HttpServletRequest req, HttpServletResponse resp) {

req.getSession().removeAttribute(“user”);

try {

//使用iframe时,要避免这种直接跳转的方式

// 此时只会让内嵌的iframe跳转到登录页,并非整个页面

// resp.sendRedirect(“backstage/login.jsp”);

PrintWriter writer = resp.getWriter();

writer.print(“”);

writer.print(“”);

writer.print(“window.open('”+ req.getContextPath()+“/backstage/login.jsp’,‘_top’)”);

writer.print(“”);

writer.print(“”);

} catch (IOException e) {

e.printStackTrace();

/**

  • 退出登录

*/

public void logout(HttpServletRequest req, HttpServletResponse resp) {

req.getSession().removeAttribute(“user”);

try {

resp.sendRedirect(“backstage/login.jsp”);

} catch (IOException e) {

e.printStackTrace();

订单管理控制层:

@WebServlet(“/backstage_ordersServlet”)

public class OrdersServlet extends HttpServlet{

OrdersService service = new OrdersService();

@Override

protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

String action = req.getParameter(“action”);

System.out.println(action);

switch(action) {

case “getOrdersList”:getOrdersList(req,resp);break;

case “getOrdersListByName”:getOrdersListByName(req,resp);break;

case “deleteOrders”:deleteOrders(req,resp);break;

case “deleteAllOrders”:deleteAllOrders(req,resp);break;

case “toOrdersUpdatePage”:toOrdersUpdatePage(req,resp);break;

case “updateOrders”:updateOrders(req,resp);break;

case “fastbuy”:sendOrder(req,resp);break;

/*

  • 删除全部订单

*/

private void deleteAllOrders(HttpServletRequest req, HttpServletResponse resp) throws IOException {

//设置请求编码格式:

req.setCharacterEncoding(“utf-8”);

//设置响应编码格式

resp.setContentType(“text/html;charset=utf-8”);

// TODO 自动生成的方法存根

int d = service.deleteAllOrders();

try {

if(d>0) {

JSONResult ok = JSONResult.ok();

resp.getWriter().println(JsonUtil.javaObjectToJson(ok));

}else {

JSONResult errorMsg = JSONResult.errorMsg(“删除失败,请重试”);

resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg));

} catch (Exception e) {

e.printStackTrace();

/**

  • 提交订单

  • @throws IOException

*/

public void sendOrder(HttpServletRequest req, HttpServletResponse resp) throws IOException {

//设置请求编码格式:

req.setCharacterEncoding(“utf-8”);

//设置响应编码格式

resp.setContentType(“text/html;charset=utf-8”);

SimpleDateFormat df = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);//设置日期格式

User user =(User) req.getSession().getAttribute(“user”);

Orders order = new Orders();

order.setNumber(order.getRandomString(10));

order.setTime(df.format(new Date()));

order.setName(req.getParameter(“recipients”));

order.setAddress(req.getParameter(“address”));

order.setPhone(req.getParameter(“phone”));

order.setAddress_label(req.getParameter(“addressLabel”));

order.setSex(req.getParameter(“sex”));

order.setUser(user.getUserName());

order.setGoods_id(Integer.parseInt(req.getParameter(“id”)));

order.setGoods_num(Integer.parseInt(req.getParameter(“num”)));

order.setGoods_status(1);

int d = service.addOrder(order);

try {

if(d>0) {

JSONResult ok = JSONResult.ok();

resp.getWriter().println(JsonUtil.javaObjectToJson(ok));

}else {

JSONResult error = JSONResult.errorMsg(“订单提交失败!”);

resp.getWriter().println(JsonUtil.javaObjectToJson(error));

} catch (Exception e) {

e.printStackTrace();

/**

  • 向前端页面返回订单数据列表

*/

public void getOrdersList(HttpServletRequest req,HttpServletResponse resp) {

List allOrders = service.getAllOrders();

req.setAttribute(“ordersList”,allOrders);

try {

req.getRequestDispatcher(“/backstage/tgls/ordersManage/orders_list.jsp”).forward(req, resp);

} catch (ServletException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

/**

  • 根据订单名查询商品(注意!类别没改)

  • @param req

  • @param resp

  • @throws IOException

*/

public void getOrdersListByName(HttpServletRequest req,HttpServletResponse resp) throws IOException {

//设置请求编码格式:

req.setCharacterEncoding(“utf-8”);

//设置响应编码格式

resp.setContentType(“text/html;charset=utf-8”);

String name = req.getParameter(“OrdersUser”);

//String type = req.getParameter(“type”);

Map<String,String> parmas = new HashMap<>();

parmas.put(“name”, name);

//parmas.put(“type”, type);

List list = service.getOrdersByName(parmas);

try {

if(list != null) {

JSONResult ok = JSONResult.ok(list);

resp.getWriter().println(JsonUtil.javaObjectToJson(ok));

}else {

JSONResult errorMsg = JSONResult.errorMsg(“未获取到任何数据,请重试”);

resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg));

} catch (Exception e) {

e.printStackTrace();

/**

  • 修改订单时,获取此订单的全部数据,并返回至修改页面

*/

public void toOrdersUpdatePage(HttpServletRequest req,HttpServletResponse resp) {

int id = Integer.parseInt(req.getParameter(“id”));

Orders orders = service.getOrdersInfoById(id);

req.setAttribute(“orders”, orders);

try {

req.getRequestDispatcher(“/backstage/tgls/ordersManage/orders_update.jsp”).forward(req, resp);

} catch (ServletException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

/**

  • 修改订单

  • @throws IOException

*/

public void updateOrders(HttpServletRequest req,HttpServletResponse resp) throws IOException {

//设置请求编码格式:

req.setCharacterEncoding(“utf-8”);

//设置响应编码格式

resp.setContentType(“text/html;charset=utf-8”);

Orders orders = new Orders();

orders.setId(Integer.parseInt(req.getParameter(“id”)));

orders.setNumber(req.getParameter(“number”));

orders.setUser(req.getParameter(“user”));

orders.setTime(req.getParameter(“time”));

orders.setName(req.getParameter(“name”));

orders.setSex(req.getParameter(“sex”));

orders.setAddress(req.getParameter(“address”));

orders.setPhone(req.getParameter(“phone”));

orders.setAddress_label(req.getParameter(“address_label”));

orders.setGoods_id(Integer.parseInt(req.getParameter(“goods_id”)));

orders.setGoods_num(Integer.parseInt(req.getParameter(“goods_num”)));

orders.setGoods_status(Integer.parseInt(req.getParameter(“goods_status”)));

System.out.println(orders);

int d = service.updateOrdersById(orders);

System.out.println(d);

try {

if(d>0) {

JSONResult ok = JSONResult.ok();

resp.getWriter().println(JsonUtil.javaObjectToJson(ok));

}else {

JSONResult errorMsg = JSONResult.errorMsg(“修改失败,请重试”);

resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg));

} catch (Exception e) {

e.printStackTrace();

/**

  • 删除订单

  • @throws UnsupportedEncodingException

*/

public void deleteOrders(HttpServletRequest req,HttpServletResponse resp) throws UnsupportedEncodingException {

//设置请求编码格式:

req.setCharacterEncoding(“utf-8”);

//设置响应编码格式

resp.setContentType(“text/html;charset=utf-8”);

int id = Integer.parseInt(req.getParameter(“id”));

int d = service.deleteOrdersById(id);

try {

if(d>0) {

JSONResult ok = JSONResult.ok();

resp.getWriter().println(JsonUtil.javaObjectToJson(ok));

}else {

JSONResult errorMsg = JSONResult.errorMsg(“删除失败,请重试”);

resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg));

} catch (Exception e) {

e.printStackTrace();


基于javaweb的在线甜品商城系统(java+ssm+jsp+javascript+mysql)相关推荐

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

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

  2. 基于javaweb的音乐专辑商城系统(java+ssm+jsp+jquery+mysql)

    基于javaweb的音乐专辑商城系统(java+ssm+jsp+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myecl ...

  3. 基于javaweb的茶叶售卖商城系统(java+ssm+jsp+easyui+mysql)

    基于javaweb的茶叶售卖商城系统(java+ssm+jsp+easyui+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myecl ...

  4. 基于javaweb的水果蔬菜商城系统(java+ssm+jsp+mysql)

    基于javaweb的水果蔬菜商城系统(java+ssm+jsp+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myeclipse/st ...

  5. 基于javaweb的网上图书商城系统(java+ssm+jsp+mysql+redis+jwt+shiro+rabbitmq+easyui)

    基于javaweb的网上图书商城系统(java+ssm+jsp+mysql+redis+jwt+shiro+rabbitmq+easyui) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥ ...

  6. 基于javaweb的在线车队货车管理系统(java+ssm+jsp+bootstrap+mysql)

    基于javaweb的在线车队货车管理系统(java+ssm+jsp+bootstrap+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/ ...

  7. 基于javaweb的在线蛋糕商城系统(java+jsp+jdbc+mysql)

    基于javaweb的在线蛋糕商城系统(java+jsp+jdbc+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myeclipse/s ...

  8. 基于javaweb的水果生鲜商城系统(java+springboot+mybatis+vue+mysql)

    基于javaweb的水果生鲜商城系统(java+springboot+mybatis+vue+mysql) 运行环境 Java≥8.MySQL≥5.7.Node.js≥10 开发工具 后端:eclip ...

  9. 基于javaweb的个人pc电脑商城系统(java+ssm+jsp+jquery+mysql)

    基于javaweb的个人pc电脑商城系统(java+ssm+jsp+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/mye ...

最新文章

  1. HDOJ2203 亲和数
  2. 数据包分析中Drop和iDrop的区别
  3. c++——结构与指针 类与指针
  4. 【Kotlin】Kotlin 自定义组件 ( 自定义 View | 自定义 SurfaceView )
  5. 教你怎么屏蔽掉在移动端的宽带运营商的流量劫持,屏蔽无耻的广告
  6. 序列化与反序列化的简单认识
  7. 12c oracle 激活_Windows运维之Windows server 2016 安装及ORACLE 12C 安装
  8. 人工智能的发展历史_【走近AI】浅谈人工智能的层次结构。
  9. win10下Redis安装、启动教程
  10. RQNOJ 140 分配时间:dp
  11. github leaf项目怎么用_这份GitHub上价值49K的SpringBoot2+Thymeleaf企业应用实战,真香...
  12. 【Docker】文件拷贝
  13. 你想要的宏基因组-微生物组知识全在这(2022.5)
  14. iOS 加载本地Gif图片
  15. BeyondCompare3提示许可密钥过期完美解决方法
  16. html字数统计,html页面字数统计
  17. QQ企业邮箱和QQ邮箱之间的区别
  18. excel打不开_卸载WPS以后为什么无法打开一个新建的Excel工作簿了
  19. (1)简单易学—— 人脸检测 Tensorflow_MTCNN模型训练详细步骤(纯干货,适用于windows和ubuntu系统)
  20. 使用邮件客户端收到的gmail邮件不正确

热门文章

  1. 什么是互联网+ 与 什么是 +互联网
  2. Poj2104 K-th Number
  3. 如何通过素材平移窗口设置关键帧动画?
  4. embARC 机器学习库的使用
  5. 拼多多放心推系统必须知道的规则!千万别错过
  6. [stl]芬兰木棋 2021RoboCom初赛B
  7. JQuery中的九大选择器及其应用(中)
  8. python列表的长度_Python 列表/数组(list)长度不足自动补零(补齐元素)
  9. 中国信通院“可信隐私计算”产品测评体系升级上线
  10. 洛谷P1096 Hanoi 双塔问题(数论,高精度)