jsp酒店管理网站大作业.docx
《jsp酒店管理网站大作业.docx》由会员分享,可在线阅读,更多相关《jsp酒店管理网站大作业.docx(44页珍藏版)》请在冰豆网上搜索。
![jsp酒店管理网站大作业.docx](https://file1.bdocx.com/fileroot1/2023-1/10/838e596c-8c10-4a7f-bad5-91414eb4c482/838e596c-8c10-4a7f-bad5-91414eb4c4821.gif)
jsp酒店管理网站大作业
大作业期终报告
课程名称:
JSP/Servlet程序设计
大作业名称:
芊芊客栈人员管理系统
院系:
计算机科学与工程学院
专业:
软件工程
班 级:
卓越软件121
学号:
092112137
姓名:
孙慧
授课教师:
徐江
开课时间:
2014至2014学年
常熟理工学院计算机科学与工程学院制
学生姓名___________成绩____________
目录
1.设计目的和任务4
2.开发环境5
2.1硬件环境5
2.2软件环境5
3.设计题目5
3.1题目名称5
3.2题目详细描述5
3.3功能要求5
4.设计与实现6
4.1数据库的设计6
4.2登录模块9
4.2.1用户登录9
4.2.2注册账号:
10
4.2.3找回密码:
10
4.3超级管理员11
4.4主页面14
4.4.1页面介绍14
4.4.2当前系统时间及退出系统14
4.4.3个人资料15
4.4.4客户资料15
4.4.5客房资料18
4.4.6娱乐18
4.4.7中文格式20
5.个人总结20
6.参考书籍20
1.设计目的和任务
该实验的目的是设计一个网站用于酒店的前台工作人员及客户资料管理的管理,设计过程中运用了一个超级管理员账号,该超级管理员像普通前台工作人员一样登录,但他具有对普通管理员进行查询和删除的权利。
普通管理员对自己的账号有注册、登录、找回密码以及对个人资料修改的权利,普通管理员对客户资料具有增、删、改、查的权利,并对一些情况作出回应,对客房入住作出相应的设计,并增添娱乐版块。
通过整个课程的设计让我们巩固和加深对本课程基本知识的理解和掌握;熟悉使用JSP语言编程;培养撰写设计报告的能力。
2.开发环境
2.1硬件环境
2.2软件环境
Windows8操作系统。
IE浏览器
MyEclipse开发软件。
tomcat服务器。
Photoshop图片制作软件。
3.设计题目
3.1题目名称
芊芊客栈人员管理系统
3.2题目详细描述
设计一个酒店管理系统中关于人员的管理系统,实现增、删、改、查等等功能。
本系统的开发包括前台的界面功能设计和后台的数据库的设计,前台采用jsp技术开发,使用的是装载了tomcat的eclipse软件,后台用的mysql数据库。
3.3功能要求
1、超级管理员可以以列表的形式查看和删除普通管理员的基本信息,普通管理员对自己的账号有注册、登录、找回密码以及对个人资料修改的权利,普通管理员对客户资料具有增、删、改、查的权利,并对一些情况作出回应。
结构图如下:
2、数据库总共设计了两个,一个是管理员的数据库(user),另一个是客户的数据库(customer)。
4.设计与实现
4.1数据库的设计
管理员(user)表:
顾客(customer)表:
数据库中总共设置了两张表,一个user表和一个customer表。
user表是所有管理员的信息,其中包括用户的账号、用户的密码、密码提示、姓名、性别和年龄。
customer表是所有入住顾客的信息,其中包括顾客的ID、顾客的客房号、顾客的名字、生源地、性别、身份证号、入住人数、入住日期、入住天数、离开日期、客房价位、总消费以及备注。
下面是数据库连接的代码:
<%
request.setCharacterEncoding("UTF-8");
Stringurl="jdbc:
mysql:
//localhost:
3306/qq?
user=root&password=root";
Stringsql="select*fromuser";
Connectionconn=null;
Statementstmt=null;
ResultSetrs=null;
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection(url);
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
%>
<%
while(rs.next()){
/*执行代码*/
rs.close();
stmt.close();
conn.close();
}
4.2登录模块
登录模块包括用户登录、清空、注册账号和找回密码,页面设计上我采用的是表格的镶嵌是页面看起来清爽简洁。
4.2.1用户登录
用户登录时会判断用户账号在数据库中是否存在以及用户密码错误做出相应的回应:
if(rs.next()){
if(pwd.equals(rs.getString("paw"))){%>
forwardpage="left.jsp">
paramname="uname"value="<%=uname%>"/>
forward>
<%}
else{%>
alert("错误信息,密码输入错误!
!
!
");
history.back();
<%
}
}else{%>
alert("错误信息,此用户不存在!
!
!
");
history.back();
<%
}
4.2.2注册账号:
账号注册成功之后,跳转提示注册成功,并给出信息,确定之后再次返回登陆首页。
这个实现过程我主要运用了页面之间的传值以及mysql插入语,如果账号已存在也会提示存在信息,当然账号、密码和提示是必须要填的不然会提示如下信息:
4.2.3找回密码:
找回密码在数据库中采用select查询,其余与注册账号有异曲同工之处。
4.3超级管理员
超级管理员具有查看普通管理员和删除普通管理员的权利,超级管理员像普通管理员一样登录,但会跳转到不同的页面。
超级管理员的账号是111,密码是admin。
当点击删除18号管理员时页面再次跳转到没有18号用户的界面:
以下是管理员看到的界面:
从图中可以看出数据库中所有的信息都被写入到表格,超级管理员可以通过点击后面的“删除”来删除普通管理员。
这一部分我用了一些时间来完成,为读取表中所有数据,我写了两个java包,其中我设定一个数组,先让user表中数据一一读入数组缓存,jsp中再从数组中一一把他读入表格:
把user表的数据读入数组:
packagecn.edu.bzu.dao;
importjava.sql.*;
importjava.util.ArrayList;
importjava.util.List;
importcn.news.jsp.entity.Title;
publicclassTitleDAO{
publicListreadFirstTitle(){
List
list=newArrayList();
Connectioncon=null;
PreparedStatementpsmt=null;
ResultSetrs=null;
try{
Class.forName("com.mysql.jdbc.Driver");
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}
try{
con=DriverManager.getConnection("jdbc:
mysql:
//localhost:
3306/qq","root","root");
Stringsql="select*fromuser";
psmt=con.prepareStatement(sql);
rs=psmt.executeQuery();
while(rs.next())
{
intid=rs.getInt("userId");
Stringpaw=rs.getString("paw");
Stringtips=rs.getString("tips");
Stringname=rs.getString("name");
Stringsex=rs.getString("sex");
intage=rs.getInt("age");
Titletl=newTitle(id,paw,tips,name,sex,age);
list.add(tl);
}
以下是jsp中把数据读入表格:
<%
inti=0;
TitleDAOdao=newTitleDAO();
List
list=dao.readFirstTitle();for(Titletl:
list)
{%>
<%=tl.getId()%> | <%=tl.getPaw()%> | <%=tl.getTips()%> | <%=tl.getName()%> | <%=tl.getSex()%> | <%=tl.getAge()%> | index=<%=tl.getId()%>&name1=<%=name%>">删除 |
<%}
对删除部分我做了很多尝试,最后选择了超链接传值删除,然后通过传递来的值来删除表中某行数据,别看这一点,可是费了我好大的劲。
4.4主页面
4.4.1页面介绍
当管理员登陆后就可以看到如上界面,整体布局我是采用表格的形式完成的,在最上层的表格右边显示的是当前管理员的账号、当前系统时间以及退出系统按钮,在最左边显示的是四个超链接按钮,当点击他们任何一个时相对应的二级界面就显示到了最右边的大框里。
4.4.2当前系统时间及退出系统
当前系统时间实现代码:
<%out.print(newjava.text.SimpleDateFormat("yyyy-MM-ddhh:
mm:
ss").format(newDate()));%>
退出系统代码:
70px;height:
25px;border:
0;background:
#069dd4;align:
center"value="退出系统"onclick="window.location.href='inn.jsp'">
4.4.3个人资料
点击个人资料时,显示当前管理员的个人资料如下所示:
更改1账户的名字为“轩轩轩轩”,然后查看数据库中如下:
注:
这里的用户id是不能更改的。
表明更改成功。
4.4.4客户资料
点击客户资料时,如下所示:
是一张客户登记表,整个表使用表单、表格设计的。
其中性别用了单选按钮,客房价位用了下拉框,总消费不需要填,自己自动会算,相关代码如下:
性别:
男 女
价位:
80120180300
总消费:
functionshow(){
vards=parseFloat(document.getElementById("dates").value);
varjw=parseFloat(document.getElementById("jw").value);
vartt=ds*jw;
document.getElementsByName("total")[0].value=tt;
}
上图还有一个查询功能,点击查询后跳转如下界面:
我采用了选择性的查询,管理员课通过顾客id、顾客房间号以及顾客姓名来查询他的资料:
当然顾客资料也可以随意更改,当然“编号”是不能随意更改的,右上方的“删除”链接就可以删除该客户的资料,点击返回页面就可以返回到顾客注册及查询页面。
对于文本框里的值是如何在页面间传递的,代码如下所示:
接受来自前一个页面中文本框的值,关键是每个文本框的name值:
Stringbianhao=request.getParameter("userbh");
Stringkefang=request.getParameter("userkf");
Stringuname=request.getParameter("username");
根据编号查询:
sql="select*fromcustomerwherebID='"+bianhao+"'";
将查询结果从数据库中取出:
forwardpage="customer-chaxun.jsp">
paramname="bh"value="<%=rs.getObject
(1)%>"/>
paramname="kf"value="<%=rs.getObject
(2)%>"/>
paramname="xm"value="<%=rs.getObject(3)%>"/>
paramname="dz"value="<%=rs.getObject(4)%>"/>
paramname="xb"value="<%=rs.getObject(5)%>"/>
paramname="sf"value="<%=rs.getObject(6)%>"/>
paramname="ts"value="<%=rs.getObject(7)%>"/>
paramname="rd"value="<%=rs.getObject(8)%>"/>
paramname="ds"value="<%=rs.getObject(9)%>"/>
paramname="ld"value="<%=rs.getObject(10)%>"/>
paramname="jg"value="<%=rs.getObject(11)%>"/>
paramname="hf"value="<%=rs.getObject(12)%>"/>
paramname="rk"value="<%=rs.getObject(13)%>"/>
forward>
接受来自上一个jsp文件中的传入值:
<%
Stringbh=newString(request.getParameter("bh"));
Stringkf=newString(request.getParameter("kf"));
Stringxm=newString(request.getParameter("xm"));
Stringdz=newString(request.getParameter("dz"));
Stringxb=newString(request.getParameter("xb"));
Stringsf=newString(request.getParameter("sf"));
Stringts=newString(request.getParameter("ts"));
Stringrd=newString(request.getParameter("rd"));
Stringds=newString(request.getParameter("ds"));
Stringld=newString(request.getParameter("ld"));
Stringjg=newString(request.getParameter("jg"));
Stringhf=newString(request.getParameter("hf"));
Stringrk=newString(request.getParameter("rk"));
%>
4.4.5客房资料
客房资料部分不是我设计的重点,管理员及客户的资料才是我的重点,所以我先把他的大致模块给设计出来了,上面的数字代表房间号,“有人”代表有人住,“空房”代表无人住。
4.4.6娱乐
娱乐是我特意加的一个小模块,主要目的是排遣管理员的无聊,我加入播放mv视频的版块,采用的是.avi格式的文件,其中可以实现调节声音大小、暂停以及快进功能,声音很清晰。
如下图所示:
代码如下:
MV欣赏 |
6BF52A52-394A-11D3-B153-00C04F79FAA6>
|
4.4.7中文格式
在编码过程中向数据库中存入中文,会出现乱码,最后我终于用一句话写在每个用到数据库连接的jsp中就解决了,就是全部转化为UTF-8格式。
代码如下:
request.setCharacterEncoding("UTF-8");
5.个人总结
这次实验花了我很多时间去做,这个过程都是我一个人完成的,这让我从中学到了很多知识。
我主要是完成了关于所有在酒店管理系统中涉及到的人员管理部分,主要功能是增删改查,但我做的却非常全面,我把几乎每种可能出现情况都抓住了,我的目的不在乎它有多少功能,而是尽可能地完善所有可能出现的bug,所以我觉得我算是实验中想的多考虑多的人。
老师说希望我把客房部分再完善下,我想等我有空余时间的时候一定会完善起来。
整个实验我大概建了三十多个jsp,一个数据库,我很注重布局上的美观,花了很长时间来设计每个页面,让每个页面看起来清爽自然。
在数据库连接上花了一些时间来调通,对数据在各jsp之间的传递以及与数据库之间的传递部分花了我挺长时间,我通过书和XX才得以解决,我们看到的能在前台看到所有管理员信息的表,我也花了很长时间,从新用java来实现的,还有一个就是超链接传值。
总之,这次试验用了我很多心血,我从中学会了很多,也了解到了jsp在页面设计中的大致设计过程,果然自己动手实践会比看书来的深刻。
6.参考书籍
李建刚,秦兴桥,郑雨贝,《JSP网络编程技术与实践》,清华大学出版社,2008年6月第一版。
____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________