码迷,mamicode.com
首页 > 编程语言 > 详细

JavaWeb项目--网上商城 (6-3)

时间:2017-11-23 19:41:07      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:pid   解耦   tcl   node   method   isp   base   str   点击   

day3

1.解耦合思想  用配置文件解决

技术分享图片
<?xml version="1.0" encoding="UTF-8"?>
<beans>
   <bean id="ProductDao" class="com.itheima.dao.impl.ProductDaoImpl"/>
  <!--  <bean id="ProductDao" class="com.itheima.dao.impl.ProductDaoHibImpl"/> -->
   <bean id="UserDao" class="com.itheima.dao.impl.UserDaoImpl"/>
   <bean id="CategoryDao" class="com.itheima.dao.impl.CategoryDaoImpl"/>
   <bean id="OrderDao" class="com.itheima.dao.impl.OrderDaoImpl"/>
   
   <bean id="ProductService" class="com.itheima.service.impl.ProductServiceImpl"/>
   <bean id="UserService" class="com.itheima.service.impl.UserServiceImpl"/>
   <bean id="CategoryService" class="com.itheima.service.impl.CategoryServiceImpl"/>
   <bean id="OrderService" class="com.itheima.service.impl.OrderServiceImpl"/>
</beans>
beans.xml
技术分享图片
package com.itheima.utils;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

/**
 * 获取javabean的工厂
 * @author Administrator
 *
 */
public class BeanFactory {

    public static Object getBean(String id){
        try {
            //1.获取document对象
            Document doc=new SAXReader().read(BeanFactory.class.getClassLoader().getResourceAsStream("beans.xml"));
            
            //2.调用api selectSingleNode(表达式)
            Element beanEle=(Element) doc.selectSingleNode("//bean[@id=‘"+id+"‘]");
            
            //3.获取元素的class属性
            String classValue = beanEle.attributeValue("class");
            
            //4.通过反射返回实现类的对象
            Object newInstance = Class.forName(classValue).newInstance();
            return newInstance;
        }  catch (Exception e) {
            e.printStackTrace();
            System.out.println("获取bean失败");
        }
        return null;
    }
    
    public static void main(String[] args) throws Exception {
        System.out.println(getBean("ProductDao1"));
    }
}
BeanFactory 获取javabean的工厂

 

 

案例1-添加到购物车
需求:
在商品的详情页面,输入购买数量,点击加入购物车,将该商品添加到购物车了
技术分析:
session
涉及到实体:
购物车(cart)
属性:
购物项(商品购买信息)的集合
Map<String pid,CartItem>
总金额(total)
方法:
加入购物车
add2cart(CartItem item){
//1.判断购物车是否有该商品
//有:
修改购买数量(原来的数量+item.getCount)
修改总金额(原来的金额+item.getSubtotal())
//无:直接put进去 修改总金额(原来的金额+item.getSubtotal())
}
从购物车中移除
removeFromCart(String pid){
从map中移除指定购物项
修改总金额
}
清空购物车
clearCart(){
清空map
修改总金额=0.0
}
/////////////////////////////////////////////
/////////////////////////////////////////////
购物项(cartItem)
属性:
商品对象(product)
购买数量(count)
小计(subtotal)
方法:
重新编写
getSubtotal(){
return product.getShop_price*count
}
步骤分析:
1.修改商品详情页面(product_info.jsp)
添加一个表单:
要执行方法:method=add2cart
商品的pid:pid=xxx
商品的购买数量:count=123123
点击"加入购物车",将表单提交 /store/cart
2.编写cartServlet 继承baseservlet 编写add2cart
获取商品的pid和count
调用productservice通过pid获取商品

封装cartItem
new cartItem(Product,count)
将cartitem加入购物车
获取购物车(session中获取)
调用购物车的add2cart方法即可

重定向到cart.jsp上

 

JavaWeb项目--网上商城 (6-3)

标签:pid   解耦   tcl   node   method   isp   base   str   点击   

原文地址:http://www.cnblogs.com/ou-pc/p/7885678.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!