基于javaweb+mysql的jsp+servlet火车票预订系统(java+jdbc+jsp+servlet+html+mysql)

基于javaweb+mysql的jsp+servlet火车票预订系统(java+jdbc+jsp+servlet+html+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

基于javaweb+mysql的JSP+Servlet火车票预订系统(java+jdbc+jsp+servlet+html+mysql)

一、项目运行 环境配置:

Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)

项目技术:

JSP + Servlert + html+ css + JavaScript + JQuery + Ajax 等等;

		}
	

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}
package com.meession.tm.service.ticket;

/**
 * Servlet implementation class CreateTicketServlet
 */
public class CreateTicketServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public CreateTicketServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
		try {
			user = userDao.findById(username);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		{
			UserDAO userDao1 = DAOFactory.getIUserDAOInstance();
			user.setPassword(npassword);
			try {
				userDao1.doUpdate(user);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			System.out.println("密码修改成功"+user.getPassword());
			request.getRequestDispatcher("ChangePassSuccess.jsp").forward(request, response);
		}
		else
		{
			request.getRequestDispatcher("ChangePasswordError.jsp").forward(request, response);
			System.out.println("原始密码错误");
		}
		}
	
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}
package com.meession.tm.service.ticket;

	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//response.getWriter().append("Served at: ").append(request.getContextPath());
		HttpSession session = request.getSession(); 
		String username = (String) session.getAttribute("user");
		User user = (User) session.getAttribute("User");
		if(username == null )
			System.out.println("请先登录");
		else{
			String ticketId = request.getParameter("ticketId");
			Long ticketid = Long.parseLong(ticketId);
			String orderId = request.getParameter("orderId");
			Long orderid = Long.parseLong(orderId);
			
			String price = request.getParameter("price");
			Integer Price = Integer.parseInt(price);
			System.out.println(ticketid+ "   " +  orderid+"   "+price);
			TicketDAO ticketDao = DAOFactory.getITicketDAOInstance();
			try {
				if(ticketDao.doDeleteTicket(ticketid))
				{
					int balance = user.getBalance();
					int nbalance = balance + Price;
					user.setBalance(nbalance);
					UserDAO UserDao = DAOFactory.getIUserDAOInstance();
					if(UserDao.doUpdate(user))
					{
						System.out.println("余额返回");
						OrderDAO OrderDao = DAOFactory.getIOrderDAOInstance();
						Order order = new Order();
						order = OrderDao.findByOrderId(orderid);
						System.out.println(order);
						java.sql.Timestamp lastUpdateDate= new java.sql.Timestamp(System.currentTimeMillis());
						order.setLastUpdateDate(lastUpdateDate);
						order.setStatus("已取消");
						OrderDAO OrderDao1 = DAOFactory.getIOrderDAOInstance();
						if(OrderDao1.doUpdateOrder(order))
						{
							System.out.println("更新订单成功");
				            request.getRequestDispatcher("QueryTicketServlet").forward(request, response);
						}
						else
							System.out.println("更新订单失败");
					}
						
					else
						System.out.println("更新余额失败");
					
					
				}
				
				 session.removeAttribute("seatType");
				 request.getRequestDispatcher("BuySuccess.jsp").forward(request, response);
			}
			else if(seatType.equals("硬座")&&user.getBalance()>=route.gethPrice())
			{
				OrderDAO orderDao = DAOFactory.getIOrderDAOInstance();
				
				Order order = new Order();
				 try {
					order = orderDao.findByOrderId(orderId);
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				java.sql.Timestamp lastUpdateDate = new java.sql.Timestamp(System.currentTimeMillis());
				java.sql.Timestamp payDate = new java.sql.Timestamp(System.currentTimeMillis());
				 order.setStatus("已付款");
				 order.setPayTime(payDate);
				 order.setLastUpdateDate(lastUpdateDate);
				 order.setPrice(route.gethPrice());
				 int balance =user.getBalance() -route.gethPrice();
				 user.setBalance(balance);
				 UserDAO userDao1 = DAOFactory.getIUserDAOInstance();
				 try {
					userDao1.doUpdate(user);
				} catch (Exception e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
				 OrderDAO orderDao1 = DAOFactory.getIOrderDAOInstance();
				 try {
					orderDao1.doUpdateOrder(order);
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			
				 session.removeAttribute("route");
				 session.removeAttribute("seatType");
				 request.getRequestDispatcher("BuySuccess.jsp").forward(request, response);
			}
			else if(seatType.equals("无座")&&user.getBalance()>=route.getnPrice())
			{
				OrderDAO orderDao = DAOFactory.getIOrderDAOInstance();
				
				Order order = new Order();
				 try {
					order = orderDao.findByOrderId(orderId);
				} catch (Exception e) {
				response.sendRedirect("adUser.jsp");
			}
			else
			{
				System.out.println("注册失败");
			}
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		
		}

	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}
package com.meession.um.service;

/**
 * Servlet implementation class LoginServlet
 */
public class RegisterServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public RegisterServlet() {
        super();

}
package com.meession.tm.service.order;

/**
 * Servlet implementation class CreateOrderServlet
 */
public class CreateOrderServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public CreateOrderServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
//		response.getWriter().append("Served at: ").append(request.getContextPath());
		HttpSession session = request.getSession(); 
		String username = (String) session.getAttribute("user");
            		}
            	
            
            }
            else
            	{request.setAttribute("message", "失败");
            request.getRequestDispatcher("loginError.jsp").forward(request, response);
            	}
		}
	}

		// TODO Auto-generated method stub
		//	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
			}

}
package com.meession.um.service;

