目录

前言

1. 项目简介

1.1 项目说明

1.2 项目内容

2. 部分重点代码展示

3. 部分成果展示

3.1 旅游门户网

3.2 后台管理系统


前言

经过一段时间的学习,我已经掌握了web相关的基础知识,俗话说“光说不练假把式”,所以博主在学完web阶段基础知识后,独立完成了一个旅游门户网及后台管理系统。下面就给大家分享介绍下这个web项目。


1. 项目简介

1.1 项目说明

随着计算机及网络技术的飞速发展,全民经济水平的提高,为丰富业余生活,各种各样的娱乐活动层出不穷,越来越多的人会选择以旅游的方式来提升工作生活的品质,而旅游网为大众提供了舒适、便捷的旅行路线,并提供酒店预订服务,为“驴友们” 节省了大把的旅游规划时间,真正做到说走就走的旅行。

1.2 项目内容

旅游网共分为旅游门户网以及后台管理系统,功能模块如下:

旅游门户网:

后台管理系统:

2. 部分重点代码展示

旅游门户网酒店相关功能的Servlet

package cn.itcast.travel.web.servlet;import cn.itcast.travel.domain.*;
import cn.itcast.travel.service.HotelService;
import cn.itcast.travel.service.ReserveService;
import cn.itcast.travel.service.impl.HotelServiceImpl;
import cn.itcast.travel.service.impl.ReserveServiceImpl;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;@WebServlet("/hotel/*")
public class HotelServlet extends BaseServlet {private final HotelService hotelService = new HotelServiceImpl();private final ReserveService reserveService = new ReserveServiceImpl();public void pageQuery(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1.接受参数String currentPageStr = request.getParameter("currentPage");String pageSizeStr = request.getParameter("pageSize");String cidStr = request.getParameter("cid");//接受rname 线路名称String hname = request.getParameter("hname");hname = new String(hname.getBytes("iso-8859-1"), "utf-8");int cid = 0;//类别id//2.处理参数if (cidStr != null && cidStr.length() > 0 && !"null".equals(cidStr)) {cid = Integer.parseInt(cidStr);}int currentPage = 0;//当前页码,如果不传递,则默认为第一页if (currentPageStr != null && currentPageStr.length() > 0) {currentPage = Integer.parseInt(currentPageStr);} else {currentPage = 1;}int pageSize = 0;//每页显示条数,如果不传递,默认每页显示5条记录if (pageSizeStr != null && pageSizeStr.length() > 0) {pageSize = Integer.parseInt(pageSizeStr);} else {pageSize = 5;}//3. 调用service查询PageBean对象PageBean<Hotel> pb = hotelService.pageQuery(cid, currentPage, pageSize, hname);//4. 将pageBean对象序列化为json,返回writeValue(pb, response);}public void findOne(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1.接收idString hid = request.getParameter("hid");//2.调用service查询route对象Hotel hotel = hotelService.findOne(hid);//3.转为json写回客户端writeValue(hotel, response);}/*** 判断当前登录用户是否预订过该酒店** @param request* @param response* @throws ServletException* @throws IOException*/public void isReserve(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1.获取线路idString hid = request.getParameter("hid");//2.获取当前登录用户User user = (User) request.getSession().getAttribute("user");int uid; //用户idif (user == null) {//用户尚未登录uid = 0;} else {//用户已经登录uid = user.getUid();}//3.调用FavoriteService查询是否收藏boolean flag = reserveService.isReserve(hid, uid);//4.写回客户端writeValue(flag, response);}/*** 添加预订** @param request* @param response* @throws ServletException* @throws IOException*/public void addReserve(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获取线路ridString hid = request.getParameter("hid");//2.获取当前登录用户User user = (User) request.getSession().getAttribute("user");int uid; //用户idif (user == null) {//用户尚未登录return;} else {//用户已经登录uid = user.getUid();}//调用service添加reserveService.add(hid, uid);}/*** 分页查询当前登录用户预订的所有酒店** @param request* @param response* @throws ServletException* @throws IOException*/public void findOrder(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//接收参数String currentPageStr = request.getParameter("currentPage");String pageSizeStr = request.getParameter("pageSize");//获取当前登录用户User user = (User) request.getSession().getAttribute("user");int uid; //用户idif (user == null) {//用户尚未登录return;} else {//用户已经登录uid = user.getUid();}//处理参数int currentPage = 1; //当前页码,如果不传递,则默认为第一页if (currentPageStr != null && currentPageStr.length() > 0) {currentPage = Integer.parseInt(currentPageStr);}int pageSize = 9; //每页显示条数,如果不传递,默认每页显示9条记录if (pageSizeStr != null && pageSizeStr.length() > 0) {pageSize = Integer.parseInt(pageSizeStr);}//调用service查询所有收藏路线PageBean<List<Object>> pb = reserveService.findAll(uid, currentPage, pageSize);//将pageBean对象序列化为json,写回客户端writeValue(pb, response);}/*** 支付功能** @param request* @param response* @throws ServletException* @throws IOException*/public void pay(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获取订单号String code = request.getParameter("code");reserveService.pay(code);}
}

后台酒店管理模块的Servlet

package web.servlet;import domain.HotelBean;
import domain.ResultInfo;
import domain.Route;
import org.apache.commons.beanutils.BeanUtils;
import service.Impl.HotelServiceImpl;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.Map;@WebServlet("/hotel/*")
public class HotelServlet extends BaseServlet {private service.HotelService HotelService = new HotelServiceImpl();private ResultInfo info = new ResultInfo();/*** 酒店分页查询** @param request* @param response* @throws ServletException* @throws IOException*/public void hotelPageQuery(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1.接受参数String currentPageStr = request.getParameter("currentPage");String pageSizeStr = request.getParameter("pageSize");String cidStr = request.getParameter("cid");int cid = 0;//类别id//2.处理参数if (cidStr != null && cidStr.length() > 0 && !"null".equals(cidStr)) {cid = Integer.parseInt(cidStr);}int currentPage = 0;//当前页码,如果不传递,则默认为第一页if (currentPageStr != null && currentPageStr.length() > 0) {currentPage = Integer.parseInt(currentPageStr);} else {currentPage = 1;}int pageSize = 0;//每页显示条数,如果不传递,默认每页显示5条记录if (pageSizeStr != null && pageSizeStr.length() > 0) {pageSize = Integer.parseInt(pageSizeStr);} else {pageSize = 5;}//接受rname 线路名称String rname = request.getParameter("rname");if (rname != null || rname.length() > 0) {rname = new String(rname.getBytes("iso-8859-1"), "utf-8");}//3. 调用service查询PageBean对象HotelBean<Route> pb = HotelService.pageQuery(cid, currentPage, pageSize, rname);//4. 将pageBean对象序列化为json,返回writeValue(pb, response);}/*** 添加酒店** @param request* @param response* @throws ServletException* @throws IOException*/public void addhotel(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1.获取数据request.setCharacterEncoding("UTF-8");Map<String, String[]> map = request.getParameterMap();//2.封装对象Route route = new Route();try {BeanUtils.populate(route, map);} catch (IllegalAccessException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();}Boolean flag = HotelService.addHotel(route);if (flag) {info.setFlag(true);info.setErrorMsg("添加成功");} else {info.setFlag(false);info.setErrorMsg("添加失败");}writeValue(info, response);}/*** 修改酒店信息** @param request* @param response* @throws ServletException* @throws IOException*/public void updatehotel(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1.获取数据request.setCharacterEncoding("UTF-8");Map<String, String[]> map = request.getParameterMap();//2.封装对象Route route = new Route();try {BeanUtils.populate(route, map);} catch (IllegalAccessException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();}Boolean flag = HotelService.updateHotel(route);if (flag) {info.setFlag(true);info.setErrorMsg("修改成功");} else {info.setFlag(false);info.setErrorMsg("修改失败");}writeValue(info, response);}public void findonehotel(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("UTF-8");String rid = request.getParameter("rid");Route route = HotelService.findonehotelrid(rid);writeValue(route, response);}/*** 删除酒店信息** @param request* @param response* @throws ServletException* @throws IOException*/public void deleteThehotel(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String rid = request.getParameter("rid");HotelService.deletehotel(rid);}
}

3. 部分成果展示

3.1 旅游门户网

酒店展示列表

酒店详情信息

用户酒店订单信息

3.2 后台管理系统

用户管理

酒店管理

酒店订单管理


做完这个项目,web阶段的学习就告一段落了,接下来博主就要开始学习框架了。大家通过这个项目可以看出,其实这个项目的功能做的非常简单,但是我们的代码量已经非常之多了,开发效率较低。框架就是对一些重复性、常用的代码的封装,它大大的提升了程序员的开发效率。

JavaWeb项目——旅游门户网站及后台管理系统相关推荐

