点击显示购物车 但出来的却是添加购物车成功页面(也就是success页面)并且数量显示null,id也显示null。不知道代码哪里出了错误

来源:2-11 显示购物车

夏均可不是均可

2018-09-01 14:57

package servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import dao.ItemsDAO;import entity.Cart;import entity.Items;/** * Servlet implementation class CartServlet */@WebServlet("/CartServlet")public class CartServlet extends HttpServlet {	private static final long serialVersionUID = 1L;		private String action;//表示购物车的动作 ,add,show,delete		private ItemsDAO idao = new ItemsDAO();//商品业务逻辑类的对象,比如根据编号获得商品           /**     * @see HttpServlet#HttpServlet()     */    public CartServlet() {        super();        // TODO Auto-generated constructor stub    }	/**	* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)	*/	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {		// TODO Auto-generated method stub		doPost(request, response);	}	/**	* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)	*/	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {		// TODO Auto-generated method stub				response.setContentType("text/html;charset=utf-8");		PrintWriter out = response.getWriter();		if(request.getParameter("action")!=null)		{			//把获得的动作赋给action属性			this.action = request.getParameter("action");			if(action.equals("add")) //如果是添加商品进购物车			{				if(addToCart(request,response))				{					request.getRequestDispatcher("/success.jsp").forward(request, response);				}				else				{					request.getRequestDispatcher("/failure.jsp").forward(request, response);				}			}			if(action.equals("show"))//如果是显示购物车			{				request.getRequestDispatcher("/cart.jsp").forward(request, response);			}			if(action.equals("delete")) //如果是执行删除购物车中的商品			{				if(deleteFromCart(request,response))//如果删除成功				{					request.getRequestDispatcher("/cart.jsp").forward(request, response);				}				else				{					request.getRequestDispatcher("/cart.jsp").forward(request, response);				}			}		}	}		//添加商品进购物车的方法	private boolean addToCart(HttpServletRequest request, HttpServletResponse response)	{		String id=request.getParameter("id");		String number=request.getParameter("num");		Items item=idao.getItemsById(Integer.parseInt(id));//根据商品id获取商品资料				//是否第一次给购物车添加商品。若是,则session中以前没有购物车对象		if(request.getSession().getAttribute("cart")==null)		{			Cart cart= new Cart();			request.getSession().setAttribute("cart", cart);		}		//若不是第一次购买则直接获得一个cart对象		Cart cart=(Cart) request.getSession().getAttribute("cart");		if(cart.addGoodsInCart(item, Integer.parseInt(number)))		{			return true;		}		else		{			return false;		}	}		private boolean deleteFromCart(HttpServletRequest request, HttpServletResponse response)	{		String id = request.getParameter("id");		Cart cart = (Cart)request.getSession().getAttribute("cart");	    Items item = idao.getItemsById(Integer.parseInt(id));	    if(cart.removeGoodsInCart(item))	    {	    	return true;	    }	    else	    {	    	return false;	    }	}}
 <%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8" %><%@ page import="entity.Items"%><%@ page import="dao.ItemsDAO"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP 'details.jsp' starting page</title>    	<meta http-equiv="pragma" content="no-cache">	<meta http-equiv="cache-control" content="no-cache">	<meta http-equiv="expires" content="0">    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">	<meta http-equiv="description" content="This is my page">	<!--	<link rel="stylesheet" type="text/css" href="styles.css">	-->	<link href="css/main.css" rel="stylesheet" type="text/css">	<script type="text/javascript" src="js/lhgcore.js"></script>    <script type="text/javascript" src="js/lhgdialog.js"></script>    <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>	    <style type="text/css">	   hr{	     	     border-color:FF7F00; 	   }	   	   div{	      float:left;	      margin-left: 30px;	      margin-right:30px;	      margin-top: 5px;	      margin-bottom: 5px;	     	   }	   div dd{	      margin:0px;	      font-size:10pt;	   }	   div dd.dd_name	   {	      color:blue;	   }	   div dd.dd_city	   {	      color:#000;	   }	   div #cart	   {	     margin:0px auto;	     text-align:right; 	   }	   span{	     padding:0 2px;border:1px #c0c0c0 solid;cursor:pointer;	   }	   a{	      text-decoration: none; 	   }	</style>  </head>    <body>    <h1>商品详情</h1>    <a href="index.jsp">首页</a> >> <a href="index.jsp">商品列表</a>    <hr>    <center>      <table width="750" height="60" cellpadding="0" cellspacing="0" border="0">        <tr>          <!-- 商品详情 -->          <%              ItemsDAO itemDao = new ItemsDAO();             Items item = itemDao.getItemsById(Integer.parseInt(request.getParameter("id")));             if(item!=null)             {          %>          <td width="70%" valign="top">             <table>               <tr>                 <td rowspan="5"><img src="images/<%=item.getPicture()%>" width="200" height="160"/></td>               </tr>               <tr>                 <td><B><%=item.getName() %></B></td>                </tr>               <tr>                 <td>产地:<%=item.getCity()%></td>               </tr>               <tr>                 <td>价格:<%=item.getPrice() %>¥</td>               </tr>               <tr>                 <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>               </tr>              </table>             <div id="cart">               <img src="images/buy_now.png">               <a href="javascript:selflog_show(<%=item.getId()%>)"><img src="images/in_cart.png"></a>               <a href="servlet/CartServlet?action=show"><img src="images/view_cart.jpg"/></a>             </div>          </td>          <%             }          %>          <%               String list ="";              //从客户端获得Cookies集合              Cookie[] cookies = request.getCookies();              //遍历这个Cookies集合              if(cookies!=null&&cookies.length>0)              {	              for(Cookie c:cookies)	              {	                  if(c.getName().equals("ListViewCookie"))	                  {	                     list = c.getValue();	                  }	              }	          }                            list+=request.getParameter("id")+"#";              //如果浏览记录超过1000条,清零.              String[] arr = list.split("#");              if(arr!=null&&arr.length>0)              {                  if(arr.length>=1000)                  {                      list="";                  }              }              Cookie cookie = new Cookie("ListViewCookie",list);              response.addCookie(cookie);                    %>          <!-- 浏览过的商品 -->          <td width="30%" bgcolor="#EEE" align="center">             <br>             <b><font color="#FF7F00">您浏览过的商品</font></b><br>             <!-- 循环开始 -->             <%                 ArrayList<Items> itemlist = itemDao.getViewList(list);                if(itemlist!=null&&itemlist.size()>0 )                {                   System.out.println("itemlist.size="+itemlist.size());                   for(Items i:itemlist)                   {                                      %>             <div>             <dl>               <dt>                 <a href="details.jsp?id=<%=i.getId()%>"><img src="images/<%=i.getPicture() %>" width="120" height="90" border="1"/></a>               </dt>               <dd class="dd_name"><%=i.getName() %></dd>                <dd class="dd_city">产地:<%=i.getCity() %>&nbsp;&nbsp;价格:<%=i.getPrice() %> ¥ </dd>              </dl>             </div>             <%                    }                }             %>             <!-- 循环结束 -->          </td>        </tr>      </table>    </center>  </body></html>
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8" %><%@ page import="entity.Cart" %><%@ page import="entity.Items" %><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP 'cart.jsp' starting page</title>    	<meta http-equiv="pragma" content="no-cache">	<meta http-equiv="cache-control" content="no-cache">	<meta http-equiv="expires" content="0">    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">	<meta http-equiv="description" content="This is my page">	<!--	<link rel="stylesheet" type="text/css" href="styles.css">	-->	<link type="text/css" rel="stylesheet" href="css/style1.css" />    <script language="javascript">	    function delcfm() {	        if (!confirm("确认要删除?")) {	            window.event.returnValue = false;	        }	    }   </script>  </head>    <body><h1>我的购物车</h1>   <a href="index.jsp">首页</a> <a href="index.jsp">商品列表</a>   <hr>    <div id="shopping">   <form action="" method="">					<table>				<tr>					<th>商品名称</th>					<th>商品单价</th>					<th>商品价格</th>					<th>购买数量</th>					<th>操作</th>				</tr>				<% 				   //首先判断session中是否有购物车对象				   if(request.getSession().getAttribute("cart")!=null)				   {				%>				<!-- 循环的开始 -->				     <% 				     	 //先获得一个购物车				         Cart cart = (Cart)request.getSession().getAttribute("cart");				         //接下来开始遍历购物车				         HashMap<Items,Integer> goods = cart.getGoods();				         //先获得键的集合				         Set<Items> items = goods.keySet();				         Iterator<Items> it = items.iterator();				         				         while(it.hasNext())				         {				            Items i = it.next();				     %> 				<tr name="products" id="product_id_1">					<td class="thumb"><img src="images/<%=i.getPicture()%>" /><a href=""><%=i.getName()%></a></td>					<td class="number"><%=i.getPrice() %></td>					<td class="price" id="price_id_1">						<span><%=i.getPrice()*goods.get(i) %></span>						<input type="hidden" value="" />					</td>					<td class="number">                     	<%=goods.get(i)/*获得否买数量*/%>										</td>                                            <td class="delete">					  <a href="servlet/CartServlet?action=delete&id=<%=i.getId()%>" onclick="delcfm();">删除</a>					                  					</td>				</tr>				     <% 				         }				     %>				<!--循环的结束-->							</table>			<div class="total"><span id="total">总计:<%=cart.getTotalPrice() %>¥</span></div>			  <% 			    }			%>			<div class="button"><input type="submit" value="" /></div>		</form>	</div>  </body></html>
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8" %><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP 'success.jsp' starting page</title>    	<meta http-equiv="pragma" content="no-cache">	<meta http-equiv="cache-control" content="no-cache">	<meta http-equiv="expires" content="0">    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">	<meta http-equiv="description" content="This is my page">	<!--	<link rel="stylesheet" type="text/css" href="styles.css">	-->  </head>    <body>    <center>      <img src="images/add_cart_success.jpg"/>      <hr>      <%          String id = request.getParameter("id");         String num = request.getParameter("num");      %>             您成功购买了<%=num%>件商品编号为<%=id%>的商品&nbsp;&nbsp;&nbsp;&nbsp;      <br>      <br>      <br>          </center>  </body></html>


写回答 关注

2回答

  • KDwin
    2018-09-22 16:15:53
    已采纳

    代码格式整理一下啊。。。这么乱怎么看

  • 有梦想的小伙子SY
    2018-11-23 14:25:24

    代码格式太乱了,ctrl+shift+F键格式化一下代码再发出来吧。

JAVA遇见HTML——Servlet篇

本门课程在JSP课程的基础上,深入介绍Servlet的基础知识

160617 学习 · 1053 问题

查看课程

相似问题