目录
0、效果展示
1、旅游网站概述Design and implementation of the web-based information management
2、旅游网站搭建环境
3、数据表
?4、后端代码示例
5、前端代码示例
0、效果展示
1、旅游网站概述Design and implementation of the web-based information management
旅游网站建设是面向现实需求的一个实用系统。其设计的目的是为游客和旅游网站提供一个友好的、直接的交流平台。本系统主要分为六大模块:旅游咨询信息、旅游线路信息、热点旅游线路信息、线路查询、留言信息以及权限管理。该系统的主要功能:提供给管理者一个简单的界面,可以合理计划安排导游的工作和及时了解游客的要求和信息;提供给游客一个清新的界面选择自己向往的旅游胜地。
该旅游管理系统主要实现了对旅游信息的管理功能,主要实现了前台和后台模块,主要功能如下:
系统:登录、注销、退出。
前台模块:旅游线路、热点线路、票选线路、线路查询、会员中心、留言板。
后台系统管理:公告管理、发布公告、友情链接管理、网站留言管理、管理员设置、后台登录日志。
后台旅游资讯管理:旅游资讯管理、发布旅游资讯。
旅游线路管理:旅游线路管理、热点旅游线路、添加旅游线路。
注册会员管理:注册会员管理。
预定报名管理:预定报名管理。
票选线路管理:票选线路管理、发布票选线路。
2、旅游网站搭建环境
本文以实现一个旅游网站为目标,从环境搭建到编码实现全过程讲述
我们使用javaweb、J2EE来构建旅游网站,环境使用最新版jdk和tomcat,配合mysql数据库
开发工具使用idea(也可以使用eclipse),数据库管理工具使用Navicat Premium
开发框架使用JavaBean Servlet MVC结构;
没有使用SSH(Struts+Spring+Hibernate)或SSM(Spring+SpringMVC+MyBatis),这两个框架我们在别的项目中再介绍开发过程
在项目中会引入My97DatePicker作为前端日期时间选择工具,使用fckeditor作为富媒体编辑器(也可以使用百度的ueditor)
使用DWR(Direct Web Remoting)用于改善web页面与Java类交互,实现远程服务器端AJAX读取登录数据。
使用JSTL(Java server pages standarded tag library,即JSP标准标签库),此库是由JCP(Java community Proces)所制定的标准规范,它主要提供给Java Web开发人员一个标准通用的标签库,并由Apache的Jakarta小组来维护。开发人员可以利用这些标签取代JSP页面上的Java代码,从而提高程序的可读性,降低程序的维护难度。
3、数据表
表1 admin管理员表
名称 |
类型 |
说明 |
id |
int |
编号 |
username |
nvarchar(50) |
用户名 |
password |
nvarchar(50) |
密码 |
creattime |
datetime |
日期 |
logintimes |
int |
登录次数 |
qx |
nvarchar(1000) |
权限 |
表2 affiche公告表
名称 |
类型 |
说明 |
id |
int |
编号 |
title |
nvarchar(100) |
标题 |
[content] |
nvarchar(MAX) |
内容 |
addtime |
datetime |
日期 |
表3 guestbook留言表
名称 |
类型 |
说明 |
id |
int |
编号 |
nickname |
nvarchar(100) |
名称 |
pic |
nvarchar(100) |
图片 |
|
nvarchar(50) |
邮件 |
|
nvarchar(50) |
|
weburl |
nvarchar(100) |
网址 |
[content] |
nvarchar(200) |
内容 |
addtime |
datetime |
日期 |
ip |
nvarchar(50) |
IP |
replay |
int |
回复 |
?4、后端代码示例
package com.action;/*** * 留言本*/import java.io.IOException;
import java.util.List;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 com.bean.GuestBookBean;
import com.bean.SystemBean;
import com.util.Constant;
import com.util.Filter;public class GuestBookServlet extends HttpServlet {/*** Constructor of the object.*/public GuestBookServlet() {super();}/*** Destruction of the servlet. <br>*/public void destroy() {super.destroy(); // Just puts "destroy" string in log// Put your code here}/*** The doGet method of the servlet. <br>** This method is called when a form has its tag value method equals to get.* * @param request the request send by the client to the server* @param response the response send by the server to the client* @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request,response);}/*** The doPost method of the servlet. <br>** This method is called when a form has its tag value method equals to post.* * @param request the request send by the client to the server* @param response the response send by the server to the client* @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding(Constant.CHARACTERENCODING);response.setContentType(Constant.CONTENTTYPE);//nikename, pic, email, qq, weburl, blogurl, expressions, contentString sysdir = new SystemBean().getDir();HttpSession session = request.getSession();String method = request.getParameter("method").trim();GuestBookBean guestBookBean = new GuestBookBean();if(method.equals("add")){//发表留言String member=(String)session.getAttribute("member");String nikename = Filter.escapeHTMLTags(request.getParameter("nikename").trim());String face ="images/nobody.gif";String email = "";String qq = Filter.escapeHTMLTags(request.getParameter("qq").trim());String weburl = "";String blogurl = "";String expressions = "";String content = Filter.escapeHTMLTags(request.getParameter("content").trim());String ip = request.getRemoteAddr();if(nikename.equals("")){nikename="游客"; }if(member!=null){face="images/nobody.gif";}int guestbook=1;int flag = guestBookBean.addGuestBook(nikename, face, email, qq, weburl, blogurl, expressions, content, ip,guestbook);if(flag == 1){request.setAttribute("message", "谢谢您的留言,请等候管理员回复!");request.getRequestDispatcher("guestbook.jsp").forward(request, response);}else{request.setAttribute("message", "系统维护中,请稍后再试!");request.getRequestDispatcher("guestbook.jsp").forward(request, response);}}else if(method.equals("delguestbook")){//删除留言try{String username2 = (String)session.getAttribute("user");if(username2 == null){request.getRequestDispatcher("error.jsp").forward(request, response);}else{String check[] = request.getParameterValues("checkit");if(check == null){request.setAttribute("message", "请选择要删除的记录!");request.getRequestDispatcher(sysdir+"/guestbook/index.jsp").forward(request, response);}else{int id[]= new int[check.length];for(int i = 0;i<check.length;i++){int s = Integer.parseInt(check[i]); id[i] = s;}int flag = guestBookBean.delGuestBook(id);if(flag == Constant.SUCCESS){request.getRequestDispatcher(sysdir+"/guestbook/index.jsp").forward(request, response);}else{request.setAttribute("message", "系统维护中,请稍后再试!");request.getRequestDispatcher(sysdir+"/guestbook/index.jsp").forward(request, response);}}}}catch(Exception e){request.getRequestDispatcher("error.jsp").forward(request, response);}}else if(method.equals("replay")){//回复留言try{String username2 = (String)session.getAttribute("user");if(username2 == null){request.getRequestDispatcher("error.jsp").forward(request, response);}else{String messageid = Filter.escapeHTMLTags(request.getParameter("id").trim());String replay = Filter.escapeHTMLTags(request.getParameter("replay").trim());int flag = guestBookBean.reGuestBook(Integer.parseInt(messageid), replay, username2);if(flag == Constant.SUCCESS){request.setAttribute("message", "回复成功!");request.getRequestDispatcher(sysdir+"/guestbook/index.jsp").forward(request, response);}else{request.setAttribute("message", "系统维护中,请稍后再试!");request.getRequestDispatcher(sysdir+"/guestbook/index.jsp").forward(request, response);}}}catch(Exception e){request.getRequestDispatcher("error.jsp").forward(request, response);}}else if(method.equals("upreplay")){try{String username2 = (String)session.getAttribute("user");if(username2 == null){request.getRequestDispatcher("error.jsp").forward(request, response);}else{String messageid = Filter.escapeHTMLTags(request.getParameter("id").trim());String replay = Filter.escapeHTMLTags(request.getParameter("replay").trim());int flag = guestBookBean.upReplay(Integer.parseInt(messageid), replay);if(flag == Constant.SUCCESS){request.setAttribute("message", "修改成功!");request.getRequestDispatcher(sysdir+"/guestbook/index.jsp").forward(request, response);}else{request.setAttribute("message", "系统维护中,请稍后再试!");request.getRequestDispatcher(sysdir+"/guestbook/index.jsp").forward(request, response);}}}catch(Exception e){request.getRequestDispatcher("error.jsp").forward(request, response);}}else{request.getRequestDispatcher("error.jsp").forward(request, response);}}/*** Initialization of the servlet. <br>** @throws ServletException if an error occure*/public void init() throws ServletException {// Put your code here}
}
5、前端代码示例
<%@ page language="java" import="java.util.*,com.util.*" contentType="text/html;charset=gb2312" %><%@ include file="iframe/head.jsp" %>
<title>旅游网站</title>
<%String message = (String)request.getAttribute("message");if(message == null){message = "";}if (!message.trim().equals("")){out.println("<script language='javascript'>");out.println("alert('"+message+"');");out.println("</script>");}request.removeAttribute("message");
%><div class="workzone"> <%@ include file="iframe/left.jsp" %><!--中部右侧开始--><div class="workzone-right"><div><!--右侧第一段--><div><div><h1>图片<span class="redheading">资讯</span></h1></div><div class="welcomezone"> <img src="images/welcome-img.jpg" class="welcomeimg" /><div class="box"><div class="cont"> <%List resList3=tb.get10HotTrave();if(!resList3.isEmpty()){for(int res2=0;res2<4;res2++){List resList22=(List)resList3.get(res2);String hidecode="";if(res2>0) hidecode="class='hide'"; %><a href="<%=path%>/traveinfo.jsp?id=<%=resList22.get(0).toString()%>" target="_blank" <%=hidecode%>><img src="<%=path+"/"+resList22.get(2).toString()%>" ></A><%}}%></div><div class="item"> <a class="seld">·</a> <a>·</a> <a>·</a> <a>·</a> </div></div><div class="clear"></div></div></div><div class="clear"></div><!--右侧第二段--><div><div ><h1>最新<span class="redheading">线路</span></h1></div><div style="margin-top:-15px"><%List resList=tb.get10PTrave();if(!resList.isEmpty()){for(int res=0;res<3;res++){List resList2=(List)resList.get(res);%><div class="column<%=res+1%>" ><div><div class="projectimg"><a href="<%=path%>/traveinfo.jsp?id=<%=resList2.get(0).toString()%>"><img src="<%=path+"/"+resList2.get(2).toString()%>" ></A></div><div><div><%String title=resList2.get(1).toString();if(title.length()>15)title=title.substring(0, 15)+"...";String body=Validate.replaceHtml(resList2.get(8).toString());if(body.length()>60)body=body.substring(0, 60)+"...";%><h2><a href="<%=path%>/traveinfo.jsp?id=<%=resList2.get(0).toString()%>"><%=title%></a></h2><div class="borderbottom"> <%=body%></div></div></div></div></div><%}}%></div></div><div class="clear"></div><!--右侧第三段--><div style="margin-top:30px"><div><h1>最热<span class="redheading">线路</span></h1></div><div style="margin-top:-15px"><%List resList1=tb.get10HotTrave();if(!resList1.isEmpty()){for(int res1=0;res1<3;res1++){List resList21=(List)resList1.get(res1);%><div class="column<%=res1+1%>" ><div><div class="projectimg"><a href="<%=path%>/traveinfo.jsp?id=<%=resList21.get(0).toString()%>"><img src="<%=path+"/"+resList21.get(2).toString()%>" ></A></div><div><div><%String title2=resList21.get(1).toString();if(title2.length()>15)title2=title2.substring(0, 15)+"...";String body1=Validate.replaceHtml(resList21.get(8).toString());if(body1.length()>60)body1=body1.substring(0, 60)+"...";%><h2><a href="<%=path%>/traveinfo.jsp?id=<%=resList21.get(0).toString()%>"><%=title2%></a></h2><div class="borderbottom"> <%=body1%></div></div></div></div></div><%}}%></div></div><div class="clear"></div><!--右侧第三段结束--> </div></div><div class="clear"></div></div><div class="clear"></div>
</div><%@ include file="iframe/foot.jsp"%>