JavaWeb一个简单的酒店项目【前台管理和用户界面和后台管理】以及微信对接

本文作者分享了一个未完成的JavaWeb酒店管理系统项目,包括前端用户界面、后台管理及微信对接功能。项目存在多个bug和未实现的部分,作者提醒注意个人隐私和不得用于商业。涉及内容包括:微信授权登录、图片存储配置、事务管理问题、服务器穿透和域名设置等。提供部分关键代码和项目下载链接,强调仅供学习,不保证能直接运行。
摘要由CSDN通过智能技术生成

 

这两月我用了这么久的时间写的项目,无偿分享给大家。首先,先申明这里面代码非常多bug,还有很多功能没有完成,紧靠一个学生实在太难了。那么我先讲讲项目的bug,以及未完成的功能,避免大家找到又说坏话。还有项目有部分个人隐私,大家看到就当没看到吧,反正我的信息又不值几个钱。哈哈~~~

一、如果出现断网,后台增加房间或修改房间信息,可能会出现致命bug,事务未回滚,这个是我自己写出来的bug,可以修改。将所有的sql封装在一个方法里,不要写在其他DAO层。这个可解决,懒得改了。

二、登录按钮这个指向的是个人域名,有需要的朋友下次再说。

三、这个用户页面是可以通过微信打开,里面有微信开发。不过登录好像有如果你在微信授权登录后,且不选择绑定邮箱登录,很可能会出现bug,想要进行操作,一直要你登录。

 

  • 封面设置点击后会出现心形符号,就是选中了封面。如果没有选中图片,默认第一张为封面。
  • 邮箱可能发送接收不到,有可能被视为垃圾邮箱或被退回邮件。
  • 用户页面不兼容电脑端,只能以手机端查看,否则出现部分页面无法正常显示。请以移动端查看。
  • 用户界面的图片是可以点开查看所有图片,没有提示内容,可以左滑动,滑不动就是只有一张图片。
  • 标签筛选是可以多选,有几个没有,所以为空。
  • 添加房间有可能服务器的穿透突然断网,重新连接后,重复添加数据。造成重复数据添加异常。
  • 添加的设施,分为便利设施和媒体科技,这个设施只是分类,需要同时选中,否则会出现空指针异常。
  • 在微信对接使用,不可使用支付宝沙箱,微信会拦截,只能在网页上充值余额后,在微信上余额支付订单。

好了,大概就这样吧!

下面我讲讲项目的流程以及项目的功能。

这个东西有想看,因为时间紧迫,就打包放在云盘里。

微信要用到穿透,以及域名的购买。

穿透软件我这里用的https://www.ngrok.cc/login.html,大家下好穿透软件,当然这里面有免费,但是网速非常慢,用花钱的好像也只是速度快了些,但是又有许多问题。

运行环境:ecplise+mysql+穿透+域名(最好使用服务器,当然服务器暂时没有备案测试,可能会出现意外收获bug)

穿透的使用

到这里,穿透就可以使用了,不过域名得自己购买。访问的使用就是域名加项目名。

因为每次图片重启项目都会清空图片,这样子对于我们来说很不方便,为此做了以下配置。

在配置前首先把tomcat中的项目先全部remove All,然后clean掉,然后双击控制台的servers的tomcat,打开tomcat配置,修改默认的项目存放路径。

在apache-tomcat创建一个文件夹,然后将图片存放在这个文件夹下。 

在server.xml里配置对应的路径,docBase:图片存放的绝对路径,path:相对项目的图片文件夹路径 

 在eclipse中的servers打开server.xml配置

 

下面就是代码了,因为代码过多,只发重要部分,其他部分大家可以直接看百度云盘项目。

一个serlvet父类,可以简化servlet代码

package com.lisonglin.web;

