JAVA操作COOKIE

合集下载

javaWeb使用cookie显示上次访问网站时间

javaWeb使用cookie显示上次访问网站时间

javaWeb使⽤cookie显⽰上次访问⽹站时间package de.bvb.cookie;import java.io.IOException;import java.io.PrintWriter;import java.util.Date;import javax.enterprise.inject.ResolutionException;import javax.servlet.ServletException;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.swing.text.DateFormatter;/*** 显⽰上次访问时间** @author joker**/public class CookieDemo1 extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setCharacterEncoding("UTF-8");response.setContentType("text/html; charset=UTF-8");PrintWriter out = response.getWriter();out.write("您上次访问的时间是: ");// 获取上次访问时间Cookie[] cookies = request.getCookies();for (int i = 0; cookies != null && i < cookies.length; i++) {if (cookies[i].getName().equals("lastAccessTime")) {Long cookieValue = Long.parseLong(cookies[i].getValue());out.write(new Date(cookieValue).toLocaleString());}}// 保存本次访问时间Cookie cookie = new Cookie("lastAccessTime", System.currentTimeMillis()+ "");response.addCookie(cookie);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}。

cookie的使用方法

cookie的使用方法

cookie的使用方法Cookie是一种存储在用户计算机上的小型文本文件,主要用于在用户访问网站时存储和检索信息。

Cookie通常包含一些关键信息,例如用户输入的登录名和密码,以及其他有关用户时间和行为的数据。

这些信息可用来定制用户体验,并提供更好的服务和广告。

如何使用Cookie是网站设计和开发过程中一个重要的考虑因素。

以下是Cookie的使用方法和最佳实践。

1、验证用户Cookie可以用于验证用户身份。

例如,在用户登录网站后,服务器可以发送Cookie 存储包含用户信息的令牌。

下次用户访问网站时,服务器将检查Cookie并返回令牌,以验证用户身份。

2、存储用户偏好设置网站可以使用Cookie存储用户界面偏好设置,例如语言、颜色主题、字体大小等。

这样,用户就不必每次访问网站时都要重新设置这些选项。

3、定制广告网站可以使用Cookie跟踪用户浏览行为,以便在适当的时候向用户提供定制的广告。

例如,如果用户访问过一些旅游网站,它们可能会在未来向用户显示旅游相关的广告。

4、记住购物车和购买记录电子商务网站可以使用Cookie保存用户的购物车、购买记录和偏好设置。

这使得用户可以轻松地继续购买项目,并在未来使用这些信息来促销相关产品。

1、设置Cookie设置Cookie需要服务器端代码。

当用户访问网站时,服务器可发送Cookie并存储在用户的浏览器中。

可以使用setcookie()函数在PHP、cookie技术中设置Cookie。

JavaScript中,可以设置document.cookie属性。

在客户端上,可以使用JavaScript读取Cookie。

如下所示:var x = document.cookie;Cookie通常由名称-值对构成,如下所示:过期Cookie可以使Cookie在指定时间后失效。

过期时间可以在PHP和JavaScript中设置,如下所示:PHP:setcookie(“cookieName”,”cookieValue”,time()+3600*24);JavaScript:当Cookie设置后,它就会存储在用户的浏览器中,直到被删除或到达过期时间。

存储cookie的方法

存储cookie的方法

存储cookie的方法如何存储Cookie?作为网站开发者或者网站管理员,你可能需要了解如何存储Cookie,以便在需要时能够方便地读取用户的Cookie信息。

本文将简单介绍几种存储Cookie的方法。

1. 使用服务器端语言存储Cookie当用户首次访问您的网站时,您可以使用服务器端语言(如PHP)创建一个Cookie。

此后,每次用户访问您的网站时,您可以使用相同的服务器端语言读取Cookie信息。

以下是使用PHP语言创建Cookie的示例:```phpsetcookie('test_cookie', 'Hello, world!', time() + (86400 * 30), '/');```该代码创建了一个名为“test_cookie”的Cookie,其中包含了值“Hello, world!”。

该Cookie将过期时间设置为30天,并将其范围限制在整个网站中。

当您需要读取Cookie时,可以使用以下PHP代码:```phpif(isset($_COOKIE['test_cookie'])) {echo "Cookie value is: ".$_COOKIE['test_cookie'];```此代码将检查名为“test_cookie”的Cookie是否存在,并在存在时打印其值。

