基于javaweb+mysql的jsp+servlet网上商城系统(java+jsp+servlert+mysql+ajax)

基于javaweb+mysql的jsp+servlet网上商城系统(java+jsp+servlert+mysql+ajax)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

基于javaweb+mysql的JSP+Servlet网上商城系统(java+jsp+servlert+mysql+ajax)

一、项目简述(+需求文档+PPT)

功能: 主页显示热销商品;所有商品展示,可进行商品搜索;点 击商品进入商品详情页,显示库存,具有立即购买功能,可增减购买商品数量亦可手动输入(同时验证 库存),热销商品展示。立即购买进入确认订单页面,可选 择已经添加的地址,亦可新增地址。(同时验证库存),可 选择购买哪些商品,可删除不需要的商品。点击结算进入 确认订单页面,确认后提交订单,订单重复提交给予响 应,库存不足或商品下架给予响应。后台管理:(修改密码 等),商品管理(商品批量添加、上下架、库存维护等), 订单管理。

二、项目运行

环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe ( IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)

项目技术: JSP + C3P0+ Servlert + html+ css + JavaScript + JQuery + Ajax + Fileupload等等。

		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.setDescription(req.getParameter("description"));
				
		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();
		}	
	}
	
	
	
	/**
	 *  修改商品
	 * @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.setDescription(req.getParameter("description"));
				
		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");
        // 定义x坐标
        int x = 10;
        for (int i = 0; i < word.length(); i++) {
            // 随机颜色
            graphics2d.setColor(new Color(20 + random.nextInt(110), 20 + random
                    .nextInt(110), 20 + random.nextInt(110)));
            // 旋转 -30 --- 30度
            int jiaodu = random.nextInt(60) - 30;
            // 换算弧度
            double theta = jiaodu * Math.PI / 180;

            // 获得字母数字
            char c = word.charAt(i);

            // 将c 输出到图片
            graphics2d.rotate(theta, x, 20);
            graphics2d.drawString(String.valueOf(c), x, 20);
            graphics2d.rotate(-theta, x, 20);
            x += 30;
        }

        // 将验证码内容保存session
        request.getSession().setAttribute("checkcode_session", word.toUpperCase());

        // 步骤五 绘制干扰线
        graphics.setColor(getRandColor(160, 200));
        int x1;
        int x2;
        int y1;
        int y2;
        for (int i = 0; i < 30; i++) {
            x1 = random.nextInt(width);
            x2 = random.nextInt(12);
            y1 = random.nextInt(height);
            y2 = random.nextInt(12);
            graphics.drawLine(x1, y1, x1 + x2, x2 + y2);
        }

        // 将上面图片输出到浏览器 ImageIO
        graphics.dispose();// 释放资源
        ImageIO.write(bufferedImage, "jpg", response.getOutputStream());
	 * @return      			保存成功返回true,否则返回false
	 */
	public static boolean saveFile(FileItem fileItem,String savePath,String fileName) {        
        File file = new File(savePath);
        if(!file.exists()) {
        	file.mkdirs();
        }
        File uploadFile	= new File(savePath+File.separator+fileName);
        try{
        	fileItem.write(uploadFile);
            return true;
        }catch(Exception e){
        	e.printStackTrace();
        }
        return false;
    }
	
	/**
	 *这个函数的功能是获取当前时间点与1970年的间隔秒数
	 */
    public static int getSecondTimestamp(Date date){
        if (null == date) {
            return 0;
        }
        String timestamp = String.valueOf(date.getTime());
        int length = timestamp.length();
        if (length > 3) {
            return Integer.valueOf(timestamp.substring(0,length-3));
        } else {
            return 0;
        }
    }
    
    /**
     * 这个函数的功能是得到新的图片名称
     * @param fileSuffix  图片的后缀
     * @return
     */
     public static String getImgNewName(String fileSuffix) {
         Date date=new Date();
         int second=getSecondTimestamp(date);
		} 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 {
			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) {
	 */
    public static int getSecondTimestamp(Date date){
        if (null == date) {
            return 0;
        }
        String timestamp = String.valueOf(date.getTime());
        int length = timestamp.length();
        if (length > 3) {
            return Integer.valueOf(timestamp.substring(0,length-3));
        } else {
            return 0;
        }
    }
    
    /**
     * 这个函数的功能是得到新的图片名称
     * @param fileSuffix  图片的后缀
     * @return
     */
     public static String getImgNewName(String fileSuffix) {
         Date date=new Date();
         int second=getSecondTimestamp(date);
         String fileName=String.valueOf(second)+"."+fileSuffix;
         return fileName;
     }
     
     
	   /**
	    * 获取文件后缀名, 只要jpg或者png格式
	    * @param item
	    * @return  	如果是jpg,则返回jpg
	    * 		        如果png,则返回png
	    * 		        否则返回null
	    */
	 public static String getFileSuffix(FileItem item) {
	     String fileFullName=item.getName();
	     File fileInfo=new File(fileFullName);
	     String suffix = fileInfo.getName().substring(fileInfo.getName().lastIndexOf(".") + 1);
	     if(suffix.equals("jpg") ||suffix.equals("png") ) {
	         return suffix;
	     }
	     return null;        

@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 {
     * 取其某一范围的color
     *
     * @param fc
     *            int 范围参数1
     * @param bc
     *            int 范围参数2
     * @return Color
     */
    private Color getRandColor(int fc, int bc) {
        // 取其随机颜色
        Random random = new Random();
        if (fc > 255) {
            fc = 255;
        }
        if (bc > 255) {
            bc = 255;
        }
        int r = fc + random.nextInt(bc - fc);
        int g = fc + random.nextInt(bc - fc);
        int b = fc + random.nextInt(bc - fc);
        return new Color(r, g, b);
    }
}
package cn.gok.util;

/**
 * 解析文件的工具类,用于文件上传操作
 */
public class FileUploadUtil {
	/**
	 * 这个函数的功能是获取前端的数据集合,将文件打包成File以便后续操作
	 * @param request
	 * @param servletContext
	 * @return
	 */
		} 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("<html>");
			writer.print("<script>");
			writer.print("window.open('"+ req.getContextPath()+"/backstage/login.jsp','_top')");
		} 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<Orders> 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();
		}
	}
	
	
	/**

	/**
	 * 保存商品
	 * @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<FileItem> items= upFile.getRequsetFileItems(req,servletContext);
		
		//保存所有用户提交的 表单数据 的map
		Map<String, String>  formData = new HashMap<>();
		
		//String savePath = new File(getServletContext().getRealPath("/")).getParentFile().getParentFile().getPath()+"/imgs";
		String savePath = new File(getServletContext().getRealPath("/")).getPath()+"/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"));	
	 * @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<FileItem> items= upFile.getRequsetFileItems(req,servletContext);
		
		//保存所有用户提交的 表单数据 的map
		Map<String, String>  formData = new HashMap<>();
		
	 }
	 
	 
	 
}
package cn.gok.util;

/**
 * 解决中文乱码问题的过滤器
 */