import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class BaseServlet extends HttpServlet{
	
	private static final long serialVersionUID = 1L;

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		resp.setContentType("text/html;charset=UTF-8");
		req.setCharacterEncoding("utf-8");
		String uri = req.getRequestURI();
		String method = uri.substring(uri.lastIndexOf("/")+1);
		try {
			Method m = this.getClass().getDeclaredMethod(method, HttpServletRequest.class,HttpServletResponse.class);
			m.invoke(this, req,resp);
		} catch (NoSuchMethodException e) {
			e.printStackTrace();
		} catch (SecurityException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		} catch (IllegalArgumentException e) {
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			e.printStackTrace();
		}
	}
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doGet(req, resp);
	}
	
	
	
	protected void outPut(HttpServletRequest request, HttpServletResponse response, String jsonStr)
			throws ServletException, IOException {
		response.setContentType("application/json;charset=utf-8");// 指定返回的格式为JSON格式
		response.setCharacterEncoding("UTF-8");// setContentType与setCharacterEncoding的顺序不能调换,否则还是无法解决中文乱码的问题
		PrintWriter out = null;
		out = response.getWriter();
		out.write(jsonStr);
		out.close();
	}

}

这里是主要的后台管理实现 

package com.lisonglin.web;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.lisonglin.daomain.Bed;
import com.lisonglin.daomain.Easy;
import com.lisonglin.daomain.HotelLocal;
import com.lisonglin.daomain.Locals;
import com.lisonglin.daomain.Media;
import com.lisonglin.daomain.RoomArea;
import com.lisonglin.daomain.RoomLevel;
import com.lisonglin.daomain.Rooms;
import com.lisonglin.daomain.Window;
import com.lisonglin.service.BedService;
import com.lisonglin.service.EasyService;
import com.lisonglin.service.FacilitiesService;
import com.lisonglin.service.HotelLocalService;
import com.lisonglin.service.ImageService;
import com.lisonglin.service.LocalsService;
import com.lisonglin.service.MediaService;
import com.lisonglin.service.PreviewService;
import com.lisonglin.service.RoomAreaService;
import com.lisonglin.service.RoomEasyService;
import com.lisonglin.service.RoomHotelLocalService;
import com.lisonglin.service.RoomLevelService;
import com.lisonglin.service.RoomMediaService;
import com.lisonglin.service.RoomTitleService;
import com.lisonglin.service.RoomsService;
import com.lisonglin.service.WindowService;
import com.lisonglin.service.impl.BedImpl;
import com.lisonglin.service.impl.EasyImpl;
import com.lisonglin.service.impl.FacilitatiesImpl;
import com.lisonglin.service.impl.HotelLocalImpl;
import com.lisonglin.service.impl.ImageImpl;
import com.lisonglin.service.impl.LocalsImpl;
import com.lisonglin.service.impl.MediaImpl;
import com.lisonglin.service.impl.PreviewImpl;
import com.lisonglin.service.impl.RoomAreaImpl;
import com.lisonglin.service.impl.RoomEasyImpl;
import com.lisonglin.service.impl.RoomHotelLocalImpl;
import com.lisonglin.service.impl.RoomLevelImpl;
import com.lisonglin.service.impl.RoomMediaImpl;
import com.lisonglin.service.impl.RoomTitleImpl;
import com.lisonglin.service.impl.RoomsImpl;
import com.lisonglin.service.impl.WindowImpl;
import com.lisonglin.utils.DataUtil;
import com.lisonglin.utils.ProxyUtil;
import com.lisonglin.utils.UploadUtil;

@WebServlet("/rooms/*")
public class RoomServlet2 extends BaseServlet{
	
	private static final long serialVersionUID = 1L;

	protected void getAll(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//查询全部房间
		RoomsService rService= (RoomsService) ProxyUtil.getProxy(new RoomsImpl());
		List<Rooms> room = rService.getAllRoom();
		req.setAttribute("rooms", room);
		//回显到查询出全部修改
		getRooms(req);
		//将图片的base64码添加进XML,再从前台读出XML中base64显示在浏览器中
		req.getRequestDispatcher("/admin/administration.jsp").forward(req, resp);
	}
	