请注意,如果在任何时候修改了Cookie,新值将在下一次用户访问您的网站时生效。

2. 使用JavaScript存储CookieJavaScript也可以用来存储Cookie。

同样,首次访问您的网站时,您可以使用以下JavaScript代码创建一个Cookie:```javascriptdocument.cookie = "test_cookie=Hello, world!; expires=Sun, 10 Jul 2022 12:00:00 UTC; path=/;";```这将创建一个名为“test_cookie”的Cookie,其中包含了值“Hello, world!”。

【java+selenium3】自动化cookie操作+图形验证码处理(十五)

【java+selenium3】自动化cookie操作+图形验证码处理(十五)

【java+selenium3】⾃动化cookie操作+图形验证码处理(⼗五)⼀、cookie操作1.获取浏览器所有的cookieimport java.util.Set;import org.openqa.selenium.Cookie;//获取浏览器所有的cookieSet<Cookie> cookies=driver.manage().getCookies();for (Cookie cookie : cookies) {System.out.println(cookie.getName()+":"+cookie.getValue());}2.获取指定名称的cookie//根据指定的名称获取浏览器cookie中保存的验证码String strCookie =driver.manage().getCookieNamed("verifycode").getValue();3.添加cookieCookie weiteCookie = new Cookie(name, value, domain, path, expiry)driver.manage().addCookie(weiteCookie);4.删除cookieCookie cookie = driver.manage().getCookieNamed("verifycode");driver.manage().deleteCookie(cookie);⼆、图形验证码1.通过cookie形式回写浏览器即:登录页⾯在加载的时候,获取验证码会请求服务器调⽤⼀个接⼝,服务器响应返回⼀个图形验证码(图⽚形式)写回浏览器(测试环境下可以将这个验证码以cookie的形式返回到浏览器Cookie中⽅便测试,上线后关掉这个功能)//获取浏览器cookie中保存的验证码,如上图:verifycode=>value:L1ZHString strCookie =driver.manage().getCookieNamed("verifycode").getValue();driver.findElement(By.id("XXX")).sendKeys(strCookie);2.服务器端预留⼀个万能的验证码(反馈开发预留)3.提供接⼝获取此验证码的内容(服务器将验证码内容存在数据库,反馈开发提供接⼝获取)4.图⽚识别详解参考:https:///xiaozhaoboke/p/11144422.html待续。

JAVA操作COOKIE

JAVA操作COOKIE

JAVA操作COOKIE在Java中,可以使用Cookie类来操作和管理Cookie。

Cookie是一种存储在客户端浏览器中的小型文本文件,用于存储一些浏览器相关的信息。

首先,我们需要在Java中创建Cookie对象。

可以使用以下代码创建一个名为username的Cookie并将其添加到响应中:```Cookie cookie = new Cookie("username", "John");response.addCookie(cookie);```在这个例子中,我们创建了一个名为username的Cookie,并将其值设置为John。

然后,我们使用response对象的addCookie方法将Cookie 添加到响应中。

如果希望设置Cookie的过期时间,可以使用setMaxAge方法来设置Cookie的生命周期。

以下是一个例子:```Cookie cookie = new Cookie("username", "John");cookie.setMaxAge(3600); // 设置Cookie的生命周期为1小时response.addCookie(cookie);```在这个例子中,我们将Cookie的生命周期设置为3600秒(1小时)。

当浏览器接收到这个Cookie后,它将在1小时后被自动删除。

在Java中获取Cookie也很简单。

可以使用HttpServletRequest对象的getCookies方法来获取在该请求中发送的所有Cookie。

以下是一个例子:```Cookie[] cookies = request.getCookies(;if (cookies != null)for (Cookie cookie : cookies)String name = cookie.getName(;String value = cookie.getValue(;//进行一些操作...}```在这个例子中,我们首先使用request对象的getCookies方法获取所有的Cookie。

获取cookie的方法

获取cookie的方法

获取cookie的方法在网络编程中,cookie是一种非常重要的信息传递方式,它可以帮助网站记住用户的登录状态、个性化设置等信息。

因此,了解如何获取cookie是非常有必要的。

下面将介绍几种获取cookie的方法。

1. 通过浏览器开发者工具获取cookie。

