带你去旅行——基于Web的旅游网站

一、核心技术

1、Web层

1>servlet:前端控制器
2>html :视图
3>Filter :过滤器–>解决乱码问题
4>BeanUtil:数据封装
5>Jackson:json序列化工具,ajax一步提交表单,完成校验

2、Service层

1>Javamail:java发送邮件工具
2>Redis:NoSQL内存数据库
3>Jedis:Java的redis客户端

3、Dao层

1>MySQL:数据库
2>Druid:数据库连接池
3>JDBCTmplate:jdbc的工具

二、项目核心需求

注册:

1、密码、用户名、邮箱、验证码等的校验
2、需要给正在注册的客户发一封激活邮件,用户在邮箱点击激活后,账户才能被激活(激活实际上就是将用户表中的用户状态改成已被激活状态)
在这里插入图片描述

登录

在这里插入图片描述
在这里插入图片描述
1、查看用户是否存在
2、查看用户状态是否是已激活状态
3、查看用户名和密码以及验证码是否匹配
4、登陆成功跳转至登陆成功的页面
5、登录不成功则给出不同的错误信息
6、进入页面以后,页面上面会展示一个带着用户名的欢迎信息

退出

1、销毁Session—>getSession.invalidate()
2、跳转到登录页面

分类数据的展示

即显示以下页面
在这里插入图片描述

旅游路线的分页展示

在这里插入图片描述

根据id查询不同的旅游路线

在这里插入图片描述

旅游线路名称查询

在这里插入图片描述

旅游的详情页展示

在这里插入图片描述

三、技术实现

注册

分析如下:
在这里插入图片描述
技术:
1、使用ajax异步提交表单,在提交表单之前先校验各个注册信息是否正确,用正则表达式来校验,如密码是否少于八位,邮箱格式是否正确等
2、假设出现输入的密码位数不符合标准或者邮箱格式不正确等错误,则直接让输入框边框变成红色,在这里校验的时候调用CSS,假设不正确将边框调成红色,正确则返回true即可
3、设置响应头,假设注册时输入的所有信息符合要求但中间出现一些其他错误,设置一个响应头,让响应头输出相应错误信息

登录

分析如下
在这里插入图片描述
登录这一块其实整个都是与数据库的交互,只要掌握JDBC编程以及servlet的交互就可以很好处理这一块功能

退出

我们想要的效果是点击退出,直接退到登录页面再次退回到之前登陆完成的页面内时不会由之前账户的信息,这个是就是需要销毁Sesson,所以只需要调用Session’中的getSession.invalidate()这个方法,让Session自杀即可

分页信息的展示

分析如下
在这里插入图片描述
因为所有页面都是用html来做的,不能直接从servlet域直接获取数据,所以表单提交都是要用异步提交的方式来提交,这里解释一个问题,就是为什么只用htm而不用jsp,因为这是一个面向用户的页面,响应必须要快,而html要比jsp的响应快很多所以这选择了html做整个功能实现

因为每一次查看数据的时候都会重新申请查看数据,对数据库的压力十分大,所以需要对数据库这一块进行优化,选择用redis来进行优化,分析过程如下

在这里插入图片描述
而我希望存储的顺序就是将来访问的顺序,所以选择用了redis中的sortedset,这个时候需要先获取jedis来管理redis,具体是实现在这里我附上部分的代码

public List<Category> findAll() {
    //1.从redis中查询
    //1.1获取jedis客户端
    Jedis jedis = JedisUtil.getJedis();
    //1.2可使用sortedset排序查询
    Set<String> categorys = jedis.zrange("category", 0, -1);
    List<Category> cs = null;
    //2.判断查询的集合是否为空
    if (categorys == null || categorys.size() == 0) {

        System.out.println("从数据库查询....");
        //3.如果为空,需要从数据库查询,在将数据存入redis
        //3.1 从数据库查询
        cs = categoryDao.findAll();
        //3.2 将集合数据存储到redis中的 category的key
        for (int i = 0; i < cs.size(); i++) {

            jedis.zadd("category", cs.get(i).getCid(), cs.get(i).getCname());
        }
    } else {
        System.out.println("从redis中查询.....");

        //4.如果不为空,将set的数据存入list
        cs = new ArrayList<Category>();
        for (String name : categorys) {
            Category category = new Category();
            category.setCname(name);
            cs.add(category);

        }
    }
    return cs;
}
中间步骤

