酒店前台整改方案现金改挂账怎么改?

酒店客房管理信息系统
基于WEB的酒店前台管理信息系统
设计:林春辉
随着我国市场经济的迅速发展和人们生活水平的不断提高,尤其是中国加入WTO,外国竞争者的进入,酒店业的竞争愈来愈激烈。要想在竞争中取得优势,必须在经营管理、产品服务等方面提高服务管理意识。而对客房的经营起决定作用的是客房的管理。如何利用先进的管理手段,提高客房的管理水平,是每一酒店管理者所面临的重要课题。简单的服务标准已不是制胜的锦囊,只有管理做到最细微之处才能让顾客体会到酒店服务的高标准、高质量。而准确、快捷、周全往往就是最基本的成功要素。面对信息时代的挑战,利用科技手段提高企业管理无疑是一条行之有效的途径。因此采用电脑和先进的技术管理业务、财务等诸多环节已成为推动酒店业快速发展的先决条件。
揭阳特美思大酒店是揭阳地区首家现代化涉外四星级商务酒店,由中国烟草总公司深圳市公司和揭阳金叶发展公司共同投资兴建。经过十年的苦心经营,现成为揭阳著名的企业,随着规模的扩大,该酒店占地面积10000多平方米,建筑面积6000多平方米,职工人数150人,是集住宿、餐饮、娱乐、购物、商贸、旅游为一体的酒店。酒店设有:豪华套间、标准间、普间;有电子门锁系统、闭路电视、程控电话等,该公司现已有酒店管理信息系统,包括酒店客房管理子系统,餐饮子系统,门锁子系统等,随着业务的增加,竞争的加剧,原有基于C/S模式的酒店客房管理子系统已暴露出其缺点:反应时间慢,业务处理时间较长,且不能使酒店上网等不足,现急需开发一套基于B/S模式的酒店客房管理系统,本系统在这背景下应运而生。
目前现有的酒店前台管理信息子系统是在1998年由深圳市一家专门从事酒店管理信息系统的有限公司开发的,该系统基于C/S模式,拥有预订、接待、结账、客房管理以及查询服务等功能,系统实施以来,由于采用计算机所带来的便利性和高效性,酒店的业务蒸蒸日上,在社会公众中树立良好的企业形象,但随着数据的增加,业务的增加,竞争的加剧,原有的子系统已暴露出运行速度慢,处理时间长,且不能上网等缺点。随着近几年网络的飞快发展,人们的消费行为也随着改变,越来越多的人们希望通过网络迅速了解酒店信息和进行消费,基于上述原因,酒店的管理人员决定重新开发一套基于web的酒店前台管理系统。
用户希望通过使用酒店客房管理系统得到所需信息,达到提高管理水平的目的,希望新系统具有以下功能:
(1)使用计算机快速处理日常的业务,可实现酒店上网。
(2)使用电脑处理数据,实现实时查询各种入住信息。
(3)可以实时的录入住宿单、调房单和退宿单等的情况。
(4)可以实时查询客房信息、客人挂帐信息等的明细。
(5)可以建立客户的资料,方便日后建立良好的客户关系。
(6)数据的安全性:不同用户有对数据查看,修改等处理不同的权限。
(7)打印退宿报表、结帐报表等报表
1.1.3 用户功能需求
(1)密码设置:每个用户均有自己的密码,可以防止非本系统人员进入本系统;又因每个用户的权限不一致,故可防止用户越权操作。
(2)权限设置:设置每个用户的权限,使各用户在自己的操作范围内工作,不得超出自己的操作范围。只有系统管理员才能进行权限设置。
(3)数据输入:可以进行酒店各种原始数据的输入。
(4)数据查询:要求可以分别按房间编号,房间类型等进行数据查询。
(5)数据输出:根据需要打印退宿报表、结帐报表等报表
(6)其它要求:可以修改用户密码,有系统的帮助文件。
1.2可行性研究
酒店行业的发展已经达到一定程度,但是相关的基于B/C模式的管理系统软件尚未达到与之适应的程度,同时,在开发过程中,我们为了尽量给用户以方便,考虑到用户需求的实际情况,建立较为简单易明的系统服务,开发此系统无论在经济上,操作上,还是在技术上都是可行的。具体的功能研究如下:
1.2.1 经济层面
(1)必要性。如果不采用该管理信息系统,其业务过程中所产生的数据将得不到及时、有效的存储和处理,显得比较杂乱无章,难以分析、归纳和比较,影响企业的管理和决策,造成企业效率低下,浪费人力资源、时间和金钱!
(2)有益性。以较低成本开发出来的管理信息系统将整个业务流程数据进行系统的整合管理,从而能够有效地提高企业内外的信息沟通效率,节省大量的人力、时间和金钱,从而降低成本,加快业务流程,提高企业效益,给企业带来巨大的经济回报!
(3)可能性。本系统的开发成本少,时间短,无需投入太多的人力、物力和财力,完全能够以最短的时间、最少的人力和最低的成本开发出该系统。
1.2.2 技术层面
该酒店从事酒店业务已有十年,其员工本身就对电脑设备和操作有一定的认识,该系统简单,不用过多培训。该公司也拥有充足的电脑设备作为实施该管理信息系统的硬件,且所有的计算机装有Window98操作系统,两套完整的服务器以及装有Window 2000的操作系统,本人开发的基于B/S模式的酒店客房管理信息系统能,有良好的兼容性和易于在该操作系统实现,针对该公司业务流程相对简单和清晰明了的特点,完全可以开发出适合该公司应用的管理信息系统平台。
1.2.3 社会层面
(1)必要性。如果不采用该系统,将会给公司的内外沟通造成严重的障碍,不利于公司的客户关系管理和企业文化的形成,在社会上也会造成一定的影响!
(2)可能性。由于该系统能以较低的成本,较短的时间开发出来,且能极大地提高企业的效率,便于公司管理,必然能得到广大员工和公司领导的支持。但不容忽视的是由于新系统的投入使用会造成员工的不适应,必然会引起这些员工的抵触。所以公司要做好这些员工的工作。
(3)有益性。由于该系统能极大地提高企业的效率和效益,从而能提高客户和员工的满意度,进而在社会上形成一定的声誉。
& 从以上可行性分析可知,该系统开发具备技术上、经济上和社会上的可行性。
根据现状分析,用户需求分析和可行性分析,设置本系统的开发目标,其目标如下:
(1)建立一套功能完整、高效、安全、稳定的酒店前台管理信息系统。
(2)系统能够对员工日常操作进行快速、安全地反映。
(3)实现对预订、入住、退宿、调房、房态设置等信息的方便迅速录入、查询及管理,了解酒店日常业务的相关信息。
(4)界面简洁、操作方便、简单易学,用户不需要有太多的专业知识。
(5)能够方便用户、酒店管理人员通过内部网或外部网了解相关信息。
1.4.1 组织架构
该酒店属于典型的国有企业,其组织架构是直线职能制,最顶层的是总经理,在总经理的管辖下的各科室完成日常的事务,其各科室有副经理,行政室,人事部,工程部,维修部,客房部,前厅部,娱乐部,餐饮部,消防部,财务部,采购部,商务中心,总台等,副经理主要协助总经理,分别管理各部门;行政室负责日常的行政工作,发布通知和消息;人事部负责日常的人事调动,绩效考核,工资设置等;工程部负责酒店的装修,重建和扩建等;维修部负责酒店各种设备的维修工作;客房部负责客房的管理,房间的清理和整理;前厅部负责酒店的预订、接待和日常结账等工作;娱乐部负责日常的娱乐管理工作;餐饮部为酒店客人提供就餐和酒水服务;消防部负责酒店的消防工作;财务部负责酒店日常的会计审核,会计出纳等;采购部购置酒店日常之需,为酒店提供充足的物品;商务中心提供复印、打印和咨询等工作。其组织结构图如图1-1:
(3)按提交即可修改信息。
(1)用结构设计法开发新系统,条理清晰,开发速度快;
(2)采用JSP动态语言,系统稳定,效率高;
(3)运用面向对象技术,提高开发效率和增加系统的安全性;
(4)利用JavaBean处理业务,逻辑清楚,安全性高;
(5)业务流程再造,提高效率,减轻前台员工工作量和有利分工;
JavaBean技术
JSP作为一个很好的动态网站开发语言得到了越来越广泛的应用,在各类JSP应用程序中,JSP
+ JavaBean的组合成为了一种事实上最常见的JSP程序的标准. JavaBean是描述Java的软件组件模型,有点类似于Microsoft的COM组件概念。在Java模型中,通过JavaBean可以无限扩充Java程序的功能,通过JavaBean的组合可以快速的生成新的应用程序。对于程序员来说,最好的一点就是JavaBean可以实现代码的重复利用,另外对于程序的易维护性等等也有很重大的意义。JavaBean通过Java虚拟机(Java
Virtual Machine)可以得到正确的执行,具有平台无关性。
一个JavaBean有三个部分组成:
(1)属性(Property)
Bean的属性就是对象的属性,但提供了属性读取和设置的接口支持。例如一个时钟Bean可以有时区和镇铃属性,日历Bean可以有年份和月份属性。每个属性通常遵守简单的方法命名规则。这样可以很方便的找出Bean提供的属性,然后查询属性值或改变属性值,对Bean进行操作。
(2)方法(Method)
由于Bean本身是Java对象,调用这个对象的方法是与其交互作用的唯一途径。JavaBean严格遵守面向对象的类设计逻辑,不让外界访问其任何实例字段(没有Public字段)。这样,方法调用的是接触Bean的唯一途径。
(3)事件(Event)
Bean与其他软件组件交流信息的主要方式是发送和接收事件。这与对象之间通过消息通信类似。
JavaBean传统的应用在于可视化的领域,如AWT下的应用。自从JSP诞生后,JavaBean更多的应用在非可视化领域,在服务器端应用方面表现出来了越来越强的生命力。利用非可视化JavaBean,
来封装事务逻辑、数据库操作等等,可以很好地实现业务逻辑和前台程序(如JSP)的分离,使得系统具有更好的健壮性和灵活性。
本系统采用Userbean类处理用户的登录信息,两个私有变量private String
userNprivate String password存储用户信息,方法setUserName(),setPassword(),getUserName(),getPassword()对私有变量进行访问。代码如下:
public void setUserName(String userName){this.userName =
userName.trim();}
&& public String
getUserName(){ return userN }
&&& public
void setPassword(String password){this.password = password.trim();}
&& public String
getPassword(){ }
& 在web的用法入下:
import=&java.sql.*,com.empl.bean.*,com.empl.db.*,com.empl.util.*,java.util.Vector,java.io.*&
errorPage=&& %&
&& String str =
request.getParameter(&username&);
username = EncodeUtil.UnicodeToGBK(str);&
&& String pw =
request.getParameter(&password&);
password = pw.trim();
db_util = new DBUtil();
result_train = new Vector();
&& String sql =
&select 密码 from tyginfo where 姓名 ='&+username+&'&;
&& result_train=db_util.selectQuery(sql);
&& String str1 =
(String)(result_train.elementAt(0));
&& String pwd =
str1.trim();
&& if(password.equals(pwd)){
&&&&&& userbean.setUserName(username);
&&&&&& userbean.setPassword(password);
&&&&&& out.println(&登
陆 成 功,欢 迎 您 !&);&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Servlet技术
Servlet(Java服务器小程序)是用Java编写的服务器端程序,是由服务器端调用和执行的、按照Servlet自身规范编写的Java类。Servlet相当于用Java编写的CGI,但其功能和性能比CGI更加强大。其优点有:(1)可移植性;(2)功能强大;(3)安全;(4)简洁;(5)集成;(6)模块化;(7)扩展性和灵活性。
在本系统中,客户端向服务器发送请求信息,在服务器端Tomcat引擎自动把请求信息转换成Servlet程序,调用Servlet的service()方法进行处理,然后将处理结果发送到客户端,完成一个响应。其典型代码如下:
package org.apache.jsp.manager.
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import java.sql.*;
import com.empl.db.*;
import com.empl.util.*;
import java.util.V
import java.io.*;
public final class addAdminDo_jsp extends
org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent {
& private static
java.util.Vector _jspx_
java.util.List getDependants() {
&&& return
& public void
_jspService(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException, ServletException {
………………………………………
db_util = new DBUtil();
result_train = new Vector();
&& &&& String sql=&select
count(1) from tlogin where 编号='&+account+&'&;
insql=&insert into tlogin(编号,姓名,密码)
values&+&('&+account+&','&+name+&','&+password+&')&;
&& if(&0&.equals((String)db_util.selectQuery(sql).elementAt(0))){
&&&&&&&&& db_util.noOutputQuery(insql);
&&&&&&&&& out.println(&添加成功!&);
//该代码完成对管理员账号的判断和添加
4.4.3 JDBC技术
JDBC是Java的开发者——Sun的Javasoft公司制定的Java数据库连接(Java Data
Base Connectivity)技术的简称,是为各种常用数据库提供无缝联接的技术。JDBC在Web和Internet应用程序中的作用和ODBC在Windows系列平台应用程序中的作用类似。JDBC有一个非常独特的动态连接结构,它使得系统模块化。使用JDBC来完成对数据库的访问包括以下四个主要组件:Java的应用程序、JDBC驱动器管理器、驱动器和数据源。JavaSoft公司开发了JDBC
API,JDBC API是一个标准统一的SQL数据存取接口。JDBC在Internet中的作用与ODBC在Windows系列中的作用类似。它为Java程序提供了一个统一操作各种数据库的接口,程序员编程时,可以不关心它所要操作的数据库是哪个厂家的产品,从而提高了软件的通用性,而且在Internet上确实无法预料你的用户想访问什么类型的数据库。只要系统上安装了正确的驱动器组,JDBC应用程序就可以访问其相关的数据库。与后台数据库SQL
2000连接的关键代码如下:
Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);//装载驱动程序
con = DriverManager.getConnection
(jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=hotel,sa,sa);//设置连接
JavaScript技术
JavaScript是一种简单的脚本语言,直接在客户端的浏览器运行,本系统利用该技术完成对字符串长度的判断,有效字符的判断,控件是否为空的判断,网页调用以及金额的计算等,其典型代码如下:
/**检查是否为有效字符串*/
IsValidString(checkStr)
var checkOK
= &ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_&;
allValid =
(checkStr.length&1)
&allValid=
& for (i=0;i&checkStr.i++)
&&& ch=checkStr.charAt(i);
for(j=0;j&checkOK.j++)
if(ch==checkOK.charAt(j))
&&& if(j==checkOK.length)
&&&&& allValid =
& return allV
/**检查是否为空和长度判断*/
checkform()
if(document.form1.password.value=='') {
window.alert(&密码不能为空,请输入!&);
document.form1.password.focus(this);
if(document.form1.password.value.length & 6) {
window.alert(&密码长度不能小于6位数!&);
document.form1.password.focus(this);
4.4.5 面向对象技术
面向对象以对象及其行为为中心,来考虑处理问题的思想体系和方法,其问题求解的方法是从实际问题中抽象出那些封装了数据和操作的对象,通过定义属性和操作来表述它们的特征和功能,通过定义接口描述它们的地位及与其他对象的关系,通过消息传递相互联系,协同完成某一活动。在本系统中,考虑到需要经常大开数据库连接,对后台数据库进行操作,根据这些抽象出一个类DataBaseConnection,包含一个公用方法getConnection()实现对后台数据库的连接,代码如下:public
class DataBaseConnection
&&& &*一个静态方法,返回一个数据库的连接。
&&& &*这样达到了对数据库连接统一控制的目的。
&&& public static Connection
getConnection()
&&&&&& Connection
&&&&&& String
CLASSFORNAME=&com.microsoft.jdbc.sqlserver.SQLServerDriver&;
&&& &&& String
SERVANDDB=&jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=hotel&;
&&& &&& String USER=&sa&;
&&& &&& String PWD=&sa&;
&&& &&& try
&&& &&& &&
&&& &&& && Class.forName(CLASSFORNAME);
&&&&&&&&&& con
= DriverManager.getConnection(SERVANDDB,USER,PWD);
&&&&&& catch(Exception
&&&&&&&&&& e.printStackTrace();
系统也经常对后台数据库进行增加、查找和删除等操作,于是抽象一个DBUtil类,该类包含一个私有属性private int recordCount记录表的行数,方法noOutputQuery(String
sql_string)实现对没有返回数据集的操作,而方法selectQuery(String sql_string)实现有返回数据集的操作。其代码如下:
public void
noOutputQuery(String sql_string) throws SQLException {
&&&&&& Connection
newCon = DataBaseConnection.getConnection();
&&&&&& Statement
&&&&&& if (newCon
== null) {
&&&&&&&&&& //System.out.println(&no
connection&);
&&&&&&&&&& throw
new SQLException(&no connection&);
&&&&&& } else {
&&&&&&&&&& try
&&&&&&&&&&&&& stm
= newCon.createStatement();
&&&&&&&&&&&&& stm.executeUpdate(sql_string);
&&&&&&&&&& }
&&&&&&&&&& catch
(SQLException E) {
&&&&&&&&&&&&& throw
&&&&&&&&&& }
&&&&&&&&&& finally
&&&&&&&&&&&&& stm.close();
&&&&&&&&&&&&& newCon.close();
&&&&&&&&&& }
Vector selectQuery(String sql_string) throws SQLException {
&&&&&& Vector
str_array = new Vector();
&&&&&& String
strtmp = &&;
&&&&&& Connection
newCon = DataBaseConnection.getConnection();
&&&&&& Statement
&&&&&& if (newCon
== null) {
&&&&&&&&&& //System.out.println(&no
connection&);
&&&&&&&&&& throw
new SQLException(&no connection&);
&&&&&& } else {
&&&&&&&&&& try
&&&&&&&&&&&&& stm
= newCon.createStatement();
&&&&&&&&&&&&& //System.out.println(sql_string);
&&&&&&&&&&&&& ResultSet
rs = stm.executeQuery(sql_string);
&&&&&&&&&&&&& ResultSetMetaData
rm = rs.getMetaData();
&&&&&&&&&&&&& int
record_size = rm.getColumnCount();
&&&&&&&&&&&&& //System.out.println(rm.getColumnCount());
&&&&&&&&&&&&& while
(rs.next()) {
&&&&&&&&&&&&&&&&& //String
columnString = &&;
&&&&&&&&&&&&&&&&& for
(int i = 0; i & record_ i++) {
&&&&&&&&&&&&&&&&&&&& strtmp
= rs.getString(i + 1);
&&&&&&&&&&&&&&&&&&&& //columnString
+= strtmp + & &;
&&&&&&&&&&&&&&&&&&&& str_array.addElement(strtmp);
&&&&&&&&&&&&&&&&&&&& //row_count++;
&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&& }
&&&&&&&&&&&&& rs.close();
&&&&&&&&&& }
&&&&&&&&&& catch
(SQLException E) {
&&& &&&&&&&&&& //System.out.println(E);
&&&&&&&&&&&&& throw
&&&&&&&&&& }
&&&&&&&&&& finally
&&&&&&&&&&&&& stm.close();
&&&&&&&&&& }
&&&&&&&&&& return
&&&& &在JSP网页的运用如下:
db_util = new DBUtil();
fangtai=&入住&;
& String sql=&update tkfinfo set 房态='&+fangtai+&'
where 房间号='&+roomNo+&'&;
db_util.noOutputQuery(sql);
考虑系统中经常要解决中文显示问题,抽象一个EncodeUtil类,处理中文的转化问题,其关键代码如下:
class EncodeUtil
&&& public static String
UnicodeToGBK (String _str) {
&&&&&& String tmp
&&&&&& try {
&&&&&&&&&& tmp
= new String(_str.getBytes(&iso8859_1&),&gbk&);
&&&&&& } catch
(Exception e) {
&&&&&&&&&& System.out.println(e);
&&& public static String
GBKToUnicode (String _str) {
&&&&&& String tmp
&&&&&& try {
&&&&&&&&&& tmp
= new String(_str.getBytes(&gbk&),&iso8859_1&);
&&&&&& } catch
(Exception e) {
&&&&&&&&&& System.out.println(e);
(1)增加团客管理功能。系统的设计主要是针对日常的业务,即散客的预订、入住和结账,对于团体客人的预订、入住和结账等功能尚未完善,这是以后需要完善和改进之处
(2)增加多种接口。随着以后的发展,该酒店需要与政府相关部门进行数据的传输,这就涉及数据的转换和增加接口以及一些安全性问题。
(3)与其他子系统的兼容性。本系统的开发主要是满足酒店最关键和最核心的业务,随着业务的拓展以后有可能增加其他业务,需要与其他子系统如餐饮子系统兼容。
(4)增加数据挖掘功能。随着竞争的加剧,酒店的管理者需要实时了解酒店的日常运作,为以后决策提供依据,因此需要对初始数据进行二次开发和挖掘有用信息。
本次课程设计是大学期间有史以来难度最大,工作量最大的一次设计,初略计算所编写的代码行接近1万行,报告也接近50页,此次难度在于资料的收集,企业情况的了解以及技术的复杂性,具体的体会如下:
本系统是针对酒店前台的管理信息系统,是酒店系统的一个子系统,同时也是最关键的系统,收集资料时主要集中在前台的管理人员,由于前台涉及酒店敏感信息,如现金出入,酒店中高层管理人员的信息,因此前台的管理人员尤其是员工对不是熟悉的人怀有戒备之心,尤其是涉及到一些敏感信息,刚开始在收集原始资料比较困难,他们一方面比较忙,另一方面不太感兴趣,后来只能借助电脑室的朋友间接了解到一些宝贵的信息和建议,才慢慢地了解系统的现状和实际出现的问题,对后来的系统设计,分析起到关键的作用。
在系统分析之时就在考虑要用哪一种编程语言的去实现,一般的依据是根据系统的实际需要,而不是编程人员对语言的熟练程度,经过对酒店行业系统的了解,目前应用比较广泛的是基于C/S模式的,而B/S模式是其发展趋势,考虑系统的前瞻性,决定开发一个基于B/S模式的酒店管理系统,同时也是对自己一个考验和提升。在开发工具的选型上,曾请教过指导老师,老师推荐用Delphi
8.0开发,其理由是该版本对系统开发提供良好的界面和能够提高开发效率。但本人对Delphi 8.0的了解不多,不清楚其对动态网页语言的兼容性,也不知道是否类似RIA(Rich
Internet Application“丰富互联网应用程序”),它是集桌面应用程序的最佳用户界面功能与Web应用程序的普遍采用和快速、低成本布署以及互动多媒体通信的实时快捷于一体的新一代网络应用程序。后来选择Dreamweaver和选择JSP动态网页语言作为开发工具,理由是自己对Java有一定的了解和对网页开发有一定的兴趣,打算作尝试。但当选择开发时,所遇到的困难超出之前的想像,是之前的估计的几倍,曾差点放弃,改用Delphi去开发基于C/S模式的系统。实际主要的问题是涉及的知识面非常广,需要学习的东西也很多,比如Java、JSP、Tomcat服务器、http、servlet、Dreamweaver、html、JavaScript脚本语言、CSS样式等等,而且这些知识不能仅仅停留在了解,还要深入理解,其次也是比较致命的,就是周围没有同学选择JSP去开发系统,据了解能够基本用JSP去开发的,专业也就那么一两位同学,且正值放假期间,这意味着一切需要靠自己,难怪有同学对我说,佩服你的勇气,但你何必没事找事做呢,Delphi已经有了解,应该进一步去深入研究,他的这翻话有一定的道理,但其中的苦心里自知,于是在春节前的整个寒假都在研究和学习JSP语言等知识,虽然其中走了不少弯路,但学会了如何利用网络去解决问题。
遇到的主要问题:
Tomcat配置问题:Java的配置之前比较了解,在安装Tomcat之时就已配置好Java的运行环境,而安装完Tomcat
5.0,并按照书上的介绍,配置相应的运行环境,在浏览器的统一资源定位符输入:http://localhost:8080/,即可见到一只可爱的小猫,当见到小猫之时心里很高兴,瞒以为Tomcat的服务器的配置也是这么简单,随即按照书上编写一个简单的代码,在浏览器运行,却始终运行不了。几次三翻的检查相关的配置,却找不到错误,而且可以见到一只小猫,证明运行环境配置无误,后来借助网络,才了解到所编写的文件要放到Tomcat安装目录下的webapps的文件下,或者修改Tomcat的配置文件web.xml的相关内容,于是按照此种办法,但还是运行不了,后来无意中在网上看到,还要编写自己的配置文件,于是自己编写了比较简单的配置文件web.xml,跟所编写的JSP网页放在同一个目录下,再浏览器运行,运行正常。
JDBC的连接问题:原先以为按照书上的例子模仿就可以顺利连接到后台数据库,没想到查找光盘却找不到驱动程序,书上也没提示到哪里去找,只好到/jsp去查找,好不到很多驱动程序,但都是其他 厂商提供的,全部要收费,无意中在网页看到微软有免费的SQL
Server 2000的驱动程序,非常兴奋,没想到微软也会为竞争对手提供免费的驱动程序,直接到微软网站下载,并把压缩文件放到Tomcat的路径下,原以为这回可以顺利运行,却出现不能找到SQL
Server的端口,无奈之下又只能求助网站,才了解到微软为提高SQL Server 2000的安全性,把SQL Server 2000的监听端口给屏蔽了,只能到微软的软件下载SQL
Server 2000的补丁,安装完之后,以后的数据库连接没出现任何的不稳定和问题。真是一破三折。
中文显示问题:由于java采用的是统一编码unicode,存取采用64位,而jsp网页采用gb2312编码,在网页经常显示乱码如????形式,这是作JSP网页经常碰到的问题,由于经常要转换,于是编写一个EncodeUtil类,该类有两个方法:public
static String UnicodeToGBK (String _str) {
&&&&&& String
&&&&&& try
&&&&&&&&& tmp
= new String(_str.getBytes(&iso8859_1&),&gbk&);
catch (Exception e) {
&&&&&&&&& System.out.println(e);
&&&&&& return
&& }主要处理后台中文数据在JSP显示的问题,而另一个方法public
static String GBKToUnicode (String _str) {
&& String tmp =
&&&&&& try
&&&&&&&&& tmp
= new String(_str.getBytes(&gbk&),&iso8859_1&);
catch (Exception e) {
&&&&&&&&& System.out.println(e);
&&&&&& return
&& }主要处理JSP网页中文数据添加到后台数据库,使用时只要在JSP网页包含这个类如import=“com.empl.util.*”,然后直接调用类EncodeUtil的方法即可,例如:String
str4 = request.getParameter(&memo&);
String memo = EncodeUtil.UnicodeToGBK(str4);
数据类型的问题:根据业务的要求需要经常把数据添加到后台数据库,这就涉及到数据的转换,一般把整型或浮点型转换为字符型比较容易,利用各对象的toString()方法就可以,或者把字符型转为整形或者浮点型,利用对象Integer的方法parseInt()或者对象float的方法parseFloat()即可解决,但对于日期是比较头疼的一件事情,因为在java.util.*的包里面有两种日期类型如java.util.*和java.util.sql.*两个包里面的两个日期类Date,需要经常对这两个日期进行转换,但比较麻烦是跟SQL
Server的日期类型datetime和smalldatetime不相匹配,主要是SQL里面的日期类型精确到秒,从后台数据库取出很不方便或者添加到后台数据库也麻烦,后来索性把日期拆分为年、月、日,如:int
getnYear=Integer.parseInt(nDate.substring(0,4));然后再重新组合如:String
nDate=getnYear+&-&+getnMonth+&-&+getnD这样才得到满意的解决。
JavaScript脚本调试问题:在使用诸多语言当中,最不喜欢的就是JavaScript脚本语言,主要是数据类型不严谨,经常出现数据类型的不匹配,却不知道错误出现在哪,其次是出现错误,却一点不给提示,或者指出错误出现在哪个地方,只能慢慢地去研究代码,这对初学者是比较困难的事情,也浪费了不少时间和精力,但由于其是运行在客户端,对数据的校验又有其强大的功能,以及可以实现一些动态图片或文字,使自己不能不去使用和研究它,希望RIA能够尽早成为普及,提高程序员的开发效率和丰富浏览器的界面。
欣慰之处:此次欣慰之处反倒不在于自己辛辛苦苦用JSP开发一个系统,而是在于提出一些有创新性的想法,主要体现在业务流程再造,传统酒店对客人离店之后要对房间进行清扫,此时不能入住,等待清扫完毕,才可以入住,一般清扫完毕楼层的员工会打电话到前台,请前台的员工更新系统,这增加前台员工的工作量,其次分工也不太清楚,再酒店繁忙之时更是令前台的员工忙不过来,深知客房已清理完毕可以入住,但信息却没能及时反映,酒店会很可能会因此失去客户,甚至影响酒店良好的形象,在分析技术的可行性和楼房员工的工作量之下,本人设想把这一工作从前台的员工日常工作分离出来,把它归入到各楼房的员工,具体作法是在各楼层设置一台客户机,员工可以立即对系统更新,系统可自动通知到前台,前台的员工通过刷新可立即了解酒店的情况,提高效率和减轻工作量,提高操作的准确性,其缺点是在各楼层增加一台电脑,投资二万元左右,但随着业务的增加,其优点甚过其不足,值得推广和采用。
一分耕耘,一分收获。经过一个半月的艰苦奋战,自身技术提高极快,对技术的使用更显得游刃有余。而对项目开发的流程有进一步的了解,通过设计,加深项目开发的程序和步骤。但技术是无底洞,需进一步的钻研。
最后,感谢张延林老师对MIS课程的教授和对课程设计的悉心指导以及对本人的关心,感谢梁上燕同学支持支持和鼓励,没有她很难坚持和取得一定的成果,感谢所有关心和参与本系统的友好人士!
(图书)1 张应利,张立厚,高京广,陈鸣中.信息管理系统.世界图书出版社,2002-8
(图书)2 牛越胜.现代酒店管理信息系统.广东旅游出版社,2004-11
(图书)3 飞思科技产品研发中心.Java 2应用开发指南(第二版).电子工业出版社,2003-7
(图书)4 飞思科技产品研发中心.JSP应用开发详解(第二版).电子工业出版社,2004-9
(图书)5 朱福喜,尹为民,余振坤.Java语言与面向对象程序设计.武汉大学出版社,2002-12
(图书)6 Hans Bergsten著,何健辉,许俊娟译.JSP设计,中国电力出版社,2002-2
(图书)7&
孙卫琴,李洪成.Tomcat与Java Web开发技术详解.电子工业出版社,2004-11
(图书)8 武延军,黄飞跃等.精通JSP编程技术.人民邮电出版社,2001-8
(图书)9〔美〕Christian Crumlish,Lucinda Dykes著,王军等译.Dreamweaver
MX 2004从入门到精通(中文版).电子工业出版社,2004-9
(图书)10 韩江,刘晓亮等.HTML&XML网页标记语言易学通.人民邮电出版社,2001-1
(图书)11王克杰,刘敏.Dreamweaver MX网页制作 入门与进阶教程.北京希望电子出版社,2003-2
(图书)12〔美〕Michael Moncur 著,闻 芳,马昌超,刘景华等译.JavaScript实战解析.机械工业出版社,1997-7
(图书)13郑阿奇主编,刘启芬,顾韵华编著.SQL Server实用教程.电子工业出版社,2002-8
(图书)14〔美〕Jeffrey A.Hoffer Mary B.Prescott Fred
R.McFadde著,施伯乐,杨卫东,孙未未等译.现代数据库管理.机械工业出版社,2004-9}

我要回帖

更多关于 酒店前台整改方案 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信