Day37 38 39 JavaWeb案例

一.用户激活

  1. 准备工作
    用户点击了邮箱中的激活链接就,向服务端发送method=active&code= 5230j5j2l345j2
  2. UserServlet _ _ _ >active
    获取到激活码
    调用service功能,对帐户进行激活操作
    进行信息提示
  3. service _ dao
  4. /jsp/login.jsp
    获取到注册成功的提示信息  ${msg}
  5. info.jsp已实现,不需再设置内容

二.用户登录

  1. 准备工作
    实现用户登录页面跳转
    *_ /jsp/index.jsp     修改登录链接
          <a href="${pageContext.request.contextPath}/UserServlet?method=loginUI">登录</a>
    *_ UserServlet_ _ _>loginUI
          return "/jsp/login.jsp";
    /jsp/login.jsp中
    设置form标签action , method
    设置表单下input标签的name属性
  2. User_userLogin
    *_获取数据
    *_调用业务层功能
    *_成功,session存放用户信息,重定向到首页
    *_失败,request放入失败信息,转发到登录页面
  3. service _ dao
    PS: service:自定义异常向servlet传递两种数据(密码不存在,用户未激活)
  4. /jsp/index.jsp  获取到了用户信息

三.用户退出

  1. 准备工作,
    /jsp/index.jsp  修改链接
    <a href="${pageContext.request.contextPath}/UserServlet?method=logOut">退出</a>
  2. UserServlet_ __>logOut
    清除session
    重新定向到首页
    return null;

四.抽取公共页面

  1. 复制info.jsp____>header.jsp
  2. 打开/jsp/index.jsp, 将页面部分的导航和菜单区域复制到header.jsp
    在header.jsp通过taglib导入标签库
  3. 打开其他的所有页面进行替换

五.首页分类查询

  1. webContent/index.jsp中
         <jsp:forward page="/IndexServlet"></jsp:forward>
  2. 创建分类模块的相关程序
    CategoryServlet  CategoryService  CategoryServiceImp  CategoryDao  CategoryDaoImp Category
  3. 创建IndexServlet
    调用 业务层的功能: 获取全部分类信息,返回集合
    将返回的集合放入request
    转发到真实的首页 /jsp/index.jsp
  4. 实现CategoryService CategoryDao
  5. 弊端: 当访问首页是可以看到全部分类信息,但是如果访问其它界面,看不到分类信息

六.分类查询优化  ajax

  1. /jsp/header.jsp
    当页面加载完毕之后,向服务端发起Ajax请求,服务端经过处理
    将所有分类信息以JSON格式的数据返回,客户端获取返回的所有分类
    绑定在页面的显示分类区域
    页面底部
    $.post(url,{},function(data){},"json");
  2. CategoryServlet___>getAllCats
            //调用业务层获取全部分类
            //将全部分类转换成json格式的数据
            //将全部分类信息响应到客户端
  3. 调试
    观察本次请求,响应网络传输情况,
    目的: 排除两端错误
  4. 实现/jsp/header.jsp中AJAX代码的剩余部分
  5. 弊端: 如果用户频繁的访问包含分类信息的页面,每次都要去DB中获取分类信息,影响性能

七.分类查询优化  redis

  1. 准备工作
    导入jar包
    导入JedisUtils工具类(修改参数127.0.0.1)
    启动windows版本的redis
  2. 实现CategoryServlet___>findAllCats
    在redis中获取全部分类信息
    如果无法获取分类信息
    _____查询DB中的分类,转换成JSON格式字符串
    _____将JSON格式字符串向redis缓存一份,之后将JSON格式数据响应到客户端
    如果可以获取到分类信息
    _____直接响应即可 

八.首页热门商品,最新商品查询

  1. SQL语句编写
    #查询商品表中最新的9件商品信息
    SELECT * FROM product WHERE pflag=0 ORDER BY pdate DESC LIMIT 0,9 ;
    #查询商品表中最热,最新的9件商品信息
    SELECT * FROM product WHERE pflag=0 AND is_hot=1 ORDER BY pdate DESC LIMIT 0,9 ;
  2. IndexServlet___>execute
            //调用业务层查询最新商品,查询最热商品,返回两个集合
            //将2个集合放入到request
            //转发到真实的首页
  3. 建立商品模块相关程序
    ProductServlet  ProductServlce  ProductServlceImp  ProductDao  ProductDaoImp  Product
  4. 调用service dao
  5. /jsp/index.jsp  获取最新/最热9件商品信息

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值