大多数现代浏览器都内置了开发者工具,通过它可以很方便地获取cookie。

首先,打开浏览器并进入要获取cookie的网站,然后按下F12键或右键点击页面并选择“检查”打开开发者工具。

在开发者工具的“应用”或“网络”选项卡中,可以找到网站设置的cookie信息,包括cookie的名称、值、过期时间等。

通过这种方式可以很方便地获取到网站设置的cookie信息。

2. 通过编程语言获取cookie。

除了通过浏览器开发者工具获取cookie外,我们也可以通过编程语言来获取cookie。

比如,在JavaScript中,可以通过document.cookie来获取当前页面的cookie信息;在Python中,可以使用requests库发送HTTP请求并获取响应头中的Set-Cookie字段来获取cookie信息。

通过编程语言获取cookie的方式更适合于自动化测试、爬虫等场景。

3. 通过浏览器插件获取cookie。

有些浏览器插件可以帮助我们更方便地获取cookie信息。

比如,EditThisCookie是一款常用的浏览器插件,它可以帮助我们管理网站设置的cookie 信息,包括查看、添加、编辑、删除cookie等操作。

通过这种方式,我们可以更直观地查看和管理网站设置的cookie信息。

4. 通过网络抓包工具获取cookie。

网络抓包工具可以帮助我们监控和分析网络请求和响应,从而获取cookie信息。

比如,Fiddler是一款常用的网络抓包工具,它可以捕获HTTP请求和响应,并查看其中的cookie信息。

通过这种方式,我们可以更深入地了解网站的cookie设置情况,对于一些加密或动态生成的cookie也能够进行分析和获取。

java获取cookie的方法

java获取cookie的方法近年来,随着互联网技术的不断发展,Cookie在Web开发中变得越来越重要,到目前为止,我们使用Cookie来存储用户会话信息、记住用户上次访问的页面和设置用户首选项等,本文将阐释如何使用Java来获取Cookie。

什么是Cookie?Cookie是由网站服务器在浏览器上存储的文本文件,它能帮助浏览器记住您的一些信息,比如一次登录时用户名或其他设置。

Cookie是由Session ID来跟踪会话,它有助于实现类似网页会话的功能。

Java中获取cookies的方法要在Java中获取cookies,首先需要导入必要的包:import javax.servlet.http.Cookie;import javax.servlet.http.HttpServletRequest;接下来,我们需要获取HttpServletRequest实例,该实例包含Cookie数组。