/**
 * Servlet implementation class ChangePasswordServlet
		//response.getWriter().append("Served at: ").append(request.getContextPath());
		HttpSession session = request.getSession(); 
		User user = (User)session.getAttribute("User");
		Long orderId = (Long)session.getAttribute("orderId"); //可能获取空的ID
		System.out.println(orderId);
//		Long routeId = (Long)session.getAttribute("routeId");  //获取车次ID
//		String routeName = (String)session.getAttribute("routeName");
//		String trainType = (String)session.getAttribute("trainType");
		Route route = (Route) session.getAttribute("route");
		String seatType = (String)session.getAttribute("seatType");
		//Integer price = (Integer)session.getAttribute("price");
		//Date departureTime =  (Date)session.getAttribute("departureTime");
		
		//TicketDAO ticketDao = DAOFactory.getITicketDAOInstance();//
		System.out.println("      "+route.getDepartureTime());
		System.out.println(route);
		Ticket ticket = new Ticket();
		ticket.setName(user.getName());
		ticket.setRoute(route.getName());
		ticket.setRouteType(route.getType());
		ticket.setDepartureTime((Timestamp) route.getDepartureTime());
		ticket.setOrderId(orderId);
//		TicketDAO ticketDao = DAOFactory.getITicketDAOInstance();
//		try {
//			if(ticketDao.doCreateTicket(ticket))
//				System.out.println("购票成功");
//			else
//				System.out.println("购票失败");
//		} catch (Exception e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
		String from = route.getFromStation();
		String to = route.getToStation();
		ticket.setFrom(from);
		ticket.setTo(to);
		ticket.setRouteId(route.getId());
//		RouteDAO RouteDao = DAOFactory.getIRouteDAOInstance();
//		Route route = null;
//		try {
//			route = RouteDao.findOnlyRoute(routeId);
//		} catch (Exception e1) {
//			// TODO Auto-generated catch block
//			e1.printStackTrace();
//		}
		if(seatType.equals("商务座")&&route.getBusinessSeatCount()>0)
		{
			ticket.setSeatType(seatType);
			Integer bS = route.getBusinessSeatCount();
			Integer price = route.getbPrice();
			String seatnum = bS.toString()+"号";
			ticket.setSeatNum(seatnum);
			ticket.setPrice(price);
			RouteDAO RouteDao1 = DAOFactory.getIRouteDAOInstance();
		UserDAO userDao = DAOFactory.getIUserDAOInstance();
		
		User user = new User();
		try {
			user = userDao.findById(username);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
			System.out.println(user);
			user.setPhoneNumber(phoneNumber);
			user.setMail(mail);
			user.setName(name);
			user.setIdCard(idCard);
			user.setIdType(idType);
			user.setBirthday(Birthday);
			user.setBalance(Balance);
			System.out.println(user);
			try {
				UserDAO userDao1 = DAOFactory.getIUserDAOInstance();
				if(userDao1.doUpdate(user))
				{
				System.out.println("修改成功");
				request.getRequestDispatcher("adUser.jsp").forward(request, response);
				UserDAO userDao2 = DAOFactory.getIUserDAOInstance();
				
				User user1 = new User();
				
					user1 = userDao2.findById(username);
					System.out.println(user1);
					session.setAttribute("User", user1);
				}
				else 
					System.out.println("修改失败");
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

/**
 * Servlet implementation class ADQueryTicketServlet
 */
