标签: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>
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")); } }
案例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上
标签:pid 解耦 tcl node method isp base str 点击
原文地址:http://www.cnblogs.com/ou-pc/p/7885678.html