JSP Cookie的使用及保存中文,并用Cookie实现购物车功能

Cookie是服务器存放在客户端的一些数据,比如密码,以及你曾经访问过的一些数据。

设置Cookie

 

[javascript][/javascript] view plaincopy

  1. //设置cookie
  2. Cookie cookie = new Cookie(“TOM”,”111″);
  3. //设置有效期,默认秒为单位
  4. cookie. setMaxAge(7*24*60*60);
  5. //添加cookie到客户端
  6. response.addCookie(cookie);

 

获取Cookie

 

 

[javascript][/javascript] view plaincopy

  1. <%
  2.     //获取cookie
  3.     Cookie[] cookies = request.getCookies();
  4.     if(cookies!=null && cookies.length>0) {
  5.         for(int i=0; i<cookies.length;i++) {
  6.             out.print(cookies[i].getName() +”————”+ cookies[i].getValue() + “<br/>”);
  7.         }
  8.     }
  9. %>

 

Cookie的中文支持

Cookie不支持中文的显示,必要的时候,需要进行转码和解码。

 

转码

 

[javascript][/javascript] view plaincopy

  1. strings[j]=java.net.URLEncoder.encode(list.get(i-1)[j],”UTF-8″);

 

解码

 

 

[javascript][/javascript] view plaincopy

  1. out.print(java.net.URLDecoder.decode(cookies[i].getValue(),”UTF-8″) + “<br/>”);

 

动态删除Table当前行

 

 

[javascript][/javascript] view plaincopy

  1. <script language=”javascript”>
  2. function deletegoods(obj) {
  3.     var rowIndex = obj.parentNode.parentNode.rowIndex;
  4.     var table = document.getElementById(“table”);
  5.     table.deleteRow(rowIndex);
  6.  }
  7. </script>

 

 

Cookie实现购物车功能

以数组模拟选择过程,并把所有的选择项放入Arraylist中。

[html][/html] view plaincopy

  1. <%@page import=”java.util.ArrayList”%>
  2. <%@ page language=”java” contentType=”text/html; charset=UTF-8″
  3.     pageEncoding=”UTF-8″ import=”java.util.*”%>
  4. <%@ taglib uri=”http://java.sun.com/jsp/jstl/core” prefix=”c” %>
  5. <!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
  6. <html>
  7. <head>
  8. <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″>
  9. <title></title>
  10. <script language=”javascript”>
  11. function deletegoods(obj) {
  12.     var rowIndex = obj.parentNode.parentNode.rowIndex;
  13.     var table = document.getElementById(“table”);
  14.     table.deleteRow(rowIndex);
  15.  }
  16. </script>
  17. </head>
  18. <body>
  19. <p>
  20.   <%
  21.     //设置cookie
  22.     ArrayList<String[]> list = new ArrayList<String[]>();
  23.     list.add(new String[]{“1001″,”img/1.jpg”,”经典基本款低帮帆布女鞋2.0 粉绿色”,”#”,”39″,”¥69.00″,”1″});
  24.     list.add(new String[]{“1002″,”img/2.jpg”,”基础罗纹Y字吊带背心 奶蓝色”,”#”,”m”,”¥9.00″,”1″});
  25.     int times = 1*24*60*60;
  26.     for(int i=1;i<=list.size();i++){
  27.         String[] strings = new String[list.get(i-1).length];
  28.         for(int j=0;j<list.get(i-1).length;j++){
  29.             strings[j]=java.net.URLEncoder.encode(list.get(i-1)[j],”UTF-8″);
  30.         }
  31.         Cookie cookie = new Cookie(“item_id_”+i,strings[0]);
  32.         cookie.setMaxAge(times);
  33.         response.addCookie(cookie);
  34.         cookie = new Cookie(“item_img_”+i,strings[1]);
  35.         cookie.setMaxAge(times);
  36.         response.addCookie(cookie);
  37.         cookie = new Cookie(“item_title_”+i,strings[2]);
  38.         cookie.setMaxAge(times);
  39.         response.addCookie(cookie);
  40.         cookie = new Cookie(“item_URL_”+i,strings[3]);
  41.         cookie.setMaxAge(times);
  42.         response.addCookie(cookie);
  43.         cookie = new Cookie(“item_size_”+i,strings[4]);
  44.         cookie.setMaxAge(times);
  45.         response.addCookie(cookie);
  46.         cookie = new Cookie(“item_price_”+i,strings[5]);
  47.         cookie.setMaxAge(times);
  48.         response.addCookie(cookie);
  49.         cookie = new Cookie(“item_number_”+i,strings[6]);
  50.         cookie.setMaxAge(times);
  51.         response.addCookie(cookie);
  52.     }
  53. %>
  54. <%
  55.     //获取cookie
  56.     Cookie[] cookies = request.getCookies();
  57.     if(cookies!=null && cookies.length>0) {
  58.         for(int i=0; i<cookies.length;i++) {
  59.             out.print(cookies[i].getName() +”————”+ java.net.URLDecoder.decode(cookies[i].getValue(),”UTF-8″) + “<br/>”);
  60.         }
  61.     }
  62.     if(cookies!=null && cookies.length>5){
  63.         ArrayList<String[]> goodslist = new ArrayList<String[]>();
  64.         int i=1;
  65.         for(int j=0;j<cookies.length/7;j++){
  66.             String[] strings = new String[7];
  67.             for(int k=0;k<strings.length;k++){
  68.                 strings[k]=java.net.URLDecoder.decode(cookies[i++].getValue(),”UTF-8″);
  69.             }
  70.             goodslist.add(strings);
  71.         }
  72.         pageContext.setAttribute(“goodslist”, goodslist);
  73.     }
  74. //  pageContext.setAttribute(“length”, cookies.length);
  75. %>
  76. </p>
  77. <form name=”form1″ method=”post” action=””>
  78.   <table width=”700″ border=”0″ id=”table”>
  79.     <tr>
  80.       <td>ID/图片/商品名</td>
  81.       <td>SIZE</td>
  82.       <td>单价</td>
  83.       <td>数量</td>
  84.       <td> </td>
  85.     </tr>
  86.     <c:forEach items=”${goodslist}” var=”goods”>
  87.         <tr id=”${goods[0]}”>
  88.           <td>${goods[0]}<img src=”${goods[1]}” border=”0″/></a><a target=”_blank”
  89.           title=”${goods[2]}” href=”${goods[3]}”>${goods[2]}</a></td>
  90.           <td>${goods[4]}</td>
  91.           <td>${goods[5]}</td>
  92.           <td>${goods[6]}</td>
  93.           <td><a href=”#”>收藏</a> <a href=”#” onclick=”deletegoods(this)”>删除</a></td>
  94.         </tr>
  95.     </c:forEach>
  96.   </table>
  97. </form>
  98. <p> </p>
  99. </body>
  100. </html>

 

 

购物车实现结果

 

上面部分是获取的Cookie。

下面的部分是将Cookie通过布局,放入购物车页面。

点击删除,将会动态删除当前行。

标签