public class EncodingFilter implements Filter {
    public EncodingFilter() {  }

    public void destroy() {}

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        // 处理请求乱码
        HttpServletRequest httpServletRequest = (HttpServletRequest) request;
        HttpServletRequest myRequest = new MyRequest(httpServletRequest);

        // 处理响应乱码
        response.setContentType("text/html;charset=utf-8");

        chain.doFilter(myRequest, response);
    }

    public void init(FilterConfig fConfig) throws ServletException {
    }

}
//自定义request对象
class MyRequest extends HttpServletRequestWrapper {
			login(req, resp);
			break;
		case "checkUserNameRepeat":
			checkUserNameRepeat(req, resp);
			break;
		case "register":
			register(req, resp);
			break;
		case "logout":
			logout(req, resp);
			break;
		case "checkOldPassword":
			checkOldPassword(req, resp);
			break;
		case "modifyPassword":
			modifyPassword(req, resp);
			break;
		}
	}

	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");
		String captcha = req.getParameter("captcha");
		if (captcha != null) {
			captcha = captcha.toUpperCase();
		}

		// 先进行验证码验证
		String checkcode = (String) req.getSession().getAttribute("checkcode_session");

		try {
			// 将用户输入的验证码和 系统验证对比
			if (checkcode.equals(captcha)) {
				User user = service.getUserByNameAndPassword(userName, password);
				if (user != null) {
					HttpSession session = req.getSession();
					session.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));
		goods.setType(req.getParameter("type"));
		goods.setColor(req.getParameter("color"));
		goods.setMemory(req.getParameter("memory"));
		goods.setDescription(req.getParameter("description"));
				
		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();
		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) {
		resp.setContentType("text/html;charset=utf-8");
		User user = (User) req.getSession().getAttribute("user");		
		String oldPassword = service.getPasswordById(user.getId());
		System.out.println("旧密码:"+oldPassword);
		String password = req.getParameter("password");
		System.out.println("旧密码验证:"+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");
		System.out.println("新密码:"+password);
		User user = (User) req.getSession().getAttribute("user");
		int id = user.getId();
		System.out.println("旧密码id"+id);
		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();
		}
	}

}

