zoukankan      html  css  js  c++  java
  • 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)),涉及到分页功能

        

      

         

  • 相关阅读:
    Codeforces Round #592 (Div. 2)C. The Football Season(暴力,循环节)
    Educational Codeforces Round 72 (Rated for Div. 2)D. Coloring Edges(想法)
    扩展KMP
    poj 1699 Best Sequence(dfs)
    KMP(思路分析)
    poj 1950 Dessert(dfs)
    poj 3278 Catch That Cow(BFS)
    素数环(回溯)
    sort与qsort
    poj 1952 buy low buy lower(DP)
  • 原文地址:https://www.cnblogs.com/djlindex/p/11430822.html
Copyright © 2011-2022 走看看