	private void getRooms(HttpServletRequest req) {
		//查询房间级别
		RoomLevelService roomLevelService=(RoomLevelService) ProxyUtil.getProxy(new RoomLevelImpl());
		List<RoomLevel> roomLevels = roomLevelService.getRoomLevels();
		//查询床类型
		BedService bService= (BedService) ProxyUtil.getProxy(new BedImpl());
		List<Bed> beds = bService.getBeds();
		//查询窗类型
		WindowService windowService=(WindowService) ProxyUtil.getProxy(new WindowImpl());
		List<Window> windows=windowService.getWindows();
		//查询房间面积
		RoomAreaService roomsService=  (RoomAreaService) ProxyUtil.getProxy(new RoomAreaImpl());
		List<RoomArea> roomArea = roomsService.getRoomArea();
		//查询便利设施
		EasyService roomEasyService=(EasyService) ProxyUtil.getProxy(new EasyImpl());
		List<Easy> roomEasies = roomEasyService.getRoomEasies();
		//查询媒体科技
		MediaService mediaService=(MediaService) ProxyUtil.getProxy(new MediaImpl());
		List<Media> medias = mediaService.getMedias();
		//查询酒店标签
		HotelLocalService hotelLocalService= (HotelLocalService) ProxyUtil.getProxy(new HotelLocalImpl());
		List<HotelLocal> hotelLocal = hotelLocalService.getHotelLocal();
		//查询标题标签
		LocalsService lService=(LocalsService) ProxyUtil.getProxy(new LocalsImpl());
		List<Locals> locals = lService.getLocals();
		
		req.setAttribute("roomlevels", roomLevels);
		req.setAttribute("beds", beds);
		req.setAttribute("windows", windows);
		req.setAttribute("area", roomArea);
		req.setAttribute("easy", roomEasies);
		req.setAttribute("medias", medias);
		req.setAttribute("hotelLocal", hotelLocal);
		req.setAttribute("locals", locals);
	}
	
	protected void updateRoom(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//对文件的删除和上传,修改房间信息
		//上传文件
		UploadUtil uploadUtil=new UploadUtil();
		List upload =  uploadUtil.upload(req);
		boolean flag=true;
		RoomsService rService= (RoomsService) ProxyUtil.getProxy(new RoomsImpl());
		FacilitiesService fService=(FacilitiesService) ProxyUtil.getProxy(new FacilitatiesImpl());
		RoomHotelLocalService roomHotelLocalService=(RoomHotelLocalService) ProxyUtil.getProxy(new RoomHotelLocalImpl());
		PreviewService previewService=(PreviewService)ProxyUtil.getProxy(new PreviewImpl());
		RoomMediaService rMediaService=(RoomMediaService) ProxyUtil.getProxy(new RoomMediaImpl());
		RoomEasyService rEasyService=(RoomEasyService) ProxyUtil.getProxy(new RoomEasyImpl());
		String easy = null,medias = null,hotellocal = null,price="";
		String room="";
		String path="",heart_img="";
		try {
			String level = null;
			String local = null;
			String window = null;
			String bed = null;
			String area = null;
			Object id=null;
			Object preview =null;
			int roomHotelLocal=0;
			for(int i=0;i<upload.size();i++) { 
				System.out.println(upload.get(i));
				String rooms= String.valueOf(upload.get(i));
				//用户修改的表单数据
				if(rooms.contains("room=")) {
					String[] arr = rooms.split("&");
					//根据表单数据,查询出相应的id
					for(int j=0;j<arr.length;j++) {
						System.out.println("arr:"+arr[j]);
						if(arr[j].contains("room")) {
							room = arr[j].replaceAll("[^0-9]", "");
							System.out.println("room:"+room);
							//查询要修改的设施id
							id=fService.getFaciliteid(room);
							//删除原来的设施
							fService.deleteFacilities(Integer.parseInt(room));
							//查询要修改的标签id
							roomHotelLocal = roomHotelLocalService.getRoomHotelLocal(room);
							//删除原来的标签
							roomHotelLocalService.deleteRoomHotelLocal(room);
							System.out.println("roomHotelLocal:"+roomHotelLocal);
							//查询要修改的图片id
							preview = previewService.getPreview(room);
						}else if(arr[j].contains("levels")) {
							level = arr[j].replaceAll("[^0-9]", "");
						}else if(arr[j].contains("local")) {
							local=arr[j].replaceAll("[^0-9]", "");
						}else if(arr[j].contains("window")) {
							window=arr[j].replaceAll("[^0-9]", "");
						}else if(arr[j].contains("bed")) {
							bed=arr[j].replaceAll("[^0-9]", "");
						}else if(arr[j].contains("area")) {
							area=arr[j].replaceAll("[^0-9]", "");
						}else if(arr[j].contains("price")) {
							price=arr[j].replaceAll("[^0-9]", "");
						}else if(arr[j].contains("easy")) {
							easy=arr[j].replaceAll("[^0-9]", "");
							System.out.println("roomid:"+room);
							//新增设施
							rEasyService.addEasy(Integer.parseInt(id+""), Integer.parseInt(easy));
						}else if(arr[j].contains("medias=")) {
							medias=arr[j].replaceAll("[^0-9]", "");
							//新增设施
							rMediaService.addRoomMedia(Integer.parseInt(id+""),Integer.parseInt(medias));
						}
						if(arr[j].contains("hotellocal")) {
							hotellocal=arr[j].replaceAll("[^0-9]", "");
							roomHotelLocalService.addRoomHotelLocal(roomHotelLocal, Integer.parseInt(hotellocal));
						}
					}
				}
				//删除的图片
				if(rooms.contains("deleteImg=")) {
					String deleteimg = rooms.substring(rooms.indexOf("=")+1,rooms.length());
					previewService.deletePreview(preview+"", deleteimg);
				}
				//用户上传的图片
				if(rooms.contains("files=")) {
					String uploadpath = rooms.substring(rooms.indexOf("=")+1,rooms.length());
					String uploadimg = uploadpath.substring(uploadpath.lastIndexOf("/")+1,uploadpath.length());
					previewService.addPreview(preview+"", uploadimg, uploadpath);
				}
				//封面
				if(rooms.contains("heart_img=")) {
					heart_img = rooms.substring(rooms.indexOf("=")+1,rooms.length());
					String rowpath = req.getServletContext().getRealPath("/");
					// 获取当前时间
					String xdPath = "images/";
					path = rowpath + xdPath+heart_img;
				}
			}
			rService.updateRoom(level, window, area, bed, Double.parseDouble(price), level, local, path, heart_img, room);
		}catch (Exception e) {
			e.printStackTrace();
			flag=false;
		}
		resp.getWriter().write(flag==true?"success":"error");
	}
	
