`

Spring宠物商店学习笔记(二)

阅读更多
项目框架

1、Struts/Spring MVC

2、Spring

3、iBatis

 
Struts/Spring MVC视图层的切换

    <servlet-mapping>       <servlet-name>petstore</servlet-name>       <!--       <servlet-name>action</servlet-name>       -->       <url-pattern>*.do</url-pattern>
    </servlet-mapping>

 
数据库表设计理念之一

将经常查询更新的数据信息进行小表化处理。(一对一的关系)

如:orders  和  orderstatus;item  和  inventory

  
从面向对象的角度来分析项目

**************************************

第一部分 购物车部分

一、购物车

1、实现序列化(在网际间传输)

       public class Cart implements Serializable 
2、购物车应有属性

    /* Private Fields */    /**使用Map的容易查找、容易删除的优点*/    private final Map itemMap = Collections.synchronizedMap(new HashMap());     /**使用List的存储有序性的优点。此处用到Spring的分页技术*/
    private final PagedListHolder itemList = new PagedListHolder();

 
3、构造方法

    public Cart() {       //设置每页的最大显示购物项的数量。       this.itemList.setPageSize(4);
    }

 
4、供显示用的方法(使用PagedListHolder对象)

       public Iterator getAllCartItems()
       public PagedListHolder getCartItemList()

 
5、购物车的方法

       public int getNumberOfItems()       public boolean containsItemId(String itemId)       public void addItem(Item item, boolean isInStock)       public Item removeItemById(String itemId)       public void incrementQuantityByItemId(String itemId)       public void setQuantityByItemId(String itemId, int quantity)
       public double getSubTotal()

 
二、购物项部分

1、实现序列化(在网际间传输)

       public class CartItem implements Serializable

2、购物项应有属性及其对应的setter和getter方法

    private Item item;    private int quantity;
    private boolean inStock;

 
3、购物项的方法

public double getTotalPrice()
public void incrementQuantity()

 
第二部分 订单部分(持久化)

一、订单

二、订单项

  private int orderId;  private int lineNumber;  private int quantity;  private String itemId;  private double unitPrice;
  private Item item;

 
第三部分 产品部分(持久化)

一、商品目录信息(Category)

  private String categoryId;  private String name;
  private String description;

 
二、商品总体信息(Product)

  private String productId;  private String categoryId;  private String name;
  private String description;

 
三、商品明细信息(Item)

       涉及商品总体信息、供应商信息、商品具体信息、该商品的库存量等。

 
四、供应商信息(略)

 
第四部分 用户部分(持久化)

**************************************

  
项目用到基本的技术

1、未登陆的购物车实现技术;

2、订单产生前后的页面失效技术;

3、登陆后定向到前一个请求的action技术;

 
一、未登陆的购物车实现技术(实质就是Session范围内购物车在内存存储的技术)

<action path="/shop/addItemToCart"    type="org.springframework.samples.jpetstore.web.struts.AddItemToCartAction"  name="cartForm" scope="session" validate="false">    <forward name="success" path="/WEB-INF/jsp/struts/Cart.jsp" />
</action>

<form-bean name="cartForm"
    type="org.springframework.samples.jpetstore.web.struts.CartActionForm" />

 
1、用Session范围内的CartActionForm来获取workingItemId参数和该用户的购物车Cart;

2、在Action中处理业务;

3、页面显示购物车信息

 
二、订单生成技术

(包含:登陆后定向到前一个请求的action技术、订单产生前后的页面失效技术)

<action path="/shop/newOrder"    type="org.springframework.samples.jpetstore.web.struts.NewOrderAction"    name="workingOrderForm" scope="session" validate="true"    input="/WEB-INF/jsp/struts/NewOrderForm.jsp">    <forward name="confirm"       path="/WEB-INF/jsp/struts/ConfirmOrder.jsp" />    <forward name="shipping"       path="/WEB-INF/jsp/struts/ShippingForm.jsp" />    <forward name="success"       path="/WEB-INF/jsp/struts/ViewOrder.jsp" />
</action>

<form-bean name="workingOrderForm"
    type="org.springframework.samples.jpetstore.web.struts.OrderActionForm" />

 
1、未登陆访问newOrder.do将转到登陆页面,同时在request范围内保留请求url和参数;

2、登陆后跳转到上次访问的地址;

3、输入订单的支付、邮寄信息,生成订单确认;(部分页面用导航时必须过期) 
4、生成最终的订单。(后退网页过期)

分享到:
评论

相关推荐

    Springcloud学习笔记.md

    Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Spring...

    黑马程序员-SpringCloud-学习笔记-03-Eureka注册中心

    黑马程序员-SpringCloud-学习笔记-03-Eureka注册中心

    springsecurity学习笔记

    在"springsecurity学习笔记"中,你可能会涉及以下主题: - Spring Security的基本配置,包括web安全配置和全局安全配置。 - 如何自定义认证和授权流程,比如实现自定义的AuthenticationProvider和...

    Spring学习笔记( spring视频笔记)

    Spring学习笔记( spring视频笔记)

    Spring6学习笔记

    Spring6学习笔记,师承老杜

    spring实用学习笔记(能够跟着实操的)

    spring实用学习笔记(能够跟着实操的)spring实用学习笔记(能够跟着实操的)spring实用学习笔记(能够跟着实操的)spring实用学习笔记(能够跟着实操的)spring实用学习笔记(能够跟着实操的)spring实用学习笔记...

    Spring学习笔记 自我总结

    spring学习笔记

    Spring技术内幕 学习笔记

    《Spring技术内幕 学习笔记》是一份深入探讨Spring框架核心机制的学习资料,结合作者zzc1684在iteye博客上的博文,我们可以从中学习到Spring框架的多个重要知识点。Spring作为Java企业级应用开发的基石,其设计思想...

    Spring学习笔记&源码

    本资料“Spring学习笔记&源码”是基于网易云课堂黑马程序员的Spring四天精通课程,旨在帮助学习者深入理解和实践Spring框架。 笔记部分可能会涵盖以下内容: 1. **Spring概述**:介绍Spring框架的历史、特点和主要...

    《springcloud&学习资料》--尚硅谷SpringCloud视频学习笔记.zip

    无论做毕业设计还是用于学习技能,或工作中当做参考资料,都能发挥重要作用 亲们下载我任何一个付费资源后,即可私信联系我免费下载其他相关资源哦~ 个人花大量时间整理出的实战资料,内容丰富,文档也很详细。无论...

    马士兵老师spring框架学习笔记

    马士兵老师是知名的Java教育专家,他的Spring框架学习笔记深入浅出,对于初学者和进阶者来说都是一份宝贵的资源。这份笔记涵盖了Spring的核心概念、配置、AOP(面向切面编程)、DI(依赖注入)等关键知识点。 1. **...

    黑马程序员-SpringCloud-学习笔记01-认识微服务

    黑马程序员-SpringCloud-学习笔记01-认识微服务

    springcloud学习笔记.pdf

    Spring Cloud 学习笔记 本笔记主要介绍了从单体架构到微服务架构的演变过程,以及 Spring Cloud 中的微服务架构搭建。下面是本笔记的详细知识点总结: 一、单体架构 单体架构是指整个系统只有一个工程,打包往往...

    SpringCloud学习笔记

    【SpringBoot核心特性】 SpringBoot是Spring框架的一个扩展,它旨在简化Spring应用程序的开发过程,...这份学习笔记涵盖了SpringBoot的基础特性和SpringCloud的负载均衡实践,对于深入理解这两个技术有极大的帮助。

    狂神springcloud学习笔记加代码

    狂神springcloud学习笔记加代码 笔记可以看:https://www.kuangstudy.com/bbs/1374942542566551554#header4 视频链接:https://www.bilibili.com/video/BV1jJ411S7xr

    spring框架整体学习笔记

    spring框架整体知识点整理,代码样例

    Spring Cloud 学习笔记.pdf

    Spring Cloud是一套微服务架构下的分布式系统解决方案,提供了在分布式系统环境下快速构建一些常见模式的工具,如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式...

    Spring学习笔记(马士兵spring视频笔记).doc

    Spring学习笔记(马士兵spring视频笔记).docSpring学习笔记(马士兵spring视频笔记).docSpring学习笔记(马士兵spring视频笔记).docSpring学习笔记(马士兵spring视频笔记).doc

    Spring学习笔记+学习源码.zip

    这份"Spring学习笔记+学习源码.zip"资源包含了深入学习Spring及其相关技术的知识点,以及实践代码,对提升Spring技能将大有裨益。 首先,我们来详细讨论Spring框架的主要组件和功能: 1. **依赖注入(Dependency ...

    Spring学习笔记(精华全记录)

    ### Spring学习笔记(精华全记录) #### Spring框架概述 Spring框架源自Rod Johnson的个人项目,最初于2002年末发布。Spring并非一开始就作为一个完整的框架出现,而是从一个项目逐步发展而来。随着项目的成熟,...

Global site tag (gtag.js) - Google Analytics