基于javaweb+mysql的ssm在线甜品商城系统(java+ssm+jsp+javascript+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SSM在线甜品商城系统(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版本;
技术栈
- 后端:Spring+SpringMVC+Mybatis 2. 前端:JSP+CSS+JavaScript+jQuery
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,在浏览器中输入 http://localhost:8080/
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;
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<Orders> allOrders = service.getAllOrders();
* @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("<html>");
writer.print("<scriipt>");
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");
//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.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());
List<Goods> 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();
/**
* 修改商品时,获取此商品的全部数据,并返回至修改页面
// 此时只会让内嵌的iframe跳转到登录页,并非整个页面
// resp.sendRedirect("backstage/login.jsp");
PrintWriter writer = resp.getWriter();
writer.print("<html>");
writer.print("<scriipt>");
writer.print("window.open('"+ req.getContextPath()+"/backstage/login.jsp','_top')");
writer.print("</script>");
writer.print("</html>");
} catch (IOException e) {
e.printStackTrace();
/**
* 退出登录
*/
e.printStackTrace();
/**
* 向前端页面返回订单数据列表
*/
public void getOrdersList(HttpServletRequest req,HttpServletResponse resp) {
List<Orders> 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();
//设置响应编码格式
resp.setContentType("text/html;charset=utf-8");
FileUploadUtil upFile = new FileUploadUtil();
ServletContext servletContext = req.getSession().getServletContext();
List<FileItem> items= upFile.getRequsetFileItems(req,servletContext);
//保存所有用户提交的 表单数据 的map
Map<String, String> formData = new HashMap<>();
try {
//遍历
for (FileItem file : items) {
//String type = req.getParameter("type");
Map<String,String> parmas = new HashMap<>();
parmas.put("name", name);
//parmas.put("type", type);
List<Orders> list = service.getOrdersByName(parmas);
try {
if(list != null) {
JSONResult ok = JSONResult.ok(list);
resp.getWriter().println(JsonUtil.javaObjectToJson(ok));
}else {
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
*/
订单管理控制层:
@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;
} catch (IOException e) {
e.printStackTrace();
/**
* @throws IOException
* 根据商品名查询商品
* @param req
* @param resp
* @throws
*/
public void getGoodsListByName(HttpServletRequest req,HttpServletResponse resp) throws IOException {
//设置请求编码格式:
}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 {
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");
//设置请求编码格式:
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"));
e.printStackTrace();
/**
* 向前端页面返回商品数据列表
*/
public void getGoodsList(HttpServletRequest req,HttpServletResponse resp) {
List<Goods> allGoods = service.getAllGoods();
req.setAttribute("goodsList", allGoods);
try {
req.getRequestDispatcher("/backstage/tgls/goodsManage/goods_list.jsp").forward(req, resp);
} catch (ServletException e) {