黑马旅游网项目总结与完善后端(非maven构建)

项目介绍:仿黑马旅游网,项目不是用maven构建的项目,数据库连接池使用的是c3p0不是druid,操作操作sql用的不是jdbcTemplate而是Apache的DBUtlis工具,json工具用的是阿里的fastjson,redis并没有用到,后期学习了但是,确实不错!后期对项目进行了完善,其实只要认真学完了黑马教程的这期案例,尽管黑马教程后面没有完善,但是自己实现并不困难,后期所有的分析设计都和前面的大同小异。
我的完善:
index.html
人气旅游最新旅游主题旅游的完善
在这里插入图片描述
国内游(境外游差别不大没有展示)
在这里插入图片描述
对导航栏下的出境游、抱团定制、全球自由行进行了数据的填充
( 这些数据的来源都是利用python爬虫从第三方网站爬取所获得的,非手动写入数据库而来的。)
在这里插入图片描述
在这里插入图片描述
收藏排行榜、收藏排行榜下的线路名称、金额搜索特定功能的实现
在这里插入图片描述
在这里插入图片描述
我的收藏
在这里插入图片描述

项目总结

设计模式
  • 三层架构
    前端 html 后台servlet 前端和后台的交互ajax异步技术
    视图层(web层) 业务逻辑层(service层) 访问层(dao层)
    在这里插入图片描述

注册模块

  • 前端完成表单格式的校验,利用Regexp进行格式的校验比如用户名长度特殊字符邮箱的命名格式等,并且为每个input组件绑定onblur监听事件若格式不合法及时提示,序列化表单进行ajax异步提交。

  • 序列化$(form).serialize():input组件必须要有name属性,序列化实质是将表单转化为形似json格式的数据,后台提取的时候也很方便利用request.getParameterMap Map<String, String[]>然后教程里面用的BeanUtils.populate(Bean,HashMap)进行的封装。

  • 激活邮件发送的实现:qq邮箱授权码的获取 进入个人QQ邮箱首页选择设置—账户
    在这里插入图片描述

    • 开启账户下的pop3和smtp服务,需要用手机发送一条信息到指定的号码之后就可以获取到授权码。

    在这里插入图片描述

Filter实现用户自动登录(AutoLoginFilter)

private IUserDao userDao = null;
    public void destroy() {
   
    }

    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
   
        HttpServletRequest request = (HttpServletRequest) req;
        HttpSession session = request.getSession();
        UserBean user = (UserBean) session.getAttribute("user");
        Cookie cookie = null;
        if (user == null) {
   
            Cookie[] cookies = request.getCookies();
            if (cookies != null && cookies.length > 0) {
   
                for (Cookie c : cookies) {
   
                    if (c.getName().equals("AUTO_LOGIN")) {
   
                        cookie = c;
                    }
                }
            }
        }
        if (cookie != null) {
   
            String[] userInfo = cookie.getValue().split("-");
            UserBean u = userDao.findByUserNameAndPwd(userInfo[0], userInfo[1]);
            if (u != null) {
   
                session.setAttribute("user", u);
            }
        }
        chain.doFilter(request, resp);
    }

    public void init(FilterConfig config) throws ServletException {
   
        userDao = new UserDaoImpl();
    }

注意点:session一次会话有效,一次会话指的是从浏览器的打开到关闭,自动登录逻辑就是利用客户端浏览器可以存放cookie的这一特性;首先判断当前session中是否有user,如果有说明用户已经登录用户的信息可以直接从session中获取;如果没有那么cookie就发挥作用了,判断本地cookie是否保存了用户的信息,如果保存了,利用dao层的相关方法对用户名密码进行判断,合法后存入session,自动登录完成。
chain.doFilter()请求和响应的分界线,doFilter之前可以对请求进行处理,之后可以对响应进行处理

分页功能的实现(仿百度前五后四)

 // 1.1 处理页码 先处理两端然后再处理中间
var pn = '<li><a href="javascript:load(1)">首页</a></li>\n';
if (curPage - 1 < 1) {
   
    pn += '<li οnclick="javascript:load(1)" class="threeword"><a href="javascript:;">上一页</a></li>';
} else {
   
    pn += '<li οnclick="javascript:load('+(curPage-1)+')" class="threeword"><a href="javascript:;">上一页</a></li>';
}
// 1.2 前五后四 页面逻辑
var begin;
var end;
if (data.totalPage < 10)
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值