0

次のコードを使用して、本のセッション属性を作成し、ショッピングカートボタンをクリックしたときに表示します

 <a href="ShoppingCart?bname=<%=bName%>&bprice=<%=bPrice%>"><input type="image" src="pics/buy-now.png" height=80px width=240px style="position: absolute; bottom: 30px; right: 150px;" /></a>


ShoppingCart.jsp

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub

    String bName= request.getParameter("bname");
    String bPrice= request.getParameter("bprice");
    HttpSession sess = request.getSession();
    sess.setAttribute(bName, bPrice);


request.getRequestDispatcher("paranormal.jsp").forward(request, response);


}

   CheckCart.jsp

<table  border="1" cellpadding="5" cellspacing="5">
  <tr><th>Title</th><th>Price</th><th>Quantity</th><th>Delivery time</th> 
    <th>Remove</th></tr>
  <% 
    session.setMaxInactiveInterval(1800); 
   Enumeration e = session.getAttributeNames();    
    {
   while(e.hasMoreElements())
   {
       %>
       <tr>
       <%
       String book_naam = (String)e.nextElement();
       String book_price = (String)session.getAttribute(book_naam);%>
       <td><%=book_naam %></td>
       <td><%=book_price %></td>
       <td><Select name="quantity">
        <option>1</option>
        <option>2</option>
        <option>3</option>
        <option>4</option>
        <option>5</option>
      </Select>
       </td>
       <td>2-3 working days</td>
  <td><input type="submit" value="remove"   onclick="window.document.location.href='remove.jsp?paramPrice=<%=book_price%>&paramName=<%=book_naam%>'"/></td>
  </tr>
       <%
       //out.print(book_naam+"="+book_price+"<br>");   
   }
    }
 %>

問題は、ログインすると、ログイン セッション属性もショッピング カートに入るということです.....どこに問題があるかはわかっていますが、それに取り組むことができません....助けてください. 列挙 e = session.getAttributeNames();
{ while(e.hasMoreElements())...................ここが主な問題です...

4

1 に答える 1

0

列挙をトラバースしながらチェックを入れます。

String book_naam = (String)e.nextElement();

if(book_naam.equals("login"))
{
continue;
}

loginこれにより、列挙内に属性が見つかった場合、現在の反復がスキップされ、次の反復が開始されます。

于 2013-05-06T08:43:44.957 に答える