	protected void getAddRoom(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		getRooms(req);
		req.getRequestDispatcher("/admin/add.jsp").forward(req, resp);
	}
	
	//添加房间
	@SuppressWarnings("unlikely-arg-type")
	protected void addRoom(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		resp.setContentType("text/html;charset=UTF-8");
		req.setCharacterEncoding("utf-8");
		//上传文件
		UploadUtil uploadUtil=new UploadUtil();
		List upload =  uploadUtil.upload(req);
		//增加房间(rooms)
		RoomsService rService= (RoomsService) ProxyUtil.getProxy(new RoomsImpl());
		ImageService imageService=(ImageService) ProxyUtil.getProxy(new ImageImpl());
		RoomTitleService roomTitleService= (RoomTitleService) ProxyUtil.getProxy(new RoomTitleImpl());
		RoomEasyService roomEasyService=(RoomEasyService) ProxyUtil.getProxy(new RoomEasyImpl());
		FacilitiesService fService=(FacilitiesService) ProxyUtil.getProxy(new FacilitatiesImpl());
		MediaService mediaService=(MediaService) ProxyUtil.getProxy(new MediaImpl());
		RoomHotelLocalService roomHotelLocalService=(RoomHotelLocalService) ProxyUtil.getProxy(new RoomHotelLocalImpl());
		RoomAreaService roomAreaService=(RoomAreaService) ProxyUtil.getProxy(new RoomAreaImpl());
		//查询最大的设施号
		int facilite = fService.getFacilite();
		//查询最大的标签号
		int roomHotelLocal = roomHotelLocalService.getRoomHotelLocal();
		//查询最大的照片号
		int iamges = imageService.getIamges();
		String easy = null,medias = null,hotellocal = null,price="",newimg="",local="",roomlevel="";
		String room="",level="",window="",bed="",area="",imgs="",oldimg="";
		//查询增加面积的对应id
		int roomArea = roomAreaService.getRoomAreas();
		//查询最大的标题号
		int roomTitle = roomTitleService.getRoomTitle();
		try {
		for(int i=0;i<upload.size();i++) {
			//各类相应的数据
			String rooms= String.valueOf(upload.get(i));
			System.out.println("rooms:"+rooms);
			if(rooms.contains("&")) {
				System.out.println(rooms.contains("&"));
				String[] arr = rooms.split("&");
				//房间号
				room = (arr[0]+"").replaceAll("[^0-9]", "");
				//标题
				local=(arr[1]+"").replaceAll("[^0-9]", "");
				roomlevel=(arr[2]+"").replaceAll("[^0-9]", "");
				//级别
				level=(arr[3]+"").replaceAll("[^0-9]", "");
				//窗
				window=(arr[4]+"").replaceAll("[^0-9]", "");
				//床
				bed=(arr[5]+"").replaceAll("[^0-9]", "");
				//面积
				area=(arr[6]+"").replaceAll("[^0-9]", "");
				for(int j = 0; j < arr.length;j++){
					System.out.println("arr:"+arr[j]);
					//设施(便利设施)
					if(rooms.contains("easy")) {
						if((arr[j]+"").contains("easy")) {
							easy=(arr[j]+"").replaceAll("[^0-9]","");
//							System.out.println("facilite:"+facilite);
							//增加房间设施(room_easy)
							roomEasyService.addEasy(facilite+1, Integer.parseInt(easy));
						}
					}else {
						System.out.println("easyno");
						resp.getWriter().write("no");
						return;
					}
					//媒体科技
					if(rooms.contains("medias")) {
						if((arr[j]+"").contains("easy")) {
							medias=(arr[j]+"").replaceAll("[^0-9]", "");
//							System.out.println("medias:"+medias);
							mediaService.addMedias(facilite+1, Integer.parseInt(medias));
						}
					}else {
						System.out.println("no");
						resp.getWriter().write("no");
						return;
					}
					//标签
					if(rooms.contains("hotellocal")) {
						if((arr[j]+"").contains("easy")) {
							//增加酒店房间标签(room_hotel_loc)
							hotellocal=(arr[j]+"").replaceAll("[^0-9]", "");
//							System.out.println("hotellocal:"+(roomHotelLocal+1));
							roomHotelLocalService.addRoomHotelLocal(roomHotelLocal+1, Integer.parseInt(hotellocal));
						}
					}else {
						System.out.println("hotelno");
						resp.getWriter().write("no");
						return;
					}
					//价格
					if((arr[j]+"").contains("price")) {
						price=(arr[j]+"").replaceAll("[^0-9]", "");
					}
				}
				System.out.println(room+","+local+","+roomlevel+","+level+","+window+","+bed+","+area+","+easy+","+medias+","+hotellocal+","+price);
			}
			imgs =String.valueOf(upload.get(i));
//			System.out.println("imgs:"+imgs);
			if(String.valueOf(upload.get(0))!=null) {
				if(imgs.contains("E://apache")) {
					//直接截取后面的文件名
					oldimg = imgs.substring(imgs.lastIndexOf("//")+1,imgs.length());
					System.out.println("imgok");
					//增加房间照片(img_md5,preview)
					imageService.addIamges(iamges+1,"", imgs, oldimg);
					newimg=imgs.substring(0,imgs.lastIndexOf("//"));
					System.out.println("room:"+room+"oldimg:"+oldimg);
					//照片
				}
			}else {
				System.out.println("imgno");
				return;
			}
		}
		//增加图片的md5加密的数据库
		
		//最后添加设施关联表
		fService.addFacilite(facilite+1, facilite+1);
		//增加房间封面
		if(String.valueOf(upload.get(0)).equals("")) {
			System.out.println("123imgno");
			return;
		}
		imageService.addImages(iamges+1,newimg+"/"+String.valueOf(upload.get(0)), Integer.parseInt(room), String.valueOf(upload.get(0)));
		System.out.println("roomTitle:"+roomTitle);
		//增加房间标题(roomtitle)
		roomTitleService.addRoomTitle(roomTitle+1,Integer.parseInt(local), Integer.parseInt(roomlevel));
		
		//增加面积
		if(area!=null) {
			roomAreaService.addRoomArea(roomArea+1,Integer.parseInt(area));
		}
		//查询设施id
		int faciliteid = fService.getFaciliteid();
		//增加房间
		System.out.println("room:"+room+",level:"+level+",window:"+window+",rooomArea:"+roomArea+",bed:"+bed+",price:"+price+",roomTitle:"+roomTitle+",images:"+iamges+",faciliteid:"+faciliteid+",roomHotellocal:"+roomHotelLocal);
		rService.addRoom(Integer.parseInt(room), Integer.parseInt(level),Integer.parseInt(window) , 
				roomArea+1, Integer.parseInt(bed), Integer.parseInt(price), roomTitle+1, iamges+1, 
				faciliteid, roomHotelLocal+1);
		//封面
		//图片的绝对路径
		} catch (Exception e) {
			e.printStackTrace();
			throw new RuntimeException("其他异常");
		}
		//重定向
//		resp.sendRedirect("/hotelSystem/room/getAll");
		System.out.println("封面:"+upload.get(0));
		System.out.println("upload:"+upload);	
		if(room!=null&&level!=null&&bed!=null) {
			System.out.println("ok");
		}else {
			System.out.println("no");
		}
		//上面执行成功后,返回前台成功
		resp.getWriter().write(room!=null?"add":"no");
	}
	
