基于javaweb的酒店客房管理系统(java+jsp+html+bootstrap+jquery+servlet+mysql)

基于javaweb的酒店客房管理系统(java+jsp+html+bootstrap+jquery+servlet+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

20220819205751

20220819205752

20220819205753

20220819205754

基于javaweb+mysql的酒店客房管理系统(java+JSP+html+bootstrap+jQuery+Servlet+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版本; 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

客户管理后台控制器:

/**

  • 客户管理后台控制器

  • @author yy

*/

@RequestMapping(“/admin/account”)

@Controller

public class AccountController {

@Autowired

private AccountService accountService;

/**

  • 客户管理列表页面

  • @param model

  • @return

*/

@RequestMapping(value=“/list”,method=RequestMethod.GET)

public ModelAndView list(ModelAndView model){

model.setViewName(“account/list”);

return model;

/**

  • 客户信息添加操作

  • @param account

  • @return

*/

@RequestMapping(value=“/add”,method=RequestMethod.POST)

@ResponseBody

public Map<String, String> add(Account account){

Map<String, String> ret = new HashMap<String, String>();

if(account == null){

ret.put(“type”, “error”);

ret.put(“msg”, “请填写正确的客户信息!”);

return ret;

if(StringUtils.isEmpty(account.getName())){

ret.put(“type”, “error”);

ret.put(“msg”, “客户名称不能为空!”);

return ret;

if(StringUtils.isEmpty(account.getPassword())){

ret.put(“type”, “error”);

ret.put(“msg”, “客户密码不能为空!”);

return ret;

if(isExist(account.getName(), 0l)){

ret.put(“type”, “error”);

ret.put(“msg”, “该用户名已经存在!”);

return ret;

if(accountService.add(account) <= 0){

ret.put(“type”, “error”);

ret.put(“msg”, “添加失败,请联系管理员!”);

return ret;

ret.put(“type”, “success”);

ret.put(“msg”, “添加成功!”);

return ret;

/**

  • 客户信息编辑操作

  • @param account

  • @return

*/

@RequestMapping(value=“/edit”,method=RequestMethod.POST)

@ResponseBody

public Map<String, String> edit(Account account){

Map<String, String> ret = new HashMap<String, String>();

if(account == null){

ret.put(“type”, “error”);

ret.put(“msg”, “请填写正确的客户信息!”);

return ret;

if(StringUtils.isEmpty(account.getName())){

ret.put(“type”, “error”);

ret.put(“msg”, “客户名称不能为空!”);

return ret;

if(StringUtils.isEmpty(account.getPassword())){

ret.put(“type”, “error”);

ret.put(“msg”, “客户密码不能为空!”);

return ret;

if(isExist(account.getName(), account.getId())){

ret.put(“type”, “error”);

ret.put(“msg”, “该用户名已经存在!”);

return ret;

if(accountService.edit(account) <= 0){

ret.put(“type”, “error”);

ret.put(“msg”, “添加失败,请联系管理员!”);

return ret;

ret.put(“type”, “success”);

ret.put(“msg”, “修改成功!”);

return ret;

/**

  • 分页查询客户信息

  • @param name

  • @param page

  • @return

*/

@RequestMapping(value=“/list”,method=RequestMethod.POST)

@ResponseBody

public Map<String,Object> list(

@RequestParam(name=“name”,defaultValue=“”) String name,

@RequestParam(name=“realName”,defaultValue=“”) String realName,

@RequestParam(name=“idCard”,defaultValue=“”) String idCard,

@RequestParam(name=“mobile”,defaultValue=“”) String mobile,

@RequestParam(name=“status”,required=false) Integer status,

Page page

){

Map<String,Object> ret = new HashMap<String, Object>();

Map<String,Object> queryMap = new HashMap<String, Object>();

queryMap.put(“name”, name);

queryMap.put(“status”, status);

queryMap.put(“realName”, realName);

queryMap.put(“idCard”, idCard);

queryMap.put(“mobile”, mobile);

queryMap.put(“offset”, page.getOffset());

queryMap.put(“pageSize”, page.getRows());

ret.put(“rows”, accountService.findList(queryMap));

ret.put(“total”, accountService.getTotal(queryMap));

return ret;

/**

  • 客户信息删除操作

  • @param id

  • @return

*/

@RequestMapping(value=“/delete”,method=RequestMethod.POST)

@ResponseBody

public Map<String, String> delete(Long id){

Map<String, String> ret = new HashMap<String, String>();

if(id == null){

ret.put(“type”, “error”);

ret.put(“msg”, “请选择要删除的信息!”);

return ret;

try {

if(accountService.delete(id) <= 0){

ret.put(“type”, “error”);

ret.put(“msg”, “删除失败,请联系管理员!”);

return ret;

} catch (Exception e) {

// TODO: handle exception

ret.put(“type”, “error”);

ret.put(“msg”, “该客户下存在订单信息,请先删除该客户下的所有订单信息!”);

return ret;

ret.put(“type”, “success”);

ret.put(“msg”, “删除成功!”);

return ret;

/**

  • 判断用户名是否存在

  • @param name

  • @param id

  • @return

*/

private boolean isExist(String name,Long id){

Account findByName = accountService.findByName(name);

if(findByName == null)return false;

if(findByName.getId().longValue() == id.longValue())return false;

return true;

角色role控制器:

/**

  • 角色role控制器

  • @author yy

*/

@RequestMapping(“/admin/role”)

@Controller

public class RoleController {

@Autowired

private RoleService roleService;

@Autowired

private AuthorityService authorityService;

@Autowired

private MenuService menuService;

/**

  • 角色列表页面

  • @param model

  • @return

*/

@RequestMapping(value=“/list”,method=RequestMethod.GET)

public ModelAndView list(ModelAndView model){

model.setViewName(“/role/list”);

return model;

/**

  • 获取角色列表

  • @param page

  • @param name

  • @return

*/

@RequestMapping(value=“/list”,method=RequestMethod.POST)

@ResponseBody

public Map<String, Object> getList(Page page,

@RequestParam(name=“name”,required=false,defaultValue=“”) String name

){

Map<String, Object> ret = new HashMap<String, Object>();

Map<String, Object> queryMap = new HashMap<String, Object>();

queryMap.put(“name”, name);

queryMap.put(“offset”, page.getOffset());

queryMap.put(“pageSize”, page.getRows());

ret.put(“rows”, roleService.findList(queryMap));

ret.put(“total”, roleService.getTotal(queryMap));

return ret;

/**

  • 角色添加

  • @param role

  • @return

*/

@RequestMapping(value=“/add”,method=RequestMethod.POST)

@ResponseBody

public Map<String, String> add(Role role){

Map<String, String> ret = new HashMap<String, String>();

if(role == null){

ret.put(“type”, “error”);

ret.put(“msg”, “请填写正确的角色信息!”);

return ret;

if(StringUtils.isEmpty(role.getName())){

ret.put(“type”, “error”);

ret.put(“msg”, “请填写角色名称!”);

return ret;

if(roleService.add(role) <= 0){

ret.put(“type”, “error”);

ret.put(“msg”, “角色添加失败,请联系管理员!”);

return ret;

ret.put(“type”, “success”);

ret.put(“msg”, “角色添加成功!”);

return ret;

/**

  • 角色修改

  • @param role

  • @return

*/

@RequestMapping(value=“/edit”,method=RequestMethod.POST)

@ResponseBody

public Map<String, String> edit(Role role){

Map<String, String> ret = new HashMap<String, String>();

if(role == null){

ret.put(“type”, “error”);

ret.put(“msg”, “请填写正确的角色信息!”);

return ret;

if(StringUtils.isEmpty(role.getName())){

ret.put(“type”, “error”);

ret.put(“msg”, “请填写角色名称!”);

return ret;

if(roleService.edit(role) <= 0){

ret.put(“type”, “error”);

ret.put(“msg”, “角色修改失败,请联系管理员!”);

return ret;

ret.put(“type”, “success”);

ret.put(“msg”, “角色修改成功!”);

return ret;

/**

  • 删除角色信息

  • @param id

  • @return

*/

@RequestMapping(value=“/delete”,method=RequestMethod.POST)

@ResponseBody

public Map<String, String> delete(Long id){

Map<String, String> ret = new HashMap<String, String>();

if(id == null){

ret.put(“type”, “error”);

ret.put(“msg”, “请选择要删除的角色!”);

return ret;

try {

if(roleService.delete(id) <= 0){

ret.put(“type”, “error”);

ret.put(“msg”, “删除失败,请联系管理员!”);

return ret;

} catch (Exception e) {

// TODO: handle exception

ret.put(“type”, “error”);

ret.put(“msg”, “该角色下存在权限或者用户信息,不能删除!”);

return ret;

ret.put(“type”, “success”);

ret.put(“msg”, “角色删除成功!”);

return ret;

/**

  • 获取所有的菜单信息

  • @return

*/

@RequestMapping(value=“/get_all_menu”,method=RequestMethod.POST)

@ResponseBody

public List

getAllMenu(){

Map<String, Object> queryMap = new HashMap<String, Object>();

queryMap.put(“offset”, 0);

queryMap.put(“pageSize”, 99999);

return menuService.findList(queryMap);

/**

  • 添加权限

  • @param ids

  • @return

*/

@RequestMapping(value=“/add_authority”,method=RequestMethod.POST)

@ResponseBody

public Map<String, String> addAuthority(

@RequestParam(name=“ids”,required=true) String ids,

@RequestParam(name=“roleId”,required=true) Long roleId

){

Map<String,String> ret = new HashMap<String, String>();

if(StringUtils.isEmpty(ids)){

ret.put(“type”, “error”);

ret.put(“msg”, “请选择相应的权限!”);

return ret;

if(roleId == null){

ret.put(“type”, “error”);

ret.put(“msg”, “请选择相应的角色!”);

return ret;

if(ids.contains(“,”)){

ids = ids.substring(0,ids.length()-1);

String[] idArr = ids.split(“,”);

if(idArr.length > 0){

authorityService.deleteByRoleId(roleId);

for(String id:idArr){

Authority authority = new Authority();

authority.setMenuId(Long.valueOf(id));

authority.setRoleId(roleId);

authorityService.add(authority);

ret.put(“type”, “success”);

ret.put(“msg”, “权限编辑成功!”);

return ret;

/**

  • 获取某个角色的所有权限

  • @param roleId

  • @return

*/

@RequestMapping(value=“/get_role_authority”,method=RequestMethod.POST)

@ResponseBody

public List getRoleAuthority(

@RequestParam(name=“roleId”,required=true) Long roleId

){

return authorityService.findListByRoleId(roleId);

前台首页控制器:

/**

  • 前台首页控制器

  • @author yy

*/

@RequestMapping(“/home”)

@Controller

public class HomeController {

@Autowired

private RoomTypeService roomTypeService;

@Autowired

private AccountService accountService;

/**

  • 前台首页

  • @param model

  • @param name

  • @return

*/

@RequestMapping(value=“/index”,method=RequestMethod.GET)

public ModelAndView list(ModelAndView model,

@RequestParam(name=“name”,defaultValue=“”) String name

){

Map<String,Object> queryMap = new HashMap<String, Object>();

queryMap.put(“name”, name);

queryMap.put(“offset”, 0);

queryMap.put(“pageSize”, 999);

model.addObject(“roomTypeList”, roomTypeService.findList(queryMap));

model.setViewName(“home/index/index”);

model.addObject(“kw”, name);

return model;

/**

  • 登录页面

  • @param model

  • @return

*/

@RequestMapping(value=“/login”,method=RequestMethod.GET)

public ModelAndView login(ModelAndView model

){

model.setViewName(“home/index/login”);

return model;

/**

  • 注册页面

  • @param model

  • @return

*/

@RequestMapping(value=“/reg”,method=RequestMethod.GET)

public ModelAndView reg(ModelAndView model

){

model.setViewName(“home/index/reg”);

return model;

/**

  • 登录信息提交

  • @param account

  • @return

*/

@RequestMapping(value=“/login”,method=RequestMethod.POST)

@ResponseBody

public Map<String,String> loginAct(Account account,String vcode,HttpServletRequest request){

Map<String,String> retMap = new HashMap<String, String>();

if(account == null){

retMap.put(“type”, “error”);

retMap.put(“msg”, “请填写正确的用户信息!”);

return retMap;

if(StringUtils.isEmpty(account.getName())){

retMap.put(“type”, “error”);

retMap.put(“msg”, “用户名不能为空!”);

return retMap;

if(StringUtils.isEmpty(account.getPassword())){

retMap.put(“type”, “error”);

retMap.put(“msg”, “密码不能为空!”);

return retMap;

if(StringUtils.isEmpty(vcode)){

retMap.put(“type”, “error”);

retMap.put(“msg”, “验证码不能为空!”);

return retMap;

Object attribute = request.getSession().getAttribute(“accountLoginCpacha”);

if(attribute == null){

retMap.put(“type”, “error”);

retMap.put(“msg”, “验证码过期,请刷新!”);

return retMap;

if(!vcode.equalsIgnoreCase(attribute.toString())){

retMap.put(“type”, “error”);

retMap.put(“msg”, “验证码错误!”);

return retMap;

Account findByName = accountService.findByName(account.getName());

if(findByName == null){

retMap.put(“type”, “error”);

retMap.put(“msg”, “用户名不存在!”);

return retMap;

if(!account.getPassword().equals(findByName.getPassword())){

retMap.put(“type”, “error”);

retMap.put(“msg”, “密码错误!”);

return retMap;

if(findByName.getStatus() == -1){

retMap.put(“type”, “error”);

retMap.put(“msg”, “该用户已被禁用,请联系管理员!”);

return retMap;

request.getSession().setAttribute(“account”, findByName);

request.getSession().setAttribute(“accountLoginCpacha”, null);

retMap.put(“type”, “success”);

retMap.put(“msg”, “登录成功!”);

return retMap;

/**

  • 注册信息提交

  • @param account

  • @return

*/

@RequestMapping(value=“/reg”,method=RequestMethod.POST)

@ResponseBody

public Map<String,String> regAct(Account account){

Map<String,String> retMap = new HashMap<String, String>();

if(account == null){

retMap.put(“type”, “error”);

retMap.put(“msg”, “请填写正确的用户信息!”);

return retMap;

if(StringUtils.isEmpty(account.getName())){

retMap.put(“type”, “error”);

retMap.put(“msg”, “用户名不能为空!”);

return retMap;

if(StringUtils.isEmpty(account.getPassword())){

retMap.put(“type”, “error”);

retMap.put(“msg”, “密码不能为空!”);

return retMap;

if(StringUtils.isEmpty(account.getMobile())){

retMap.put(“type”, “error”);

retMap.put(“msg”, “手机号不能为空!”);

return retMap;

if(isExist(account.getName())){

retMap.put(“type”, “error”);

retMap.put(“msg”, “该用户名已经存在!”);

return retMap;

if(accountService.add(account) <= 0){

retMap.put(“type”, “error”);

retMap.put(“msg”, “注册失败,请联系管理员!”);

return retMap;

retMap.put(“type”, “success”);

retMap.put(“msg”, “注册成功!”);

return retMap;

/**

  • 退出登录

  • @param request

  • @return

*/

@RequestMapping(value=“/logout”,method=RequestMethod.GET)

public String logout(HttpServletRequest request){

request.getSession().setAttribute(“account”, null);

return “redirect:login”;

private boolean isExist(String name){

Account account = accountService.findByName(name);

if(account == null)return false;

return true;


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
开题报告-基于Java酒店客房管理系统设计实现 毕业设计开题报告 课 题 名 称:基于Java酒店客房管理系统设计实现 姓 名: 班    级: 指 导 教 师: 所 在 系 部: "毕业设计的 "1.毕业设计的内容: " "内容和意义 "随着科技与经济的迅速发展,人们对衣食住行的要求也逐渐提高。 " " "本课程设计的内容旨在以管理系统的方式给人们出行提供酒店预订 " " "服务,从而能够更方便快捷的帮助酒店工作人员办理客户入住酒店 " " "手续,解决不必要的麻烦。 " " "本课题的系统功能包括有酒店信息查询管理,可以方便客户了解酒 " " "店信息;顾客资格注册管理,酒店通过该功能,可方便顾客注册会 " " "员;酒店客房预订功能,客户可以根据各自的不同要求,预定满意 " " "的房间;以及支持信息修改和删除,住房更换等功能。 " " "2.毕业设计的意义 " " "对于整个酒店来说,在酒店经营状况中起决定作用的是酒店服务管 " " "理水平。如何利用先进的管理手段来提高酒店的管理水平成为酒店 " " "发展的当务之急。面对信息时代的机遇和挑战,利用科技手段提高 " " "酒店的管理无疑是一条行之有效的途径。虽然计算机管理并不是酒 " " "店管理走向成功的关键因素,但它可以最大限度地发挥准确、高效 " " "快捷等作用,对酒店管理提供强有力地支持。因此,采用全新的计 " " "算机网络和酒店客房管理系统,已经成为提高酒店的管理效率的必 " " "要途径。它可以使工作人员与管理系统之间灵活互动,实现流畅的 " " "工作流衔接,帮助酒店有效地进行客房管理,释放最大价值。酒店 " " "客房管理系统在达到节省人力资源成本的同时,还可以提高业务效 " " "率,并能够及时、准确、迅速地满足对不同顾客服务的需求。 " "文献综述 "一.实际应用方面的价值 " " "酒店通过该系统,不仅可以节省酒店管理的人力财力,还可以提高 " " "酒店服务的水平和质量,从而提升酒店的服务档次,赢得高信誉、 " " "强实力、好效益。 " " " " " "二.国内外的研究现状 " " "国外的酒店管理系统最早是与70年代初发展起来的,到了80年代, " " "国外的酒店管理系统,如EECO(Electronic Engineering " " "CO.)、HIS(Hotel Information " " "System)、Lodgistix等,整个模式已经进本定性,技术比较成熟, " " "功能也比较齐全。现在,国外酒店正向个性化发展。 " " "国内的酒店计算机管理系统最早是80年代初开始的,从事该方面工 " " "作的有清华大学自动化系的金国芬教授、西安交大和浙江省计算技 " " "术研究所。到了80年代中后期,随着国外酒店计算机管理系统和先 " " "进管理技术的大规模引进,进一步促进了我国酒店管理技术发展。 " " "如今,随着计算机在酒店中的普及应用,以及计算机技术的不断发 " " "展,酒店计算机系统的发展到了一个新的时期,洗的系统平台、新 " " "的软件功能、新的系统特点及发展方向不断涌现。 " " " " " "三.相关技术与研发基础 " " "开发工具:My Eclipse " " "开发语言:Java " " "操作系统:Windows XP " " "My Eclipse企业级工作平台(MyEclipse Enterprise Workbench, " " "简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据 " " "库的开发、发布,以及应用程序服务器的整合方面极大的提高工作 " " "效率。 " " "在结构上,MyEclipse的特征可以被分为7类: " " "J2EE模型 " " "WEB开发工具 " " "EJB开发工具 " " "应用程序服务器的连接器 " " "J2EE项目部署服务 " " "数据库服务 " " "My Eclipse整合帮助 " " "对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件," " "并通过一系列的插件来实现它们。My Eclipse结构上的这种模块化 " " ",可以让我们在不影响其他模块的情况下,对任一模块进行单独的 " " "扩展和升级。 " " "Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。J" " "ava 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛 " " "应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和 " " "互联网,同时拥有全球最大的开发者专业社群。 " " "与传统程序不同,Sun 公司在推出 Java 之际就将其作为一种开放 " " "的技术。全球

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值