  1. 基于 jsp+servlet+mysql 开发旅游推介网站和后台管理系统(maven项目)

    你知道的越多,你不知道的越多 点赞再看,养成习惯 如果您有疑问或者见解,或者没有积分想获取项目,欢迎指教: 企鹅:869192208 文章目录 一. 开发背景 二. 需求分析 三.开发环境 四.运行效 ...

  2. 【收藏】JavaWeb项目详解:水果库存后台管理系统(servlet+thymeleaf+mysql)

    目录 实现功能 使用开发工具和技术 开发工具 相关依赖 数据库表格设计 创建数据库 创建表格 插入数据 代码部署 获取代码 打开项目 添加Artifacts文件 设置Tomcat信息 引入依赖 运行项 ...

  3. 基于SSM框架的旅游门户网站

    下载地址:https://download.csdn.net/download/a13689028602/20681462 项目介绍 基于SSM框架的旅游门户网站 系统说明 项目背景 旅游业作为一个快 ...

  4. DoNet开源项目-基于jQuery EasyUI的后台管理系统

    本文转载于 石佳劼的博客,有问题请到原文咨询,原文连接. 博主在业余时间开发了一个简单的后台管理系统,其中用到了 jQuery EasyUI 框架,上次分享过系统布局,参考文章:jQuery Easy ...