接下来,可以呼叫HttpServletRequest实例的getCookies()方法来获取Cookie数组:Cookie[] cookies = request.getCookies();现在,我们可以遍历Cookie数组,然后使用Cookie对象的getName()方法来获取Cookie的名称,然后使用Cookie对象的getValue()方法来获取其值:for(Cookie cookie : cookies){String name = cookie.getName();String value = cookie.getValue();// do something with these cookie name and value}最后,可以使用Cookie对象的getMaxAge()方法来获取Cookie 存活的最大时间:int maxAge = cookie.getMaxAge();使用getMaxAge()方法可以检查这个Cookie是否为会话(session)Cookie。

cookie用法

cookie用法Cookie是一种存储在用户计算机上的小型文本文件。

当用户访问网站时,网站可以将Cookie发送给用户计算机来保存用户信息,例如用户名、购物车内容、浏览记录等。

下面将详细介绍Cookie的用法和相关注意事项。

1. Cookie的用途- 记录用户信息:Cookie可以记录用户的登录信息、个人偏好设置、购物车内容等,方便用户下次访问网站时能够自动登录或恢复上次的浏览状态。

- 跟踪用户行为:通过分析Cookie中的信息,网站可以了解用户的浏览习惯、喜好等,从而精准定位用户需求,提供个性化的服务。

- 网站统计分析:将Cookie使用情况记录下来,网站管理员可以通过统计分析了解网站的流量情况、用户访问时间等,从而优化网站运营。

- 广告推送:通过Cookie记录用户浏览历史和行为,网站可以向用户投放更符合其兴趣和需求的广告。

使用Cookie很简单,只需要在服务器端将Cookie信息发送给用户浏览器即可,在前端页面通过JavaScript脚本访问和操作Cookie。

1. 设置Cookie:使用document.cookie属性来设置Cookie,语法如下:```document.cookie = "name=value;expires=Wed, 20 Jun 2022 00:00:00GMT;path=/;"```此处的name和value分别代表Cookie的名称和值,expires是Cookie的过期时间,path是Cookie的有效路径。

可以设置多个Cookie,使用分号分隔即可。

```var cookieValue = document.cookie```该语句会返回一个字符串,包含了所有当前可用的Cookie信息。

可以使用JavaScript字符串处理方法来提取需要的Cookie信息。

3. 删除Cookie:使用设置Cookie时相同的语法来删除Cookie,只需要将value设置为空并将expires设置为过去的日期即可。

java设置cookie方法流程

java设置cookie方法流程java设置cookie方法流程引导语: Cookie有时也用其复数形式Cookies,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。

以下是店铺整理的java设置cookie方法流程,欢迎参考阅读!java设置cookie方法流程:java对cookie的操作比较简单,主要介绍下建立cookie和读取cookie,以及如何设定cookie的生命周期和cookie的路径问题。

建立一个无生命周期的cookie,即随着浏览器的关闭即消失的cookie,代码如下--------------------------------HttpServletRequest requestHttpServletResponse responseCookie cookie = new Cookie("cookiename","cookievalue");response.addCookie(cookie);--------------------------------下面建立一个有生命周期的cookie,可以设置他的生命周期--------------------------------cookie = new Cookie("cookiename","cookievalue");cookie.setMaxAge(3600);//设置路径,这个路径即该工程下都可以访问该cookie 如果不设置路径,那么只有设置该cookie路径及其子路径可以访问cookie.setPath("/");response.addCookie(cookie);--------------------------------下面介绍如何读取cookie,读取cookie代码如下--------------------------------Cookie[] cookies = request.getCookies();//这样便可以获取一个cookie数组for(Cookie cookie : cookies){cookie.getName();// get the cookie namecookie.getValue(); // get the cookie value}--------------------------------上面就是基本的.读写cookie的操作。

获取本地cookie的方法

获取本地cookie的方法在Web开发中,cookie是一种用于存储用户信息的小型文本文件。

当用户访问网站时,服务器可以通过cookie将一些信息存储在用户的设备上。

本文将介绍获取本地cookie的方法,帮助读者了解如何在浏览器中查看和获取cookie信息。

一、使用浏览器开发者工具获取cookie大多数现代浏览器都提供了开发者工具,可以帮助开发人员进行网页调试和分析。

通过以下步骤可以使用浏览器开发者工具获取本地cookie:1. 打开浏览器,访问目标网站。

2. 按下键盘上的F12键,或右键点击页面,选择“检查”或“检查元素”选项。

3. 在开发者工具中,切换到“应用程序”或“存储”选项卡。

4. 在“应用程序”或“存储”选项卡中,可以找到“Cookie”或“存储”部分。

展开该部分,可以看到当前网站设置的cookie信息。

5. 点击每个cookie,可以查看其详细信息,包括名称、值、域、路径、过期时间等。

通过浏览器开发者工具获取cookie的方法适用于大多数现代浏览器,如Google Chrome、Mozilla Firefox、Microsoft Edge等。

二、使用JavaScript获取cookie除了使用浏览器开发者工具,还可以使用JavaScript来获取本地cookie。

下面是使用JavaScript获取cookie的示例代码:```javascript// 获取指定名称的cookie值function getCookie(cookieName) {var name = cookieName + "=";var decodedCookie = decodeURIComponent(document.cookie);var cookieArray = decodedCookie.split(';');for(var i = 0; i < cookieArray.length; i++) {var cookie = cookieArray[i];while (cookie.charAt(0) == ' ') {cookie = cookie.substring(1);}if (cookie.indexOf(name) == 0) {return cookie.substring(name.length, cookie.length); }}return "";}// 示例:获取名为"username"的cookie值var username = getCookie("username");console.log("Username: " + username);```以上代码定义了一个名为`getCookie`的函数,可以根据cookie名称获取对应的cookie值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JAVA操作COOKIE 收藏1.设置CookieCookie cookie = new Cookie("key", "value");cookie.setMaxAge(60);设置60秒生存期,如果设置为负值的话,则为浏览器进程Cookie(内存中保存),关闭浏览器就失效。

cookie.setPath("/test/test2");设置Cookie路径,不设置的话为当前路径(对于Servlet来说为request.getContextPath() + web.xml里配置的该Servlet的url-pattern路径部分)response.addCookie(cookie);2.读取Cookie该方法可以读取当前路径以及“直接父路径”的所有Cookie对象,如果没有任何Cookie 的话,则返回nullCookie[] cookies = request.getCookies();3.删除CookieCookie cookie = new Cookie("key", null);cookie.setMaxAge(0);设置为0为立即删除该Cookiecookie.setPath("/test/test2");删除指定路径上的Cookie,不设置该路径,默认为删除当前路径Cookieresponse.addCookie(cookie);4.修改CookieCookie[] cookies=request.getCookies();if(cookies.length>1){for(int i=0;i<cookies.length;i++){if(cookies[i].getName().equals("key")) {String oldValue = cookies[i].getValue();String newValue= "newValue";cookies[i].setValue(newValue);response.addCookie(cookies[i]);break;}}}===============================================================1.实现两个网站和共用Cookies2.添加CookiesCookie cookie = new Cookie("name", "wangwz");cookie.setPath("/");//这个要设置cookie.setDomain("");//这个也要设置才能实现上面的两个网站共用cookie.setMaxAge(365*24*60*60);//不设置的话,则cookies不写入硬盘,而是写在内存,只在当前页面有用,以秒为单位response.addCookie(cookie);cookie = new Cookie("nick", URLEncoder.encode("王伟宗","UTF-8"));cookie.setPath("/");cookie.setDomain("");cookie.setMaxAge(365*24*60*60);response.addCookie(cookie);3.获取cookiesCookie cookies[] = request.getCookies();if (cookies != null){for (int i = 0; i < cookies.length; i++){if (cookies[i].getName().equals("nick")){System.out.println(URLDecoder.decode(cookies[i].getValue(),"UTF-8"));}}}4.删除cookiesCookie cookies[] = request.getCookies();if (cookies != null){for (int i = 0; i < cookies.length; i++){if (cookies[i].getName().equals("nick")){Cookie cookie = new Cookie("nick","");//这边得用"",不能用nullcookie.setPath("/");//设置成跟写入cookies一样的cookie.setDomain("");//设置成跟写入cookies一样的response.addCookie(cookie);}}}================================================================================================================应用实例<%@ page contentType="text/html; charset=gb2312" language="java" import="java.util.*" errorPage="" %><%@ page import=".URLDecoder" %> //注意导入此包<%Cookie cookie=new Cookie("hi","welcome");response.addCookie(cookie);Cookie[] cookies=request.getCookies();if(cookies!=null){for(int i=0;i<cookies.length;i++){if(cookies[i].getName().equals("hi")){String cookieValue=URLDecoder.decode(cookies[i].getValue(),"utf-8");out.print("hi="+cookieValue);}}}else{out.print(" no cookie");}%>Javascript操纵Cookie实现购物车程序2008-04-29 22:04Name 购物车Version 1.1Author Vanni(凡林) url: QQ:303590170 CreateDate 2005-05-31Description此类是基于JavaScript和客户端Cookie,请保证客户端开启Cookie数据保持(默认24*30小时)可以通过 this.expire=? 小时来指定类中两自带的两个对象 typeObj 和 proObj 均有两个相同属性名: name 和value类中数据存储形式如下-----------------------------------Array(new typeObj('汽车',array(new porObj('三菱',200),new proObj('本田',500))),new typeObj('蛋',array(new proObj('鸡蛋',10),new proObj('鸭蛋',20))}Cookie 存取形式为[使用escape()函数加密过]--------------购物车名 = 汽车#三菱:200|本田:500,蛋#鸡蛋:10|鸭蛋:20注意:客户端存Cookie时,不会出现问题。

如果要循环存储的话,可能会出现有些存入,而有些未存入解决方法:见下例(获得URL里的sales的数量,并存入Cookie)文件:/depot/compareproduct.php 中的JS代码片段<script language="javascript">var car=new Car('compare');var typeName='list';car.delType(typeName); //将先前对比的产品清除//得到URL里的参数,并分隔成数组var url=location.href;var start=stIndexOf('?sales=');var end=url.indexOf('&');if(end==-1)end=url.length;var urlparam=url.substring(stIndexOf('?sales=')+7,end ).split(',');function setPageVal(){if(car.getPro(typeName).length==urlparam.length)return; //关键部分,如果数组长度不相等说明,有些Cookie没有存入else{car.addType(typeName); //增一个类别for(i=0;i<urlparam.length;i++){car.addPro(typeName,urlparam[i],''); //增加对比产品,如果存在,返回假}setTimeout('setPageVal();',100); //再次调用自身,没有用递归,是因为递归速度太快,仍会有存不进的问题}}setPageVal(); //初始化数据function delItem(itemname){car.delPro(typeName,itemname);var carData=car.getPro(typeName);var url='';var carlen=carData.length;if(carlen>1){for(i=0;i<carData.length;i++){if(i==0) url =carData[i].name;else url+=','+carData[i].name;}document.write("waiting....");location.href='../depot/compareproduct.php?sales='+url;}else{if(confirm('如果删除它,那么只剩一个对比项了,是否关闭此窗口?')){ car.delCar();window.close();}}}</script>********************************************************************* ********************************//**Cookie类*/function Cookie(){/**@desc 设置Cookie@return void*/this.setCookie=function(name, value, hours){var expire = "";if(hours != null){expire = new Date((new Date()).getTime() + hours * 3600000); expire = "; expires=" + expire.toGMTString();}document.cookie = escape(name) + "=" + escape(value) + expire; }/**@desc 读取Cookie@return String*/this.getCookie=function(name){var cookieValue = "";var search = escape(name) + "=";if(document.cookie.length > 0){offset = document.cookie.indexOf(search);if (offset != -1){offset += search.length;end = document.cookie.indexOf(";", offset);if (end == -1) end = document.cookie.length;cookieValue = unescape(document.cookie.substring(offset, end)) }}return cookieValue;}}function Car(name){if( !window.clientInformation.cookieEnabled ) {alert('你的浏览器不支持Cookie无法使用此购物车系统');return false;}//##内部变量#############################################################this.carName = name;this.expire = 24*30; //购物车的有效时间(30天) this.carDatas = new Array();this.cookie = new Cookie();//##内部对象#############################################################this.typeObj=function(name,value){ //自带的类别对象 =name;this.value="/value;}this.proObj=function(name,value){ //自带的" 商品对象 =name;this.value=value;}//##私有方法列表##########################################################//// getTypePoint(typeName); //得到购物车里类别数组里的下标// getProPoint(typeName,proName); //得到购物车里类别下的产品下标// saveCookie() //以特定的形式存储此购物车的Cookie////################################################################### #####/**@desc 得到购物车里类别数组里的下标,找到的话返回下标,否则返回 -1 @return int*/this.getTypePoint=function(typeName){var isok=false;var i=0;for(;i<this.carDatas.length;i++){if(this.carDatas[i].name==typeName){isok=true; //找到位置break;}}if(isok) return i;else return -1;}/**@desc 得到购物车里类别下的产品下标,找到返回下标,否则返回 -1@return int*/this.getProPoint=function(typeId,proName){var isok=false;var j = 0;var tempProObj=this.carDatas[typeId].value;for(;j<tempProObj.length;j++){if(tempProObj[j].name==proName){isok=true;break;}}if(isok) return j;else return -1;}/**@desc 存储生成的Cookie字符串@return void*/this.saveCookie=function(){var outStr='';for( i=0; i<this.carDatas.length; i++ ){var typeName =this.carDatas[i].name;var typeValue=this.carDatas[i].value;var proOutStr='';for( j=0; j<typeValue.length; j++ ){if ( j==0 ) proOutStr = typeValue[j].name + ':' + typeValue[j].value; else proOutStr += '|' + typeValue[j].name + ':' +typeValue[j].value;}if ( i==0 ) outStr = typeName + '#' + proOutStr;else outStr += ',' + typeName + '#' + proOutStr;}this.cookie.setCookie(this.carName,outStr,this.expire); //存入Cookie}//##构造语句############################################################if(this.cookie.getCookie(name)==''){this.cookie.setCookie(name,'',this.expire);}else{var tempTypes=this.cookie.getCookie(name).split(',');for(i=0;i<tempTypes.length;i++){var tempTypeObj=tempTypes[i].split('#');var type_pro=new Array();if(tempTypeObj[1]){var tempProObj=tempTypeObj[1].split('|');for(j=0;j<tempProObj.length;j++){var proDesc=tempProObj[j].split(':');type_pro.push(new this.proObj(proDesc[0],proDesc[1]));}}this.carDatas.push(new this.typeObj(tempTypeObj[0],type_pro));}}//##公共方法列表#########################################################//// addType(typeName); //增加一个类别// addPro(typeName,proName,value); //增加一个产品// editPro(typeName,proName,value); //修改产品的值// delPro(typeName,proName); //删除购物车内的一个类别下的产品// delType(typeName); //删除购物车内的一个类别,包括类别下的产品// delCar(); //删除购物车//// getCar(); //得到整个购物车的数据// getType(); //得到购物车内的所有类别列表// getPro(typeName); //得到购物车内指定类别下的产品列表// getProVal(typeName,proName); //得到购物车内指定类别下的产品属性////################################################################### #####/**@desc 在购物车里增加一个类别,增加成功返回真,否则返回假@return bool*/this.addType=function(typeName){if(this.getTypePoint(typeName)!=-1) return false;//如果已经有此类别了,返回假this.carDatas.push(new this.typeObj(typeName,new Array()));//push进自身数组this.saveCookie(); //存入 Cookiereturn true;}/**@desc 在购物车里增加一个产品,增加成功返回真,否则返回假@return bool*/this.addPro=function(typeName,proName,value){var typePoint=this.getTypePoint(typeName); if ( typePoint ==-1 ) return false; //没有此类别,无法增加,返回假var proPoint =this.getProPoint(typePoint,proName); if ( proPoint != -1 ) return false; //有此产品了,无法增加重复,返回假this.carDatas[typePoint].value.push(new this.proObj(proName,value)); //push到自身数组this.saveCookie(); //存入 Cookiereturn true;}/**@desc 修改购物车里的产品属性@return bool*/this.editPro=function(typeName,proName,value){var typePoint=this.getTypePoint(typeName); if ( typePoint == -1 ) return false; //没有此类别,无法修改,返回假var proPoint =this.getProPoint(typePoint,proName); if ( proPoint == -1 ) return false; //没有此产品,无法修改,返回假this.carDatas[typePoint].value[proPoint].value=value;//更新自身this.saveCookie(); //存入 Cookiereturn true;}/**@desc 删除一个产品@return bool*/this.delPro=function(typeName,proName){var typePoint=this.getTypePoint(typeName); if ( typePoint == -1 ) return false; //没有此类别,无法删除,返回假var proPoint =this.getProPoint(typePoint,proName); if ( proPoint == -1 ) return false; //没有此产品,无法删除,返回假var pros=this.carDatas[typePoint].value.length;this.carDatas[typePoint].value[proPoint] =this.carDatas[typePoint].value[pros-1]; //最后一个产品放置要删除的产品上this.carDatas[typePoint].value.pop();this.saveCookie(); //存入 Cookiereturn true;}/**@desc 删除一个类别@return bool*/this.delType=function(typeName){var typePoint=this.getTypePoint(typeName); if ( typePoint == -1 ) return false; //没有此类别,无法删除,返回假var types=this.carDatas.length;this.carDatas[typePoint] = this.carDatas[types-1];//删除类别this.carDatas.pop();this.saveCookie(); //存入 Cookiereturn true;}/**@desc 删除此购物车@return void*/this.delCar=function(){this.cookie.setCookie(this.carName,'',0);this.carDatas=new Array();this.saveCookie(); //存入 Cookie}/**@desc 获得购物车数据@return Array*/this.getCar=function(){return this.carDatas;}/**@desc 获得类别列表@return Array*/this.getType=function(){var returnarr=new Array();for ( i=0; i<this.carDatas.length; i++)returnarr.push(this.carDatas[i].name);return returnarr;}/**@desc 获得类别下的产品列表@return Array*/this.getPro=function(typeName){var typePoint=this.getTypePoint(typeName); if ( typePoint == -1 ) return false; //没有此类别,返回假return this.carDatas[typePoint].value;}/**@desc 获得商品属性@return String*/this.getProVal=function(typeName,proName){var typePoint=this.getTypePoint(typeName); if ( typePoint == -1 ) return false; //没有此类别,返回假var proPoint =this.getProPoint(typePoint,proName); if ( proPoint == -1 ) return false; //没有此产品,返回假return this.carDatas[typePoint].value[proPoint].value;}}。

相关文档
最新文档