	//后台验证房间号
	protected void checkRoomId(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//根据url传过来的参数
		String roomid = req.getParameter("roomid");
		RoomsService rService= (RoomsService) ProxyUtil.getProxy(new RoomsImpl());
		Object id = rService.checkRoomId(roomid);
		resp.getWriter().write(id==null?"success":"error");
	}
	
	//查询预览图片
	protected void getIamges(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//根据封面id
		String oldimg = req.getParameter("oldimg");
		ImageService imageService=(ImageService) ProxyUtil.getProxy(new ImageImpl());
		String imgpath=imageService.getIamgesPath(oldimg);
		System.out.println("imgpath:"+imgpath);
		req.setAttribute("imgpath", imgpath);
		req.getRequestDispatcher("/admin/img.jsp").forward(req, resp);
	}
	
	//搜索框输入的内容
	protected void checkRoomData(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		String roomid = req.getParameter("data");
		System.out.println(roomid);
		RoomsService rService= (RoomsService) ProxyUtil.getProxy(new RoomsImpl());
		if(roomid.equals("")) {
			List<Rooms> room = rService.getAllRoom();
			req.setAttribute("rooms", room);
			resp.getWriter().write("all");
			req.getRequestDispatcher("/admin/administration.jsp").forward(req, resp);
		}else if(!DataUtil.isInteger(roomid)){
			System.out.println("null");
			resp.getWriter().write("null");
		}else {
			resp.getWriter().write("success");
			List<Rooms> likeRoom = rService.getLikeRoom(roomid);
			req.setAttribute("rooms", likeRoom);
			req.getRequestDispatcher("/admin/administration.jsp").forward(req, resp);
		}
		System.out.println("roomid:"+roomid);
	}
	
	//删除选中的房间
	protected void deleteRoom(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		String id = req.getParameter("id");
		System.out.println("id:"+id);
		RoomsService rService= (RoomsService) ProxyUtil.getProxy(new RoomsImpl());
		try {
			boolean deleteRoom = rService.deleteRoom(id);
			if(deleteRoom) {
				resp.getWriter().write("success");
			}
		} catch (Exception e) {
			e.printStackTrace();
			throw new RuntimeException("其他异常");
		}
	}
	
	//查询窗户和床
	protected void bedorwindow(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		WindowService windowService=(WindowService) ProxyUtil.getProxy(new WindowImpl());
		List<Window> windows = windowService.getWindows();
		BedService bedService=(BedService) ProxyUtil.getProxy(new BedImpl());
		List<Bed> beds = bedService.getBeds();
		req.setAttr
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hikktn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值