• Java项目:JSP酒店客房管理系统


    作者主页:源码空间站2022

     简介:Java领域优质创作者、Java项目、学习资料、技术互助

    文末获取源码

    项目介绍

    酒店管理系统共分为三个角色,客房经理、前台管理员、客户,各个角色的权限各不相同;
    客房经理功能包括:登录、注册、前台用户管理、客房管理、优惠活动、查看留言、更换客房、房费续交、订单查看、报修统计、入驻统计、退房等功能;

    前台管理员主要功能:
    前台管理:包括客房查询、更换客房、房费续交、订单查看、报修统计、入住统计、退房、查看留言;

    客户主要功能:
    主要查看用户信息:个人信息、优惠活动、客房信息、订单管理、留言等;

    环境需要

    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版本;

    6.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目

    技术栈

    1. 后端:Servlet

    2. 前端:JSP+bootstrap+jQuery

    使用说明

    1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
    2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
    3. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置;
    4. 运行项目,输入localhost:8080/SLH 登录 注:tomcat中配置项目路径必须为/SLH,否则会报错;
    客房经理用户名密码:admin/admin
    前台管理员用户名密码:test/123456

    客户用户名密码:jack/123456

    运行截图

    相关代码 

    CustomerServlet

    1. package com.slh.code.servlet;
    2. import java.io.IOException;
    3. import java.io.PrintWriter;
    4. import java.util.HashMap;
    5. import java.util.List;
    6. import java.util.Map;
    7. import java.util.regex.Pattern;
    8. import javax.servlet.ServletException;
    9. import javax.servlet.http.HttpServlet;
    10. import javax.servlet.http.HttpServletRequest;
    11. import javax.servlet.http.HttpServletResponse;
    12. import net.sf.json.JSONArray;
    13. import net.sf.json.JSONObject;
    14. import com.slh.code.Users;
    15. import com.slh.code.db.DBHelper;
    16. import com.slh.util.DateUtil;
    17. import com.slh.util.Keys;
    18. public class CustomerServlet extends HttpServlet {
    19. private static final long serialVersionUID = 1L;
    20. public void destroy() {
    21. super.destroy();
    22. }
    23. public void doGet(HttpServletRequest request, HttpServletResponse response)
    24. throws ServletException, IOException {
    25. this.doPost(request, response);
    26. }
    27. public void doPost(HttpServletRequest request, HttpServletResponse response)
    28. throws ServletException, IOException {
    29. response.setContentType("text/html");
    30. PrintWriter out = response.getWriter();
    31. int state = 0;
    32. String value = "";
    33. String cause = "";
    34. String result = "";
    35. String flag = request.getParameter("flag")==null?"":request.getParameter("flag");
    36. if(flag.equals("")){
    37. state = 0;
    38. result = "error:参数错误!";
    39. }else if(flag.equals("customerInfo")){
    40. result = customerInfo(request,response);
    41. }else if(flag.equals("motifyuser")){
    42. //修改用户信息
    43. result = motifyuser(request,response);
    44. }else if(flag.equals("orderRoom")){
    45. result = orderRoom(request,response);
    46. }else if(flag.equals("orderLook")){
    47. result = orderLook(request,response);
    48. }else if(flag.equals("findOrderById")){
    49. //获取单个订单信息
    50. result = findOrderById(request,response);
    51. }else if(flag.equals("editOrder")){
    52. result = editOrder(request,response);
    53. }else if(flag.equals("deleteOrder")){
    54. result = deleteOrder(request,response);
    55. }else if(flag.equals("message")){
    56. //留言
    57. result = message(request,response);
    58. }
    59. if(result.indexOf("error")!=-1){
    60. state = 0;
    61. value = result.substring(6,result.length());
    62. }else{
    63. state = 1;
    64. value =result;
    65. }
    66. System.out.println(value);
    67. out.println("{\"state\":\""+state+"\",\"value\":\""+value.replaceAll("\"", "'")+"\",\"cause\":\""+cause+"\"}");
    68. out.flush();
    69. out.close();
    70. }
    71. private String findOrderById(HttpServletRequest request,
    72. HttpServletResponse response) {
    73. String id = request.getParameter("id")==null?"":request.getParameter("id");
    74. String uid = ((Users)request.getSession().getAttribute("user")).getId();
    75. String sql = "select o.id,o.orderno,u.name,o.occupancytime,o.ordertime,o.ordermoney,o.prepay,o.ordertype,o.roomno,o.day,o.isoccupancy from orders o,users u where u.id = o.orderuser and o.id = ? and u.id = ?";
    76. String fields[]={"id","orderno","name","occupancytime","ordertime","ordermoney","prepay","ordertype","roomno","day","isoccupancy"};
    77. Map map = new DBHelper().queryObject(sql, new String[]{id,uid}, fields);
    78. if(map!=null && !map.isEmpty()){
    79. return JSONObject.fromObject(map).toString();
    80. }else return "error:获取您的订单信息失败!";
    81. }
    82. private String motifyuser(HttpServletRequest request,
    83. HttpServletResponse response) {
    84. String id = request.getParameter("id")==null?"":request.getParameter("id");
    85. String age = request.getParameter("age")==null?"":request.getParameter("age");
    86. String sex = request.getParameter("sex")==null?"":request.getParameter("sex");
    87. String realname = request.getParameter("realname")==null?"":request.getParameter("realname");
    88. String phone = request.getParameter("phone")==null?"":request.getParameter("phone");
    89. String reg = "^[1-9]+$";
    90. Pattern p = Pattern.compile(reg);
    91. if(id.equals("")) return "error:用户ID为空!";
    92. if(age.equals("")) return "error:年龄为空";
    93. if(!p.matcher(age).matches()) return "error:请输入正确的年龄";
    94. if(Integer.parseInt(age)>150) return "error:请输入真实的年龄";
    95. if(sex.equals("")) return "error:请选择性别!";
    96. if(realname.equals("")) return "error:真实姓名为空!";
    97. if(phone.equals("")) return "error:联系方式为空";
    98. String sql = "update users set age =?,sex=?,realname=?,phone=? where id= ?";
    99. String params[]={age,sex,realname,phone,id};
    100. int rows = new DBHelper().alertData(sql, params);
    101. if(rows > 0){
    102. Users u = (Users)request.getSession().getAttribute("user");
    103. u.setAge(age);
    104. u.setSex(sex);
    105. u.setRealname(realname);
    106. u.setPhone(phone);
    107. return "修改信息成功!";
    108. }
    109. else return "error:修改信息失败!";
    110. }
    111. private String message(HttpServletRequest request,
    112. HttpServletResponse response) {
    113. String id = Keys.createKey("M");
    114. String title = request.getParameter("title")==null?"":request.getParameter("title");
    115. String content = request.getParameter("content")==null?"":request.getParameter("content");
    116. String messageuser = ((Users)request.getSession().getAttribute("user")).getId();
    117. String time = DateUtil.dateFormat();
    118. if(title.equals("")) return "error:标题不能为空!";
    119. if(content.equals("")) return "error:内容不能为空!";
    120. String sql = "insert into message(id,title,content,messageuser,time)values(?,?,?,?,?)";
    121. String params[]={id,title,content,messageuser,time};
    122. int rows = new DBHelper().alertData(sql, params);
    123. if(rows >0) return "成功!";
    124. else return "error:留言失败!";
    125. }
    126. private String deleteOrder(HttpServletRequest request,
    127. HttpServletResponse response) {
    128. String id= request.getParameter("id")==null?"":request.getParameter("id");
    129. if(id.equals("")) return "error:订单ID不能为空!";
    130. String sql = "delete from orders where id = ?";
    131. String params[]={id};
    132. int rows = new DBHelper().alertData(sql, params);
    133. if(rows > 0) return "成功";
    134. else return "error:删除订单失败!";
    135. }
    136. private String editOrder(HttpServletRequest request,
    137. HttpServletResponse response) {
    138. String id = request.getParameter("id")==null?"":request.getParameter("id");
    139. String occupancytime = request.getParameter("occupancytime")==null?"":request.getParameter("occupancytime");
    140. String day = request.getParameter("day")==null?"":request.getParameter("day");
    141. if(id.equals("")) return "error:订单ID不能为空!";
    142. if(occupancytime.equals("")) return "error:入住时间不能为空!";
    143. if(day.equals("")) return "error:入住天数不能为空!";
    144. String sql = "update orders set occupancytime=? ,day =? where id =?";
    145. String params[]={occupancytime,day ,id};
    146. int rows = new DBHelper().alertData(sql, params);
    147. if(rows>0) return "订单修改成功";
    148. else return "修改订单失败!";
    149. }
    150. private String orderLook(HttpServletRequest request,
    151. HttpServletResponse response) {
    152. int page = 0;
    153. int pagesize = 5;
    154. String uid = ((Users)request.getSession().getAttribute("user")).getId();
    155. String prepage = request.getParameter("page")==null?"":request.getParameter("page");
    156. boolean p = Pattern.compile("^[0-9]+$").matcher(prepage).matches();
    157. if(!p) page =1;
    158. else if(prepage.equals("")) page =1;
    159. else if(p && Integer.parseInt(prepage)>0) page = Integer.parseInt(prepage);
    160. String sql = "select o.id,o.orderno,o.occupancytime,u.name,o.ordertime ,o.ordermoney ,o.prepay,o.ordertype,o.roomno,o.day,o.isoccupancy from orders o inner join users u where o.orderuser = u.id and u.id = ? limit "+(page-1)*pagesize+","+pagesize;
    161. String csql = "select count(*) count from orders o inner join users u where o.orderuser = u.id and u.id = ? ";
    162. String params[]={uid};
    163. String total = new DBHelper().queryField(csql, params, "count");
    164. Mapmap = null;
    165. if(total!=null && !total.equals("")){
    166. map = new HashMap();
    167. int totalCount = Integer.parseInt(total);
    168. map.put("total", total);
    169. map.put("prepage", page+"");
    170. map.put("totalPage", (totalCount%pagesize==0?totalCount/pagesize:totalCount/pagesize+1)+"");
    171. String fields[]={"id","orderno","name","occupancytime","ordertime","ordermoney","prepay","ordertype","roomno","day","isoccupancy"};
    172. System.out.println("sql:"+sql);
    173. List>list = new DBHelper().queryObjects(sql, params, fields);
    174. if(list!=null && list.size()>0){
    175. list.add(map);
    176. return JSONArray.fromObject(list).toString();
    177. }else
    178. return "error:没有获取到订单的信息!";
    179. }else return "error:没有获取到相关的订单信息!";
    180. }
    181. private String orderRoom(HttpServletRequest request,
    182. HttpServletResponse response) {
    183. String id = Keys.createKey("O");
    184. String orderno = Keys.createKey("SLH");
    185. String orderuser = ((Users)request.getSession().getAttribute("user")).getId();
    186. String ordertime = DateUtil.dateFormat();
    187. String ordermoney = request.getParameter("ordermoney")==null?"":request.getParameter("ordermoney");
    188. String ordertype = "1";
    189. String roomno = request.getParameter("roomno")==null?"":request.getParameter("roomno");
    190. String isoccupancy = "2";
    191. String occupancytime = request.getParameter("occupancytime")==null?"":request.getParameter("occupancytime");
    192. String day = request.getParameter("day")==null?"1":request.getParameter("day");
    193. if(roomno.equals("")) return "error:房间号不能为空!";
    194. if(ordermoney.equals("")) return "error:订单价格不能为空";
    195. if(occupancytime.equals("")) return "error:入住时间不能为空!";
    196. String rsql = "update rooms set isempty = 2 where roomno = ?";
    197. int room = new DBHelper().alertData(rsql, new String[]{roomno});
    198. if(room <= 0) return "error:房间的状态修改失败!";
    199. String sql = "insert into orders(id,orderno,orderuser,ordertime,ordermoney,ordertype,roomno,isoccupancy,occupancytime,day)values(?,?,?,?,?,?,?,?,?,?)";
    200. String params[]={id,orderno,orderuser,ordertime,ordermoney,ordertype,roomno,isoccupancy,occupancytime,day};
    201. int rows = new DBHelper().alertData(sql, params);
    202. if(rows > 0) return "下单成功";
    203. else return "error:下单失败";
    204. }
    205. private String customerInfo(HttpServletRequest request,
    206. HttpServletResponse response) {
    207. if(request.getSession().getAttribute("user")!=null)
    208. return JSONObject.fromObject((Users)request.getSession().getAttribute("user")).toString();
    209. else return "error:获取用户信息失败,session失效!";
    210. }
    211. public void init() throws ServletException {
    212. }
    213. }

    如果也想学习本系统,下面领取。关注并回复:109jsp 

  • 相关阅读:
    IO(输入/输出)
    Salesforce使用的数据库是什么
    30天Python入门(第十三天:深入了解Python中的列表推导式)
    echarts 容器自适应
    二维码怎么做列表?点击可跳转其他内容
    云计算-JavaAPI与Hadoop的互联的实现
    【密码加密原则三】
    10.7- 的报错整理(与linux、python相关)
    数据结构与算法概述
    (刘二大人)PyTorch深度学习实践-卷积网络(Advance)
  • 原文地址:https://blog.csdn.net/m0_74967853/article/details/128066769