public class ADQueryTicketServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ADQueryTicketServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
		String routeType = request.getParameter("routeType");
		String departureTime = request.getParameter("departureTime");
		System.out.println(departureTime+ " " + routeType );

			
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd" ); 
			java.util.Date timeDate = null; 
			try { 
			timeDate = sdf.parse(departureTime); 
			} catch (ParseException e) { 
			e.printStackTrace(); 
			}
			java.sql.Date currentDate = new java.sql.Date(timeDate.getTime());
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
			System.out.println(user);
			user.setPhoneNumber(phoneNumber);
			user.setMail(mail);
			user.setName(name);
			user.setIdCard(idCard);
			user.setIdType(idType);
			user.setBirthday(Birthday);
			System.out.println(user);
			try {
				UserDAO userDao1 = DAOFactory.getIUserDAOInstance();
				if(userDao1.doUpdate(user))
				{
				System.out.println("修改成功");
				request.getRequestDispatcher("ChangeInfoSuccess.jsp").forward(request, response);
				UserDAO userDao2 = DAOFactory.getIUserDAOInstance();
				
				User user1 = new User();
				
					user1 = userDao2.findById(username);
					System.out.println(user1);
					session.setAttribute("User", user1);
				}
				else 
					System.out.println("修改失败");
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}
package com.meession.am.service.route;

/**
 * Servlet implementation class ChangePasswordServlet
 */
public class UpdateProfileServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public UpdateProfileServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		
		String phoneNumber = request.getParameter("phoneNumber");
		String mail = request.getParameter("mail");
		String name = request.getParameter("name");
		String idCard = request.getParameter("idCard");
		System.out.println(idCard); 
		String idType = request.getParameter("idType");
		String birthday = request.getParameter("birthday");
		SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd" ); 
		java.util.Date timeDate = null; 
		try { 
		timeDate = sdf.parse(birthday); 
		} catch (ParseException e) { 
		String spPrice = request.getParameter("spPrice");
		String softSeatCount = request.getParameter("softSeatCount");
		String sfPrice = request.getParameter("sfPrice");
		String hardSeatCount = request.getParameter("hardSeatCount");
		String hPrice = request.getParameter("hPrice");
		String noSeatCount = request.getParameter("noSeatCount");
		String nPrice = request.getParameter("nPrice");
		String remark = request.getParameter("remark");
		//String fromStationId = request.getParameter("fromStationId");
		//String toStationId = request.getParameter("toStationId" );
		Integer bS = Integer.parseInt(businessSeatCount);
		Integer spS = Integer.parseInt(specialSeatCount);
		Integer sfS = Integer.parseInt(softSeatCount);
		Integer hS = Integer.parseInt(hardSeatCount);
		Integer nS = Integer.parseInt(noSeatCount);
		Integer bP = Integer.parseInt(bPrice);
		Integer spP = Integer.parseInt(spPrice);
		Integer sfP = Integer.parseInt(sfPrice);
		Integer hP = Integer.parseInt(hPrice);
		Integer nP = Integer.parseInt(nPrice);
		//Long fSId = Long.parseLong(fromStationId);
		//Long tSId = Long.parseLong(toStationId);
		
		Route route = new Route();
		
		RouteDAO routeDao = DAOFactory.getIRouteDAOInstance();
		
		route.setName(routeName);
		route.setType(routeType);
		route.setFromStation(fromStation);
		route.setToStation(toStation);
		route.setDepartureTime(Timestamp.valueOf(departureTime));
		route.setArrivalTime(Timestamp.valueOf(arrivalTime));
		route.setBusinessSeatCount(bS);
		route.setbPirce(bP);
		route.setSpecialSeatCount(spS);
		route.setSpPrice(spP);
		route.setSoftSeatCount(sfS);
		route.setSfPrice(sfP);
		route.setHardSeatCount(hS);
		route.sethPrice(hP);
		route.setNoSeatCount(nS);
		route.setnPrice(nP);
		route.setRemark(remark);
		System.out.println("route   "+ route.getDepartureTime());
		//route.setFromStationId(fSId);
		//route.setToStationId(tSId);
		try {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			
				 session.removeAttribute("route");
				 session.removeAttribute("seatType");
				 request.getRequestDispatcher("BuySuccess.jsp").forward(request, response);
			}
			else if(seatType.equals("无座")&&user.getBalance()>=route.getnPrice())
			{
				OrderDAO orderDao = DAOFactory.getIOrderDAOInstance();
				
				Order order = new Order();
				 try {
					order = orderDao.findByOrderId(orderId);
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				java.sql.Timestamp lastUpdateDate = new java.sql.Timestamp(System.currentTimeMillis());
				java.sql.Timestamp payDate = new java.sql.Timestamp(System.currentTimeMillis());
				 order.setStatus("已付款");
				 order.setPayTime(payDate);
				 order.setLastUpdateDate(lastUpdateDate);
				 order.setPrice(route.getnPrice());
				 int balance =user.getBalance() -route.getnPrice();
				 user.setBalance(balance);
				 UserDAO userDao1 = DAOFactory.getIUserDAOInstance();
				 try {
					userDao1.doUpdate(user);
				} catch (Exception e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
				 OrderDAO orderDao1 = DAOFactory.getIOrderDAOInstance();
				 try {
					orderDao1.doUpdateOrder(order);
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				 
				
				 session.removeAttribute("route");
				 session.removeAttribute("seatType");
				 request.getRequestDispatcher("BuySuccess.jsp").forward(request, response);
			}
			else
		
		//String aa= request.getParameter("Date"); 
		java.util.Date timeDate = null; 
		try { 
		timeDate = sdf.parse(departureTime); 
		} catch (ParseException e) { 
		e.printStackTrace(); 
		}
		java.sql.Date currentDate = new java.sql.Date(timeDate.getTime());
		
		List<Route> list = null ;//new ArrayList<Route>();
		
		RouteDAO routeDao = DAOFactory.getIRouteDAOInstance();
		try {
			list = routeDao.findRoute(fromStation,toStation,currentDate);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			
		}
		System.out.println(list.size());
		for(int i = 0 ;i < list.size();i++)
			System.out.println(list.get(i));
		request.setAttribute("list", list);
		 request.getRequestDispatcher("adRoute.jsp").forward(request, response);
	}
	

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	response.setContentType("text/html;charset=utf-8");
//		//PrintWriter out = response.getWriter();
//		this.doGet(request, response);
	}

}
package com.meession.am.service.route;
				System.out.println("余额不足");
				request.getRequestDispatcher("BuyError.jsp").forward(request, response);
				
			}
			
			}
		}
	

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}
package com.meession.tm.service.ticket;