  5. 把握Z世代游客特点,最新旅游门户网站建设方案

    近两年,"Z世代"这个词频繁出现在旅游人的视野里. 究竟什么是Z世代?为什么会有"得Z世代者得天下"的说法? 所谓"Z世代",通常指1995 ...

  6. 旅游管理网站前台+后台

    这个网站使用JSP+Servlet,虽说是JSP+Servlet但是我看了看,大部分的代码逻辑都是写在JSP里面的.. 这个适用于毕业设计的,简单改一改可以适用于很多网站,可以改后台下拉列表的类型,把 ...

  7. 码云上面优秀的java项目_秒建一个后台管理系统?用这5个开源免费的Java项目就够了...

    以下推荐项目都是码云上的优质项目,并且都是项目快速开发脚手架,代码质量什么的无法保证能有多好,毕竟很多也是个人开发,或多或少也有个人色彩影响. 不过既然开源出来,这么多人参与,一般情况下项目整体质量可 ...

  8. Vue项目实战之电商后台管理系统(一) 用户登录模块

    目录 一.项目概述 二.项目初始化 2.1 前端项目初始化步骤 2.2 后台项目的环境安装配置 三.用户登录/登出功能实现 3.1 登录功能概述 3.1.1 登录状态保持 3.1.2 登录逻辑: 3. ...

  9. Java-Web机试练习题一、后台管理系统——管理员管理模块

    题目:后台管理系统--管理员管理模块 一. 语言和环境 1. 实现语言:JAVA 语言. 2. 环境要求:MyEclipse/Eclipse + Tomcat + MySql. 3. 使用技术:Jsp ...

最新文章

  1. 获得客户端的时区(get client-side time zone by JS)
  2. ibatis annotations 注解方式返回刚插入的自增长主键ID的值--转
  3. 我弥留之际 - 许立志 (珍藏)
  4. [LNMP]——LNMP环境配置
  5. 字符设备驱动基础篇1——简单的驱动源码分析
  6. NB企业级微服务框架
  7. 问题解决:java.sql.SQLException:Value '0000-00-00' can not be represented as java.sql.Date
  8. spring事务和mysql的隔离级别
  9. 分享一个串口调试工具
  10. win10+cuda10.0.130+cudnn7.5.1+tensorflow-gpu 1.13.1+anaconda3+keras+pycharm2018
  11. system verilog中的参数传递——ref,input,output
  12. php如何自动阅卷,智能评卷系统 自动阅卷软件
  13. LCD1602芯片的使用——简单易懂
  14. linux e1000内核源码,linux下e1000网卡奇怪现象
  15. 隐马尔科夫模型(HMM)
  16. codecademy 命令行手册(中英文)
  17. SpringBoot 整合 Elasticsearch
  18. sql集合.联合查询
  19. Wireshark的作用
  20. 计算机测试ppt,计算机测试重点.ppt

热门文章

  1. Codeforces 部分题目题解(口胡)
  2. 简单的音乐播放器(上一曲,下一曲,暂停/播放,自动播放下一曲)
  3. OA工作流引擎:作为组织血脉支撑的重要性解析
  4. 关于MAC电脑外接DELL显示器的高清分辨率及Display P3颜色空间设置问题的解决方法
  5. Shiro学习之Shiro授权的内部处理机制(六)
  6. CMD 命令刷新网卡
  7. C/C++中花括号 {} 的作用
  8. VSFTP安装部署及配置
  9. 【思考】人脸识别的安全性是否真的有效?支付宝人脸支付到底行不行
  10. 利用迭代OTSU方法分割植物病斑