mvc:二

回顾:BaseServlet的抽取

  统一处理请求的方法request.getParameter("method")

    通过反射获取方法对象

    让方法执行

  统一处理请求转发

    规定所有的方法都有返回值:String

    若需要转发,返回转发路径

    若不需要转发,返回null

  统一处理错误页面

  设置默认执行方法(index)

用户注册  发送邮件

用户激活  先通过code查找用户  再修改

用户登录  判断是否激活了

用户退出  session.invalidate()

前台分类信息展示

需求:访问任意页面的时候,都需要将分类的信息展示出来

技术分析:

  将共同的内容抽取包含(静态包含和动态包含)

  访问任意一个页面应该携带包含的信息(ajax)

步骤分析

  1.创建分类表(见store.sql文件中,category表创建数据插入部分)

  2.抽取所有页面上 logo和菜单部分(head.jsp),把index.jsp里面写菜单栏和导航条部分的代码抽取到head.jsp中,然后在index.jsp中<%@include file=""%>静态包含:注意包含与转发路径写内部路径

    页面加载的时候

    编写函数

      发送ajax请求 $.post(url,params,fn,type);

        url:/store/category(category:分类,这次查分类模块的servlet)

        params:method=findAll

        founction(方法):将返回值遍历,每一个分类封装成li标签,插入到ul标签内部

        type(返回):返回list集合,list集合扔页面不好使,所以用json。将json转list用JsonList

      后台编写categoryservlet,继承baseservlet,编写findAll方法

        调用service,查询所有的分类, 分类列表  的json字符串(String)

        现在有了字符串,需要将字符串  写回  页面

      categroyservice中的操作

        调用dao,获取所有的分类

        将list转成json返回

  3.在所有的页面里将head.jsp包含进去(代码上面)

    获取json返回值

    遍历返回值

    每一个分类封装成li标签,插入到ul标签内部

 

由于导航条和菜单栏部分一般不变化,如果每个人访问都进行遍历一次,那么服务器的压力会很大。所以使用redis进行优化

(理解)。。。。。。没学redis.。。。。。跳过

最新商品和热门商品展示

需求:访问首页的时候,需要将 最新商品 和 热门商品 展示出来(这些东西都是从数据库中查出来的)

方式一:ajax异步(太啰嗦,东西要拼字符串)

方式二:同步方式(思考:jsp只是展示的,那么数据要什么时候去查?数据是servlet去查的,但是由谁去发请求什么时候发?)

使用同步分析:请求的是localhost:8080/store但首页是localhost:8080/store/jsp/index.jsp如何保证路径不变,但是页面显示----------请求转发

0.创建商品表

1.访问项目首页,请求转发indexservlet

  indexservlet中使用默认index处理,调用productservice查询热门商品(is hot字段)和最新商品(时间排序),每一个都返回一个list

  将两个list放入request域中,请求转发到/jsp/index.jsp

2.在页面上将数据遍历出来

单个商品的详情

 需求:

  在首页上点击每个商品,将这个商品的详细信息展示在页面上(product_info.jsp)即点击上面的商品图片出现商品详细信息

步骤分析:

  1.给每个商品添加超链接<a href="/store/product?method=getById&pid=xxx">yyy</a>

  2.编写productServlet,继承BaseServlet,编写getById方法

    获取商品的pid

    调用service获取一个商品,返回值:product

    请求转发到product_info.jsp

  3.service.dao

  4.在product_info.jsp将商品展示

分类商品的展示

需求:点击菜单栏上某一个分类的时候,将该分类下的商品,分页展示出来(默认第一页)

技术分析:

  分页

    页面上需要的数据(将其封装成一个bean)

    当前页数据  当前页  总页数  总记录数  每页显示的条数

  limit m,n----------->limit (当前页-1)*每页显示的条数,每页显示的条数

步骤分析:

  1.点击菜单栏的一个分类超链接,修改head.jsp上的每个分类的超链接(点击后出现的页面是分页的)

    <a href = "/store/product?method = findByPage&pageNumber=1&cid=xxx">

  2.在productservlet中需要编写findByPage方法

    获取pagenumber  获取cid  设置pageSize

    调用service获取分页的数据  返回值:PageBean

    将pagebean放入request域中,请求转发/jsp/product_list.jsp

  3.编写service

    返回值pagebean  创建一个pagebean

    设置当前页需要的数据 调用dao

    设置总记录数 调用dao

  4.dao

  5.在jsp/product_list.jsp上展示商品

第二天总结

 1.展示分类商品用到包含(jsp静态包含)和ajax(页面加载时确定了事件),用到了json

 2.最新商品和热门商品(访问首页的时候就需要将他们展示出来 IndexServlet)

 3.单个商品详情的展示

 4.导航栏的分类信息的展示(展示后的页面点击单个商品,照样能获取到商品详情(添加链接到详情servlet)),涉及到分页功能

 

 

 

    

  

     

 

转载于:https://www.cnblogs.com/djlindex/p/11430822.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值