/**
				e.printStackTrace();
			}
			TicketDAO ticketDao = DAOFactory.getITicketDAOInstance();
			try {
				ticketDao.doCreateTicket(ticket);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			response.sendRedirect("PayOrderServlet");
		}
		else if(seatType.equals("无座")&&route.getNoSeatCount()>0)
		{
			ticket.setSeatType(seatType);
			Integer bS = route.getHardSeatCount();
			Integer price = route.getnPrice();
			String seatnum = bS.toString()+"号";
			ticket.setSeatNum(seatnum);
			ticket.setPrice(price);
			RouteDAO RouteDao1 = DAOFactory.getIRouteDAOInstance();
			Integer bS1 = bS - 1;
			route.setNoSeatCount(bS1);
			try {
				RouteDao1.doUpdateRoute(route);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			TicketDAO ticketDao = DAOFactory.getITicketDAOInstance();
			try {
				ticketDao.doCreateTicket(ticket);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			response.sendRedirect("PayOrderServlet");
		}
		else
		{
			System.out.println("购票失败");
		}
		
//		SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd" );
//		java.util.Date timeDate = null; 
//		try { 
//		timeDate = sdf.parse(aa); 
//		} catch (ParseException e) { 
//		e.printStackTrace(); 
//		}
//		java.sql.Date departureTime = new java.sql.Date(timeDate.getTime());
		
	}

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
javaweb是一种以Java为基础的web开发技术,它包括了servletjsp等相关技术。servletJavaEE规范中的一种组件,它主要用于处理用户发送的HTTP请求和返回HTTP响应。servlet可以接收前端页面传来的数据,然后对数据进行处理并返回给前端页面。mysql是一种关系型数据库管理系统,它能够存储大量的数据并提供有效的数据管理和查询功能。在javaweb开发中,我们可以通过servlet来连接mysql数据库,从而实现数据的持久化存储和操作。 jsp是一种基于Java的动态网页开发技术,它可以将Java代码嵌入到HTML页面中,从而实现动态页面的生成和展示。jsp可以使用Java代码来获取数据库中的数据并将其显示在前端页面上,实现了前后端的数据交互。 service是一种用于实现业务逻辑的组件或类,它负责处理具体的业务功能。在javaweb开发中,我们可以将业务逻辑封装在service中,然后在servlet中调用相应的service方法,实现对数据的处理和操作。 考试中无框架要求表示不可以使用现成的框架或库来完成开发任务,需要手动编写相关代码。在考试中,可以考察学生对javaweb技术的理解和应用能力,要求学生能够熟练地使用servletjsp等相关技术,并能够编写出符合需求的代码。此外,对于数据库操作,学生还需要了解mysql的基本操作和相关的jdbc编程技巧。 总而言之,javaweb servlet mysql jsp service的考试是考察学生对javaweb开发技术的掌握程度和应用能力的一种考试形式,学生需要熟练地使用这些技术,并能够灵活运用到实际的开发场景中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值