减少Servlet的数量,现在是一个功能一个Servlet,将其优化为一个模块一个Servlet,相当于在数据库中一张表对应一个Servlet,在Servlet中提供不同的方法,完成用户的请求。
在这里插入图片描述

根据id查询不同的路线

在这里插入图片描述
这一块也是数据库交互问题

旅游详情页

在这里插入图片描述
在这里插入图片描述

旅游的收藏功能

在这里插入图片描述
当页面加载完成后,发送ajax请求,获取用户是否收藏的标记
根据标记,展示不同的按钮样式
至此这个项目就完结
项目源码:
https://github.com/Fancccy/TravelWeb

  • 4
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
本网站的主要功能大致分为:热门景点、景区点评、旅游信息查询、酒店预订、自驾游旅行线路和后台功能。 先来说一下界面设计,在此之前我看过途牛网和驴妈妈旅游网的设计,基本上都包括了热门景点线路的分类和大量的图片,当然我的毕设无法做到那么全面因此选择了其中的一小部分来做,把重点的小模块有序的安放在首页,是首页内容较为充实。主界面主要是为用户提供旅游信息,因此不能太花哨,以清晰和功能明确为主。 1.热门景点功能:热门景点在首页最明显的地方占有一席之地,管理员通过后台添加景点信息后,用户可以在首页看见前五个景点的图片,采用flash进行滚动展示,不管是点击图片还是小标题都可以进入查看景点信息,用户也可以通过热门景点模块了解景点信息,通过超链接点入后,可以看到该景点的几条旅行的日程线路、线路的特色和该线路的报价。 2.留言板功能:用户注册登录后可以像在论坛一样发表言论,用户发表言论前还需要填写自己的昵称、QQ、邮箱,还可以选取自己喜欢的头像等,同时也可以看到管理员回复自己的话。 3.旅游信息查询:该功能实际是在网页上插了一个百度地图容器,需要连接网络便可以查看,假如用户想知道自己的景点或者酒店在哪,就可以很方便的定位了。 4.酒店预订功能:该功能也在首页有所显示,管理员通过添加酒店信息和客房管理信息后,用户可以在首页看见前往五个酒店的图片和信息,同时也可以点开该模块查看。用户可以通过名称、星级、号码等关键字搜索,随后点入也可以看见该酒店的客房信息并且预定,点击预订后用户需要填写个人信息,提交后完成预定。 5.自驾游线路:与热门景点不同的是这个模块主要是针对用户的自由行,无需旅行社的约束,在这里用户可以查看出行的工具、出发地、目的地、出行时间、出行天数等,并且具有关键字搜索功能。 6.后台功能:管理员登陆后可以修改管理员登录密码,可以对用户进行管理,删除用户,还可以添加删除热门景点信息,插入热门景点图片,管理酒店信息,进入客房管理后可以添加和查询客房信息,并且可以看到用户的订房信息。再者就是可以查看用户点评并且对用户的点评进行回复。另外也可以对系统公告、友情链接、系统简介进行管理。 在此我把前台模块用户模块图详细划分了制成图4-3如下:
### 回答1: 设计一个基于web旅游网站需要考虑以下因素: 1. 用户界面设计:旅游网站的用户界面应该简单明了,易于使用。应该有一个清晰的导航栏,方便用户浏览和查找信息。可以考虑使用一些吸引人的图片和视频来吸引用户的眼球,同时也应该注意网站的响应速度,保证页面加载速度。 2. 搜索功能:为了方便用户查找旅游信息,应该提供一个强大的搜索功能。用户可以通过输入关键词或选择旅游目的地、时间、预算等条件来查找旅游产品。 3. 产品展示:网站应该提供详细的旅游产品展示,包括产品的价格、行程安排、住宿等相关信息。同时还应该提供一些客户评价和推荐,以便用户参考。 4. 预订和支付功能:网站应该提供方便的预订和支付功能。用户可以直接在网站上预订旅游产品,并选择适当的支付方式,如信用卡、支付宝等。 5. 客户服务:为了提供更好的客户服务,网站应该提供在线客服和电话咨询服务,以解答用户的疑问和提供帮助。 6. 移动端适配:随着越来越多的用户使用移动设备浏览网站,网站应该具备良好的移动端适配能力,保证在各种设备上都能够正常访问和使用。 以上是设计一个基于web旅游网站时需要考虑的一些因素,当然还有很多其他的细节需要注意,如网站安全性、SEO优化等。 ### 回答2: 基于web旅游网站设计,首先需要考虑以下几个方面。 1. 用户界面设计:网站设计应注重用户体验,界面简洁美观,易于导航。采用响应式设计,确保适应各种设备,如手机、平板电脑和电脑。提供直观的菜单和搜索功能,方便用户快速找到所需信息。 2. 旅游目的地展示:网站应提供多样化的旅游目的地内容,包括景点介绍、旅行攻略、当地文化和风俗等。为每个目的地提供精美的图片和详细的描述,帮助用户更好地了解和选择旅游目的地。 3. 预订和定制功能:网站应提供方便快捷的预订和定制功能,包括酒店预订、机票预订、旅游套餐等。用户可以根据自身需求选择合适的产品,并进行在线支付。此外,网站还应提供在线客服和咨询服务,方便用户在预订过程中获得支持和解答问题。 4. 用户评价和分享功能:为了增加网站的可信度和吸引力,网站应提供用户评价和分享功能。用户可以在网站上分享自己的旅游经验和评价,帮助其他用户做出更好的选择。同时,网站也可以利用这些评价和分享来改进服务和产品质量。 5. 多语言和多货币支持:考虑到国际旅游市场的需求,网站应提供多语言和多货币支持。用户可以选择自己的首选语言和货币,方便他们浏览和预订旅游产品。 综上所述,基于web旅游网站设计应注重用户体验和方便性,提供全面的旅游目的地信息和预订定制功能,同时提供用户评价和分享功能,以及多语言和多货币支持,以满足不同用户的需求。 ### 回答3: 基于web旅游网站设计包括以下几个方面。 首先,网站首页应该设计得富有吸引力,以吸引用户的注意力并引导他们浏览更多的内容。可以使用精美的图片和吸引人的字体来展示旅游目的地和景点的魅力。 其次,网站应该提供详细的旅游信息。用户可以搜索和浏览各个目的地的详细介绍、景点推荐、当地文化和美食等信息。用户还可以查看每个目的地的交通、住宿、餐饮和购物指南,以及旅游活动和节日的安排。 第三,网站应该提供在线预订服务。用户可以根据自己的需求选择旅行日期、目的地和旅游套餐,并在线预订机票、酒店、景点门票和旅游包车等服务。网站还应该提供安全可靠的支付渠道,以便用户完成交易。 第四,网站应该有用户评论和评分功能。用户可以在网站上分享自己的旅行经验,评价和推荐目的地、酒店和景点。这些评论和评分可以帮助其他用户做出更好的决策。 最后,网站应该有一个易于导航的界面和搜索功能。用户可以方便地浏览和找到自己感兴趣的内容,例如根据旅行时间、旅行方式、旅游主题和预算等条件进行筛选和搜索。 总之,基于web旅游网站设计应该注重提供吸引人的内容、方便的预订服务和用户交流功能,以提供优质的旅游信息和满足用户的旅行需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值