-
点击“删除”按钮时,应跳出一个提示窗。查看全部
-
实现购物数量的增减按钮 <script type="text/javascript"> function selflog_show(id) { var num = document.getElementById("number").value; J.dialog.get({id: 'haoyue_creat',title: '购物成功',width: 600,height:400, link: '<%=path%>/servlet/CartServlet?id='+id+'&num='+num+'&action=add', cover:true}); } function add() { var num = parseInt(document.getElementById("number").value); if(num<100) { document.getElementById("number").value = ++num; } } function sub() { var num = parseInt(document.getElementById("number").value); if(num>1) { document.getElementById("number").value = --num; } } </script> <td>购买数量:<span id="sub" onclick="sub();">-</span><input type="text" id="number" name="number" value="1" size="2"/><span id="add" onclick="add();">+</span></td>查看全部
-
添加商品到购物车的步骤: 首先在CartServlet编写两个私有属性String action/ItemsDao idao。 action表示购物车的动作,包含三种动作:add、show、delete; 接着我们要判断action传的是哪个动作。 idao表示商品要用到的业务逻辑层的对象,比如根据一个编号获取一个商品。 让doGet()做doPost()方法。 在doPost()中,首先判断action的动作,如果不等于空,再判断是否是add,若是,则调用addToCart()方法。 在addToCart()方法中,首先获得request传递的商品编号和商品数量,由编号获得商品对象。然后判断是否是第一次给购物车添加商品,若是,则创建新的购物车对象到Session中;如果不是,则从Session直接获取现有的购物车对象,然后调用该对象的addGoodsInCart()方法,如果方法返回为true,则addToCart()也返回true,并在doPost()中跳转到成功的页面,否则跳转到失败的页面。查看全部
-
如何保证不添加重复商品到购物车?我们需要重写默认的判断规则。 1. 重写Items的hashCode()方法: return this.getId()+this.getName().hashCode(); 如何确定相同商品的返回的hashCose相同?首先,getId()是一个整数,然后getName()是一个字符串,相同字符串的hashCode也相同,所以返回的是相同的值。 2. 重写Items的equals()方法,如图。 3. 重写上述两个方法以后,还要修改addGoodsInCart()方法,不然新添加的重复商品会直接覆盖原有的商品,而数量并没有累加。 public boolean addGoodsInCart(Items item, int number){ //Map提供了put()方法来添加键值对 if(goods.containsKey(item)){//如果添加的商品已经存在,则只要对数量进行累加 goods.put(item, goods.get(item)+number); } else{ goods.put(item, number); } calTotalPrice();//重新计算商品的总金额 return true;//表示添加成功 }查看全部
-
购物车类的测试。 注意要编写实体类Items的toString方法: public String toString(){ return "商品编号:"+this.getId()+"商品名称:"+this.getName(); } 没有重写则这里会输出hashCode,不好看。 截图中的“变量购物商品的集合”改为“遍历购物商品的集合”查看全部
-
购物车的设计思路: 1. 购买商品的集合,因为含有商品信息和对应的购买数量,应采取“键值对”的集合来存储,所以选择Map. 这里写作 private HashMap<Items,Integer> goods; 2. 添加商品到购物车的方法:Map提供了put()方法来添加键值对,这里写作:goods.put(item, number); 3. 删除购物车内的商品:使用Map的remove()方法,写作:goods.remove(item); 4. 统计购物车的总金额,核心是对Map的遍历。 --->要遍历Map集合,首先要获得关键字Items的集合:Set<Items> keys = goods.keySet(); --->Set集合无法使用for循环来遍历,所以需要迭代器来遍历 :Iterator<Items> it = keys.iterator(); while(it.hasNext()) { Items i = it.next(); sum+=i.getPrice() * goods.get(i); } --->什么时候计算总金额?当然是添加和删除购物车商品的时候!每一次添加或删除都需要重新计算。查看全部
-
hashCode与equals方法的重写 @Override public int hashCode() { // TODO Auto-generated method stub return this.getId()+this.getName().hashCode();//保证id和name相同才可相同 } @Override public boolean equals(Object obj) { // TODO Auto-generated method stub if(this==obj) { return true; } if(obj instanceof Items)//instanceof判断是否属于商品类 { Items i = (Items)obj; if(this.getId()==i.getId()&&this.getName().equals(i.getName())) { return true; } else { return false; } } else { return false; } }查看全部
-
mode2=javabean(M)+jsp(v)+servlet(c) MVC思想的体现 jsp提交请求--servlet实例化调用Javabean--读取数据库--返回至控制层(servlet)--传至jsp控制界面查看全部
-
model=jsp+JavaBean Javaweb最早出现开发环境 jsp直接访问数据库可维护性可扩展性差 jsp调用JavaBean(Java类)再者调用数据库 jsp页面呈现反映给浏览器 初步体现分层思想,最简单的三层结构查看全部
-
MVC 软件开发中流行的设计思想 分层思想的体现 用户通过浏览器发出请求 控制器(web servlet)接收,servlet实例化模型(javabean)调用数据库EIS(企业信息系统) jsp(view)查看全部
-
web.xml配置 参数名 参数值 <init-param> <param-name>password</param-name> <param-value>admin</param-value> </init-param>查看全部
-
servlet 在init()函数过程中通过 this.getInitParameter获取参数查看全部
-
项目大纲查看全部
-
Model 2 大致分为三层 充当模型层的是JavaBean,充当控制层的是Servlet,充当视图层的是JSP。 然后要访问的数据就在数据库层。 工作原理: 首先由JSP页面向控制层提交请求,然后由控制层Servlet实例化一个模型层的对象,或者说是调用一些模型层的功能,然后由模型层访问数据库层(读取数据库),模型层得到结果后再反馈给控制层,控制层根据得到的结果选择给用户呈现不同的页面(跳转到不同的JSP页面)。查看全部
-
Model 1 简单来说,就是JSP+JavaBean的开发模式。 分三层结构:界面层(JSP页面)、业务逻辑层(JavaBean)、数据库层。查看全部
举报
0/150
提交
取消