@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) {
		String savePath = new File(getServletContext().getRealPath("/")).getPath()+"/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.setDescription(formData.get("description"));
		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) {
			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<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();
		}	
	}
	
	
	/**

@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 {
	 */
	public void findAllGoods(HttpServletRequest req, HttpServletResponse resp) {
		Map<String, List<Goods>> allGoods = service.getAllGoods();
		
		try {
			req.setAttribute("allGoods", allGoods);
			req.getRequestDispatcher("/main.jsp").forward(req, resp);
			return;
		} catch (ServletException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 *根据类型获得商品列表 
	 * @param req
	 * @param resp
	 */
	public void findGoodsByType(HttpServletRequest req, HttpServletResponse resp) {
		String type = req.getParameter("type");
		String currentPage = req.getParameter("currentPage");
		
		PageBean pageBean = null;
		
		// 如果当前第几页currentPage 值为null,说明第一次跳转到此页面或者是要跳转到首页,则设定该值currentPage默认为1
		if(currentPage == null) {
			pageBean = service.getGoodsByType(type, 4, 1);
		}else {
			
			pageBean = service.getGoodsByType(type, 4, Integer.parseInt(currentPage));
		}
		
		try {
			req.setAttribute("pageBean", pageBean);
			req.setAttribute("type", type);
			
			req.getRequestDispatcher("/product.jsp").forward(req, resp);

		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	
	/**
	 * 获取商品的详细信息
	 * @param req
	 * @param resp
	 */
	public void findGoodsById(HttpServletRequest req, HttpServletResponse resp) {
		int id =Integer.parseInt(req.getParameter("id"));
    }
	
	/**
	 *这个函数的功能是获取当前时间点与1970年的间隔秒数
	 */
    public static int getSecondTimestamp(Date date){
        if (null == date) {
            return 0;
        }
        String timestamp = String.valueOf(date.getTime());
        int length = timestamp.length();
        if (length > 3) {
            return Integer.valueOf(timestamp.substring(0,length-3));
        } else {
            return 0;
        }
    }
    
    /**
     * 这个函数的功能是得到新的图片名称
     * @param fileSuffix  图片的后缀
     * @return
     */
     public static String getImgNewName(String fileSuffix) {
         Date date=new Date();
         int second=getSecondTimestamp(date);
         String fileName=String.valueOf(second)+"."+fileSuffix;
         return fileName;
     }
     
     
	   /**
	    * 获取文件后缀名, 只要jpg或者png格式
	    * @param item
	    * @return  	如果是jpg,则返回jpg
	    * 		        如果png,则返回png
	    * 		        否则返回null
	    */
	 public static String getFileSuffix(FileItem item) {
	     String fileFullName=item.getName();
	     File fileInfo=new File(fileFullName);
	     String suffix = fileInfo.getName().substring(fileInfo.getName().lastIndexOf(".") + 1);
            ServletFileUpload upload=new ServletFileUpload(factory);
            try {
                return upload.parseRequest(request);
            }catch (FileUploadException e) {
                e.printStackTrace();
                return null;
            }
		}
		return null;
	}
	
	/**
	 * 保存文件
	 * @param fileItem    		要被保存的文件
	 * @param savePath      	指定的保存目录路径
	 * @param fileName      	要保存的文件名
	 * @return      			保存成功返回true,否则返回false
	 */
	public static boolean saveFile(FileItem fileItem,String savePath,String fileName) {        
        File file = new File(savePath);
        if(!file.exists()) {
        	file.mkdirs();
        }
        File uploadFile	= new File(savePath+File.separator+fileName);
        try{
        	fileItem.write(uploadFile);
            return true;
        }catch(Exception e){
        	e.printStackTrace();
        }
        return false;
    }
	
	/**
	 *这个函数的功能是获取当前时间点与1970年的间隔秒数
	 */
    public static int getSecondTimestamp(Date date){
        if (null == date) {
            return 0;
        }
        String timestamp = String.valueOf(date.getTime());
        int length = timestamp.length();
        if (length > 3) {
            return Integer.valueOf(timestamp.substring(0,length-3));
        } else {
            return 0;
			}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();
		}
	}
}
package cn.gok.backstageManagement.web;

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值