基于eclipse、tomcat的酒店管理系统――房间预订模块(含源文件)

基于eclipse、tomcat的酒店管理系统――房间预订模块(含源文件)
基于eclipse、tomcat的酒店管理系统――房间预订模块(含源文件)

大理学院数学与计算机学院

综合性实验报告

学年学期:

课程名称: J2EE 专业:

班级:

学号:

姓名:

成绩评定:

一、项目名称:酒店管理系统——房间预订模块 二、功能性需求 1、系统描述

随着信息的迅速发展,信息化管理已经引入并且应用到各行各业的管理领域中去,而一个大型的机电将管理信息化也是势在必行的,大量的客流量,同时还要存储各项业务的信息不断更换的客流信息,员工个人信息和工资发配等任务,若要时还是用人力管理不仅将会影响到盈利的同时无异于又给每一位员工带来了很大的工作量!

从系统安全可靠性,系统功能,软件运行环境等方面对酒店管理系统进行需求分析,说明系统的合理性与可行性,阐述了系统的运行情况。本文采用MVC 模式设计并实现了一个酒店管理系统,该系统包括系统设置、日常管理、库存管理、客户房间预定管理、订餐管理等。这里主要描述客户房间预订管理。 2、软件功能详细描述

本系统主要是开发一个酒店管理系统,该系统包括系统设置、日常管理、库存管理、客户房间预定管理、订餐管理等功能。本系统可应用于小型的酒店管理,本次综合性作业完成的是酒店管理系统中的一个小功能模块——房间预订模块。用户可以在网上申请注册个人或企业用户,进行网上客房预订和查询办理等。系统功能架构的用户房间预订模块功能结构图,如图所示。

3、业务流程(业务逻辑)分析

(1)注册:用户进入酒店网页首页,如果是老顾客,直接输入用户名密码进行登录,如果是新顾客,进行注册过再进行登录。

(2)浏览酒店客房状态信息:顾客通过查寻可以看到空闲房间剩余列表。 (3)预订:选择房间点击预订,填写相关信息,如选择到店日期、离店日期、联系方式等进行预订。

(4)查看预订信息:从预订房间查看,可以看到客户自己当前订单,已入住用户可以查看到自己的入住单。

用户房间预订模块

客房预订情况查询

客房预订

4、数据流分析

该系统数据流程比较简单,管理员可以添加酒店客房信息,然而这些信息用户是可以浏览的,但是用户没有权限对这些信息进行修改,这些信息对于用户而言是单向的。对于预定信息,管理员可以增删改查预定信息。 三、系统总体设计 1.MVC 设计思想

MVC 模式全名是Model View Controller ,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范,把Web 应用的输入、输出和处理流程按照Model 、View 和 Controller 分成三层,最典型的MVC 就是JSp +servlet +javabean 的模式。Event(事件)导致Controller 改变Model 或View ,或者同时改变两者。只要Controller

开 始

进入酒店管理系统

进入房间预订模块 用户登录 用户名是否存在

判断用户是否存在

新用户注册

否,点击链接

显示用户注册信息

房间列表页面

房间预订

填写相关预订信息

显示预订成功信息

预订是否成功

判断预订是否成功

返回

登陆成功 是

显示预订失败信息

点击链接

结束本次预订

改变了Models 的数据或者属性,所有依赖的View 都会自动更新。类似的,只要

Controller 改变了View ,View 会从潜在的Model 中获取数据来刷新自己。

Model (模型)是应用程序中用于处理应用程序数据逻辑的部分。用于与用户交互,可以用HTML 、JSP 、FreeMarker 等实现。

