目录
基于JSP的旅游景点网站设计与实现与实现 I
摘要 I
Abstract II
1 概述 1
1.1 项目研究背景 1
1.2 研究目的及意义 1
1.3 开发软件介绍 1
1.3.1技术介绍 1
1.3.2 SQL2005数据库 3
2 系统分析 4
2.1可行性研究 4
2.1.1经济上的可行性 4
2.1.2技术上的可行性 4
2.1.3操作上的可行性 4
2.2开发结构分析 4
2.3功能需求分析 5
2.4 数据流图 6
2.5 业务流程分析 7
2.6 数据字典 8
3 网站总体设计 11
3.1系统功能描述 11
3.2系统界面设计 11
3.3系统功能结构图 11
3.4系统设计目标 12
3.5系统实现的软硬件平台 13
4 数据库设计 14
4.1数据库概念结构设计 14
4.2数据库逻辑结构设计 17
4.3本章小结 19
5 系统详细设计 20
5.1主界面模块设计 20
5.2用户注册模块设计 24
5.3旅游景点模块设计 26
5.4酒店预定模块设计 28
5.5 后台管理设计 30
5.5.1后台登录模块设计 33
5.5.2旅游景点模块设计 35
5.5.3线路管理模块设计 38
6 系统测试 40
6.1 测试的任务及目标 40
6.1.1测试的任务 40
6.1.2测试的重要性及目标 40
6.2测试方案 41
6.2.1模块测试 41
6.2.2集成测试 41
6.2.3验收测试 42
6.2.4平行运行 42
6.3系统评价 42
6.4本章小结 42
结论 43
附录 44
致谢 49
参考文献 50
英文原文 52
1.1 GENERALIZE 52
1.2 SOURCE OF JSP 53
1.3JSP CHARACTERISTICS 55
1.4JSP MECHANISM 56
中文翻译 59
1.1 概述 59
1.2 JSP的由来 60
1.3 JSP的特点 60
1.4 JSP的机制 61
3 网站总体设计
3.1系统功能描述
旅游景点网站的功能主要分为俩部分:前台界面管理和后台数据库管理。它的主要功能包括:对塞北人文的增加删除修改查看 ,对塞北故事的增加删除修改查看,对酒店信息进行增加删除修改预订,对旅游景点的信息进行增加删除修改查看,还有路线查询,天气预报、用户评价、管理员后台登录管理。这些具体的板块涵盖了网站的设计的总体布局。
首页塞北人文板块、塞北故事板块、酒店信息板块、旅游景点板块、自驾游线路板块、用户评论板块、在线留言板块、天气预报板块都有自己具体实现的操作,供客户进行选择和查看、管理。
3.2系统界面设计
一个美观、清晰、操作便捷的界面可以增加用户量,吸引更多的人进行访问。通过对界面的访问,用户可以在最短时间内了解该网站的功能、属性、特点等等,同样也可以满足自己的需求。所以,在进行界面设计的时候一定要多花时间使得界面具有吸引力并且以最少的语言和图形传达最多的信息。该网站在设计界面的时候是根据以下几个方面进行的:
1.图文搭配。在进行界面设计的时候,太多的文字会使得用户觉得晦涩难懂,不愿意多花时间去进行研究。所以很有必要用图片进行展示,再加以必要的简洁的文字说明,这样用户会节省大量的时间去浏览更多网页并且可以获得自己想要的信息。塞北旅游景点网站界面设计采用文字加图片的形式,文字可以直观的向用户传递具体模块构造与功能,而图片可以更加形象的让用户感受到旅游地方的具体实景。
2.界面设计应当美观大方。太多的文字会使人们感觉到无聊不愿意阅读,然而太多的图片、动画也同样会使得界面太过花哨,凡事应该讲究适度原则。所以,在进行界面设计的时候切记要做到美观大方。旅游景点网站在设计的时候秉承这个原则,整个界面大方又不失美感。既不是一味的进行文字说明,也不是夸张的色泽艳丽。
3.字体选用应该注意突出重点。文字说明的时候也有讲究,对于重点的内容,就应该加以特别说明,字体应该适当加粗或者换种颜色。
4.色彩搭配应该柔和。在进行界面美化设计方面,色彩搭配也是一个很重要的环节。界面应该具有自己的主色调,而这个主色调最好采用暖色,这样可以给人一种柔和亲切的感觉。另外,界面颜色不宜太多。与网站所宣传的内容相符合、有自己的特色就好。
3.3系统功能结构图
旅游景点网站是基于B/S体系结构的旅游景点网站。通过全方位综合分析,该系统功能设计相对比较全面,能够满足大部分用户的需求。但是,做到满足每一个客户要求也是不可能的,只能是争取尽可能完善网站功能,到达更好的效果。旅游景点网站主要是通过各功能模块的介绍,对旅游进行宣传,包括首页,塞北人文,塞北故事等部分。具体前后台各部分实现如图3-1网站前台结构、图3-2网站后台结构所示:
3-1 网站前台结构图
3-2 网站后台结构图
3.4系统设计目标
用户特点、系统属性特点和实际需求是系统目标重要的考虑因素,该网络管理系统应该尽量满足操作灵活,界面友好,使用方便等设计要求。本网站应实现下面提到的几个任务目标:
1.人机交互。用户可以方便快速的获取所需要的信息,同时系统必须可以给予客户及时的应答。界面设计灵活友好,数据存取安全。
3.对旅游景点网站的质量进行评估,达到预期效果,各功能完善。
4.实现以上所述各部分模块的功能操作。
5.设置数据检查,尽量避免数据的冗杂和出错。
3.5系统实现的软硬件平台
(1)硬件系统:硬件平台实际上就是支撑系统进行开发运行的物理设备,具有计算,输入输出、存储等功能,本文转载自http://www.biyezuopin.vip/onews.asp?id=11180即计算机或PC机。本网站由Windows操作系统作为硬件支撑平台得以实现。
(2)软件服务:Myeclipse、tomcat、SQL.
<%@ page language="java" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ page language="java" import="java.sql.*" %>
<jsp:useBean id="connDbBean" scope="page" class="db.db"/>
<html>
<head>
<title>塞北村镇旅游网站</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"><LINK href="qtimages/style.css" type=text/css rel=stylesheet>
<style type="text/css">
<!--
.STYLE1 {color: #006666}
.STYLE2 {color: #006666; font-weight: bold; }
.STYLE5 {
color: #FFFFFF;
font-weight: bold;
}
.STYLE6 {color: #FFCC33}
-->
</style></head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"><%@ include file="qttop.jsp"%>
<%
String lb=new String(request.getParameter("lb").getBytes("8859_1"));
%>
<table width="978" height="1081" border="0" align="center" cellpadding="0" cellspacing="0" id="__01">
<tr>
<td></td>
</tr>
<tr>
<td valign="top"><table id="__01" width="978" height="785" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><%@ include file="qtleft.jsp"%></td>
<td valign="top"><table id="__01" width="758" height="785" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="785" valign="top"><table id="__01" width="758" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="758" height="42" background="qtimages/1_02_02_02_01.jpg"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="5%"> </td>
<td width="95%" class="STYLE2"><strong><%=lb%></strong></td>
</tr>
</table></td>
</tr>
<tr>
<td height="100%" valign="top"><table id="__01" width="758" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td background="qtimages/1_02_02_02_02_01.jpg"> </td>
<td width="733" height="183" valign="top"><table width="98%" border="0" align="center" cellpadding="3" cellspacing="1" bordercolor="#AAE4D5" style="border-collapse:collapse" class="newsline">
<%
int curpage=1;//当前页
int page_record=20;//每页显示的记录数
int zgs=0;
int zys=0;
//用下面的方法(sql查询完成,速度快)
String hsgnpage=request.getParameter("page");
String fysql="select count(id) as ss from xinwentongzhi where leibie='"+lb+"'";
ResultSet RS_resultfy=connDbBean.executeQuery(fysql);
while(RS_resultfy.next()){
zgs=Integer.parseInt(RS_resultfy.getString("ss"));
zys=zgs/page_record+1;
}
if (hsgnpage!=null)
{
curpage=Integer.parseInt(request.getParameter("page"));//获取传递的值,需要显示的页
}
else
{
curpage=1;
}
if (curpage==0)
{
curpage=1;
}
if(curpage>zys)
{
curpage=zys;
}
String sql="";
sql="select top "+page_record+" * from xinwentongzhi where leibie='"+lb+"' and id not in (select top "+((curpage-1)*page_record)+" id from xinwentongzhi order by id desc) ";
if(request.getParameter("keyword")=="" ||request.getParameter("keyword")==null ){}else{sql=sql+" and biaoti like '%"+new String(request.getParameter("keyword").getBytes("8859_1"))+"%'";}
sql=sql+" order by id desc";
ResultSet RS_result=connDbBean.executeQuery(sql);
String id="";
String biaoti="";String leibie="";String neirong="";String tianjiaren="";String shouyetupian="";String dianjilv="";
String addtime="";
int i=0;
while(RS_result.next()){
i=i+1;
id=RS_result.getString("id");
biaoti=RS_result.getString("biaoti");leibie=RS_result.getString("leibie");neirong=RS_result.getString("neirong");tianjiaren=RS_result.getString("tianjiaren");shouyetupian=RS_result.getString("shouyetupian");dianjilv=RS_result.getString("dianjilv");
addtime=RS_result.getString("addtime");
%>
<tr>
<td width="30" align="center"><%=i %></td>
<td width="470"><a href="gg_detail.jsp?id=<%=id%>"><%=biaoti %></a></td>
<td width="87">被点击<%=dianjilv %>次</td>
<td width="82" align="center"><%=addtime.substring(0,10) %></td>
</tr>
<%
}
%>
</table>
<br>
以上数据共<%=i %>条,<a style="cursor:hand" onClick="javascript:window.print();">打印本页</a>
<p align="center"> 共<%=zgs%>条记录 <%=page_record %>条/页 <a href="news.jsp?page=1&lb=<%=lb%>">首页</a> <a href="news.jsp?page=<%= curpage-1%>&lb=<%=lb%>">上一页</a> <A href="news.jsp?page=<%= curpage+1%>&lb=<%=lb%>">下一页</A> <a href="news.jsp?page=<%=zys %>&lb=<%=lb%>">尾页</A> 当前第<FONT color=red><%=curpage %></FONT>页/共<FONT color=red><%=zys %></FONT>页</p>
</td>
<td width="13" background="qtimages/1_02_02_02_02_03.jpg"> </td>
</tr>
</table></td>
</tr>
<tr>
<td height="11"><img src="qtimages/1_02_02_02_03.jpg" width="758" height="11" alt=""></td>
</tr>
</table></td>
</tr>
<tr>
<td> </td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td><%@ include file="qtdown.jsp"%></td>
</tr>
</table>
</body>
</html>