目录

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)

图片

email

nvarchar(50)

邮件

qq

nvarchar(50)

QQ

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="data: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"%>

基于SSMidea开发景区景点旅游网站(javaweb-php-asp.netC#-j2ee)包含城市推荐线路预约预定自驾游个性化推荐技术数据统计分析相关推荐

  1. 软件工程毕业设计课题(18)基于JAVA毕业设计JAVA景区景点旅游网站系统毕设作品源码

    项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于java的景区景点预约购票系统,整体使用java+MySql的B/S架构,技术上采用了springboot框架:通过后台添加景区资讯.景点介 ...

  2. 基于SSM的家庭理财家庭财务记账管理系统 (javaweb-php-asp.netC#-j2ee)包含数据统计分析建议-收支项目-成员管理

    目录 1 概述 2 数据库表 3 关键代码 4 效果演示 1 概述 idea或eclipse开发,mysql数据库 本设计是一个家庭理财管理系统,运用了Web应用解决方案并加以实现理财功能.此次要做到 ...

  3. mysql网页后台_jsp+servlet+mysql开发java web旅游网站,有后台管理系统

    项目描述 jsp+servlet开发的景点旅游网站 运行环境 jdk8+tomcat8+mysql+eclipse+maven 项目技术(必填) java servlet+mysql+jquery a ...

  4. 基于java+SpringBoot+HTML+Mysql旅游网站设计与实现

    详细功能设计:请点击下面链接查看基于java+SpringBoot+HTML+Mysql旅游网站设计与实现_哔哩哔哩_bilibili 源码+论文获取: 源码+论文获取请私信获取 目录 Abstrac ...

  5. 基于jsp的塞北村镇旅游网站的设计与实现--【毕业论文】

    文章目录 本系列校训 毕设的技术铺垫 文章主体层次 摘要 示例 摘要的写法 英文摘要: 选题目的和意义: 与本课题相关的技术和方法综述: 系统分析 经济上的可行性 技术上的可行性 操作上的可行性 开发 ...

  6. java计算机毕业设计基于springboot+vue+elementUI的旅游网站(源码+数据库+Lw文档)

    项目介绍 旅游管理平台采用B/S模式,促进了旅游管理平台的安全.快捷.高效的发展.传统的管理模式还处于手工处理阶段,管理效率极低,随着用户的不断增多,传统基于手工管理模式已经无法满足当前用户需求,随着 ...

  7. 基于java(ssm)旅游网站系统源码成品(java毕业设计)

    基于java(ssm)旅游网站系统 旅游网站系统是基于java编程语言,mysql数据库,ssm框架和idea开发工具设计,本系统分为用户和管理员两个角色,用户注册登陆后查看旅游景点,景点购买门票,查 ...

  8. 基于JAVA环巢湖区域旅游网站计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA环巢湖区域旅游网站计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA环巢湖区域旅游网站计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开 ...

  9. 基于SSH开发的洛阳旅游网管理系统 JAVA

    10113基于SSH开发的洛阳旅游网管理系统 代码: 鏈-椄:https://pan@baidu@com/s/17O5OFcf8ONKdn7dOXy57TA(把@换成 . 就可正常访问) 趧-紶-碼: ...

最新文章

  1. TIOBE 6 月榜单: Python 有望超越 C 语言成为第一名
  2. linux文件属性 -rwxr-xrw,Linux文件属性
  3. 使用OpenVINO ToolKit 实时推断
  4. rxjava获取异步请求的结果_我为什么不再推荐用 RxJava
  5. 反射,Expression Tree,IL Emit 属性操作对比
  6. linux 启动程序-p,Linux应用程序开发笔记:配置linuxptp开机启动(ubuntu gPTP)
  7. 李洋疯狂C语言之有关“you are come from shanghai”逆序(二)
  8. Web前端笔记-使用@media(媒体查询)展示及隐藏div
  9. 实现三栏布局的几种方法
  10. JavaScript:数据类型判断的方法
  11. WPS怎么统计相同名称的数据_群发邮件平台的数据统计怎么用
  12. .NetCore中的程序通过Docker在CentOS中部署
  13. lamp rpm mysql_LAMP基于RPM包实现(httpd与php以module方式结合) 1
  14. 2017中国十大富豪排行榜
  15. 梯形公式和辛普森的Matlab
  16. SQL学习笔记6-决胜秋招
  17. 排序算法系列之(二)——冒泡排序名字最为形象的一个
  18. docker 常用命令 -----(批量查看镜像/容器,重命名,运行,进入容器,私有仓库)
  19. MongoDB——聚合管道之$project操作
  20. 一套MES系统需要多少钱?如何使生产管理系统标准化?

热门文章

  1. 如何把类数组对象转为数组对象
  2. Php禁止外部盗链nginx,nginx 防止盗链
  3. Steam编程区解谜游戏A=B全解(一)
  4. 人脸识别与膜虹识别_指纹、人脸识别、虹膜识别,告诉你谁才是黑科技
  5. python数据字符串_python数据类型-字符串
  6. D3.js绘制树形图
  7. html如何修改字体黑体,css如何修改字体样式?
  8. OSChina 周一乱弹 —— 你老婆和闺蜜总用奇怪的眼神看着你
  9. 我的世界linux服务器怎么换地图,《我的世界手机版》pocketmine服务器怎么更换地图?...
  10. EMC设计攻略(2)—接口电路