View (视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。用于表示业务数据和实现业务逻辑,通常可以用JavaBean 或EJB 来实现

Controller (控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。控制层可以用Servlet 实现。

Web 开发中的MVC 请求——响应模型:

本功能模块采用Model2实现房间的预订,按照MVC 分层设计的思想,共需要编写14个文件,对应的文件名及功能描述如下表所示: 层 文件名

描述

视图层

Login.html 登录页面,注册过的用户直接登录,进入系统 Register.html 用户信息注册页面,包括姓名、性别、年龄、用户类型等信息

RoomList.jsp

房间列表信息,用户可选择(多选)房间

Order.jsp

订单填写页面,显示预订房间信息 OrderResult.jsp 订单预订成功页面,显示预订信息

Failure.jsp

订单预订失败页面,可返回房间列表页面重新预订 控制器层 UserServlet.java

用户信息控制器,处理用户登录 RoomServlet.java 房间信息控制器,处理预订信息 OrderServlet.java 订单信息控制器

模型层 User.java 模型部分JavaBean,包括姓名、性别、密码等属性 Room.java

房间实体类,包括编号、名称、床型、价格等属性 Order.java

订单实体类,包括联系人姓名、联系方式、到店时间等信息

OrderDetail.java 订单明细实体类,包括房间编号、数量等信息 JdbcDao.java

数据库操纵通用类,处理与数据库连接的相关操作

2.MVC各组成部份及调用关系

四、系统实现

(一)关键代码

1.登陆界面Login.html

登陆页面

"

用户名
密码

如果你没有账号可以点击注册

2.注册页面Register.html

注册页面

信息注册

姓名:

年龄:

性别:


地址:

电话:

用户类型:

3.房间列表页面RoomList.jsp

<%List roomList=new ArrayList();

Map room0=new HashMap();

room0.put("roomName","精致山景房");

room0.put("roomNo","0");

room0.put("zc","双早");

room0.put("cx","大/双");

room0.put("wlan","免费");

room0.put("msj","¥1788");

room0.put("price","¥558");

roomList.add(room0);

Map room1=new HashMap();

room1.put("roomName","商务山景房");

room1.put("roomNo","1");

room1.put("zc","双早");

room1.put("cx","大/双");

room1.put("wlan","免费");

room1.put("msj","¥1988");

room1.put("price","¥608");

roomList.add(room1);

Map room2=new HashMap();

room2.put("roomName","商务山景房");

room2.put("roomNo","2");

room2.put("zc","双早");

room2.put("cx","大/双");

room2.put("wlan","免费");

room2.put("msj","¥1788");

room2.put("price","¥658"); roomList.add(room2);

Map room3=new HashMap();

room3.put("roomName","商务海景房"); room3.put("roomNo","3");

room3.put("zc","双早");

room3.put("cx","大/双");

room3.put("wlan","免费");

room3.put("msj","¥1788");

room3.put("price","¥608"); roomList.add(room3);

Map room4=new HashMap();

room4.put("roomName","精致海景房"); room4.put("roomNo","4");

room4.put("zc","双早");

room4.put("cx","大/双");

room4.put("wlan","免费");

room4.put("msj","¥1788");

room4.put("price","¥608"); roomList.add(room4);

Map room5=new HashMap();

room5.put("roomName","精致海景房"); room5.put("roomNo","5");

room5.put("zc","双早");

room5.put("cx","大/双");

room5.put("wlan","免费");

room5.put("msj","¥1788");

room5.put("price","¥608"); roomList.add(room5);

Map room6=new HashMap();

room6.put("roomName","精致海景房"); room6.put("roomNo","6");

room6.put("zc","双早");

room6.put("cx","大/双");

room6.put("wlan","免费");

room6.put("msj","¥1788");

room6.put("price","¥608");

roomList.add(room6);

Map room7=new HashMap();

room7.put("roomName","行政山景房");

room7.put("roomNo","7");

room7.put("zc","双早");

room7.put("cx","大/双");

room7.put("wlan","免费");

room7.put("msj","¥2688");

room7.put("price","¥888");

roomList.add(room7);

%>

request.setCharacterEncoding("utf-8");

String[]

selectedRooms=request.getParameterValues("selectedrooms");

for(int i=0;i

Map room=roomList.get(i);

//int

roomid=Integer.valueOf(room.get("roomName").toString());

out.println(""+

""+room.get("roomName").toString()+""+""+room.get("zc"). toString()+""+""+room.get("cx").toString()+""+""+ro om.get("wlan").toString()

+""+""+room.get("msj").toString()+""+""+room.get("p rice").toString()+""

+""+"

value='1' size='3' >"+"");

}

<%}session.setAttribute("selectedRooms",selectedRooms); %>

4.订单预定页面Order.jsp

下面是预订房间信息

<% request.setCharacterEncoding("utf-8");

String[]selectedRooms=request.getParameterValues("selectedrooms"); for(int i=0;i

Map room=roomList.get(Integer.valueOf(selectedRooms[i]));%>

<%}session.setAttribute("selectedRooms",selectedRooms); %>

房型早餐床型宽带

预订价房价
<%

out.println(room.get("roomName"));%>

<%

out.println(room.get("food"));%>

<%

out.println(room.get("bed"));%>

<%

out.println(room.get("web"));%>

<%

out.println(room.get("money1"));%>元

<%

out.println(room.get("money2"));%>元

联系方式(请认真填写)

预计到店日期:预计离店日期:

name="time2" size="15">

姓名:

size="15">

*必须填,真实姓名,以便联系
手机号码:*手机号码和固定电话必须填一个
固定号码:
电子邮箱:建议填写


5.预定结果页面OrderResult.jsp

订单显示页面

订单预订成功页面

<%request.setCharacterEncoding("utf-8");

String time1=request.getParameter("arrive");

String time2=request.getParameter("leave");

String name=request.getParameter("name");

String shouji=request.getParameter("shouji");

String dizhe=request.getParameter("dizhe"); %>

尊敬的用户您已经成功预订!您的信息如下!

预计到店日期:<%out.println(time1); %>

预计离店日期: <%out.println(time2); %>

姓名:<%out.println(name); %>

手机号码:<%out.println(shouji); %>

地址:<%out.println(dizhe); %>

6.Failure.jsp——订单预订失败页面,可返回房间列表页面重新预订

订单显示页面

订单预订显示页面

尊敬的用户您的预订失败!请重新预订!

如果你没有预订可以点击预订

https://www.360docs.net/doc/b99548128.html,er.java——用户实体类,包括姓名、年龄、性别、地址、电话等属性package edu.dali;

public class User {

private String name;

private String age;

private String sex;

private String adress;

private String phone;

private String usertype;

public String getName() {

return name;

}

public void setName(String name) {

https://www.360docs.net/doc/b99548128.html, = name;

}

public String getAge() {

return age;

}

public void setAge(String age) {

this.age = age;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

…………

}

注:8、9、10这几个实体类属性定义与6相类似,不再一一列举。

8.Room.java——房间实体类,包括编号、名称、床型、价格等属性。

9.Order.java——订单实体类,包括联系人姓名、联系方式、到店时间等信息。

10.OrderDetail.java——订单明细实体类,包括房间编号、数量等信息。

11.JdbcDao.java——数据库操纵通用类,处理与数据库连接的相关操作。

package Dao;

import java.sql.Connection;

import java.sql.ResultSet;

public class JdbcDao {

static public Connection getConnection(String url,String root,String pwd){

return con;

}

static public int insert(String sql){

return 1;

}

static public ResultSet select(String sql){

}

}

https://www.360docs.net/doc/b99548128.html,erServlet.java——用户信息控制器,处理用户登录

13.RoomServlet.java——房间信息控制器,处理预订信息

package edu.dali.hotel.servlet;

import java.io.IOException;

import java.util.List;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.*;

import javax.servlet.*;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

import edu.dali.hotel.model.Room;

import edu.dali.hotel.service.RoomService;

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

List roomList=RoomService.getRoomList();

HttpSession session=request.getSession();

session.setAttribute("roomList", roomList);

response.sendRedirect("../room-list.jsp");

}

}

14.OrderServlet.java——订单信息控制器

package edu.dali.hotel.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

import edu.dali.hotel.service.*;

import edu.dali.hotel.model.*;

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

String reqUrl=request.getServletPath();

if(reqUrl.equals("servlet/OrderForm")){

HttpSession session=request.getSession();

if(session.getAttribute("userName")==null||session.getAttribute(" userName")==""){//login.jsp

}else{//order.jsp

}

}else if(reqUrl.equals("servlet/OrderSubmit")){

//订单提交处理

String custName=request.getParameter("custName");

Order order=new Order();

order.setCustName(custName);

String[] roomNos=request.getParameterValues("roomNo");

for(int i=0;i

OrderDetail orderDetail=new OrderDetail();

orderDetail.setRoomNo(roomNos[i]);

order.getOrderDetailList().add(orderDetail);

}

OrderService.inserOrder(order);

}

}

}

