课堂作业08--MVC框架的具体应用

什么是MVC框架?

(1)  视图层:

首先,JSP页面(视图层)的js函数中使用ajax技术进行传值,将URL赋值为对应的action,调用action中的方法,即通过hibernate(模型层)获取数据库数据。将收到的数据显示在JSP页面。

实现MVC思想中:发送用户动作(例如按钮点击)到控制器,并可以处理很多不同的视图。

(2)  控制层

当JSP页面提交了用户需求,交给控制器去处理,控制器需要从模型中找到对应的数据,并返回到JSP页面。

实现MVC思想中:接受用户的输入,解释用户的行为,并提供模型数据至视图。消除模型与视图依赖关系。

(3)  模型层

模型层中含有数据库的全部数据,并且定义了相应的方法去调用,当控制层调用这些方法时,像控制层传递这些数据。

MVC在淘宝购买过程的应用:

  当我们点击商品页面的加入购物车图标,然后商品就直接加入到购物车列表中,不管用户是否登录。然后我们换了一台设备,发现该网站我们之前在另一台设备上加入购物车的商品不存在。由此可以推断出:购物车列表的内容不是存放在数据库,而是在cookie中。所以购物车功能实现是在客户端实现的。购物车的功能有:展示购物车列表、向购物车列表中添加商品(add)、修改购物车列表中商品的数量、删除列表中的商品。

     在展示购物车列表功能中,因为购物车的商品列表是保存在cookie中的,所以获取购物车列表就是从cookie中获取商品列表。首先cookie中保存形式也是key-value的形式,key指的是保存的名称,比如TT_CART,是一个标志而已。value是保存的商品的具体信息,是以字符串的形式保存的,通常将列表的形式转换成json格式的数据,因为json格式的就是一个字符串的形式保存的。cookie属于会话跟踪技术,写入cookie是服务器的response写入的,即服务器给客户端颁发一个名词cookie。所以获取cookie就需要使用request来获取。

service层实现:

       // 从cookie中获取购物车列表

       private List<CartItem> getItemListByCookie(HttpServletRequest request)

       {

              String cookiejson = CookieUtils.getCookieValue(request,"TT_CART",true);

        //转换成商品列表

              if(cookiejson==null)

              {

                     return new ArrrayList<>();

              }

              //cookie中保存的也是key-value的值;value是字符串,即json格式的数据

              List<CartItem>list=JsonUtils.jsonToList(cookiejson,CartItem.class);

              return list;

       }

      获取到商品的列表后,controller层实现展示该列表:

       //显示购物车列表

       @RequestMapping("/cart")

       public String showCart(HttpServletRequest request,Model model)

       {

       List<CartItem>showCartList=carService.showCartList(request);

       Model.addAttribute("cartList",showCartList);

       return "cart";

       }

原文地址:https://www.cnblogs.com/dotacai/p/6819478.html