(二)系统界面截图

1、用户在浏览器里输入网址后显示酒店房间列表信息,用户可选择(多选)房

间,点击“提交”后,如果是已有用户则进入登录页面,如果是新用户则进入注册页面。

2、进入登陆界面,输入用户名和密码,点击“登陆”按钮,服务器到数据库中寻找用户相关信息,如果存在该用户则跳转到房间列表页面选择预订房间;若失败,则需要点击链接“注册”用户,填写相关注册信息,填写完成后显示注册信息再回到登录界面。

3、新用户注册,填写相关注册信息,填写完成后点击“注册”按钮显示注册信息再回到登录界面。

4、新用户注册成功显示注册信息。

5、用户登陆成功跳转到房间列表页面选择预订房间;点击“提交”按钮,跳转到房间预订页面填写相关预订信息,填写完成后点击“提交并预览订单”按钮进入订单显示界面。

6、若预订失败则跳转到订单预订失败提示页面,点击链接按钮“预订”重新填写相关预订信息后预订房间。

7、若预订成功则跳转到订单预订成功显示界面,显示订单预订信息。

四、实验总结

本次实验由于相关知识没有熟练掌握和能力有限,在实现该系统的房间预订模块功

能时遇到问题,经过修改调整后完成实验,但实验结果没有达到预期效果,功能实现存在问题。

通过实验对MVC模式有了了解,知道了MVC模式的优点有:

①实现一个模型的多个视图;

②采用多个控制器;

③当模型改变时,所有视图将自动刷新;

④所有的控制器将相互独立工作。

这就是MVC模式的好处,只需在以前的程序上稍作修改或增加新的类,即可轻松增加许多程序功能。以前开发的许多类可以重用,而程序结构根本不再需要改变,各类之间相互独立,便于团体开发,提高开发效率。

相关主题
相关文档
最新文档