编程专题讲座-javascript开发技术第17章cookie_第1页
编程专题讲座-javascript开发技术第17章cookie_第2页
编程专题讲座-javascript开发技术第17章cookie_第3页
编程专题讲座-javascript开发技术第17章cookie_第4页
编程专题讲座-javascript开发技术第17章cookie_第5页
免费预览已结束,剩余17页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

17是在客户端计算机中的一些信息,这些信息多用于与服务器进行交互。使用对象的属性可以和设置的内容。HTMLJavaScript出现初期,网页的内容比较单一,仅仅只是显示一些文字和图在这些联系之中,经常需要建立一些信息,如用于识别用户的ID等,而这些信息通常都是以的形式在客户端计算机中的。 介JavaScript中,可以多服务器端的程序(如ASP等)也可以存取。对于操作系统而言,就是一个文件,这个文件中记录着客户端计算机与服务器来该。例如,A所创建的只有A可以,而B所创建的也只有B可以,A、B不能对方所创建的。因此,用户不必担心信息。实际上,的作用就是与服务器互动。由于网络的发达,客户端与服务器的互动变得十分重要,在以下几个场合中经常可以看到的身影。用户登录:在很多的登录页面中都可以看到一个选项,多用于询问用户在多长时间不需要再登录,如一天、一个月或一年等。这就需要使用技术,在用户第一次登录时,使用记录下了用户的信息,并让其保存一天、一个月或一年。只要没有过期,那么用户在下次需要验证时,就电子商务:在电子商务中使用最多的就是购物车和最近浏览过的商品。这两项都了要在的而从中取出,统一付款。最近浏览过的商品的处理方式相同,也是将用户最近浏览过的商品信息在再务览用还以将购物做得更人性化。例如,通过览信过商来推荐相关商品。中,在用户确定之后,才提交到服务器上。与前面章节中所介绍的变量、常量等不同,的信息是记录在一个文件中,并且这个文件是存放在客户端计算机中的,在使用时必须要注意名称:每一个都有自己的名称,就好像每一个变量、常量都有自己的一个名称一样。通过名称可以信息。在JavaScript中,名称也必须是一个合法的标识符。如用户编号可以使用userId来命名。值:通过名称所的值,也就是存放在中的具体信息。例如用户的编号为10,那么userId的值为10。生存期:也就是的有效日期。在默认情况下,一个的生存期就是浏览器窗口关闭的时间。也就是说,在一个浏览器窗口中创建的,只要该浏览器没有关闭,那么该就会一直有效,一旦该浏览器窗口关闭,那么由该浏览器窗口所创建的就会失效,不能再。如果想要该在浏览器窗口关闭后还可以使用,就必须要为该设置生存期,也就是失效的日期。路径:出于安全方面的考虑,通常一个网页所创建的只能被与该网页在同一或子下的所有网页,而不能被其他下的网页。例如由“ /BookSupport/sample.htm”所创建的,可以 /BookSupport/jsCode/”下的所有网页,但不能被“ /Book/”下的任何网页。可以通过设置路径的方法让“http: com/Book/”下的所有网页该。域:同样是出于安全方面的考虑,在默认情况下,即使设置了的路径,也只能在同一个域中,不同域之间的网页是不能互相的。如 。可以通过设置域的方法让“ ”和 ”两个服务器之间的网页互相。安全:在默认情况下,信息的传递使用的是没有加密的明码传递方式,如果中的信息比较重要,这就要求对信息进行加密。如果将的secure设为true,那么该就只能在HTTPS或其他安全协议中传输,可以使用的注意事每个文件中的个数过300个虽然浏览器可以网页非本(或域所创建的,但是由于是改文件中的内容。创建的方式与定义一个变量的方式有些类似,都必须使用名和值。同一个可以创建多个,而多个可以存放在同一个文件中。使用对象的属性可以设置一个,也可以从一个文件中所有的内容。存取的方在JavaScript中存取时,必须要使用对象的属性。创建或修改一个的语法代码如下所示:..=在以上代码中,name为名,value为值。如果要创建多个,可以多次使用以上代码。使用对象的属性,也可以文件中s..在以上代码中,s为变量名.

//添加或修改第一,名UserName, //为 //添加或修改第一,名UserName, //为 ”文本框中的内 . //添加或= ,名 //值 框中的内 =" } {{varuserName=varuserPassword=创建与使用对象的属性可以创建和。其具体实现方法如代码单17-1所示,请注意加粗的文字。17-1 <title> <metahttp-equiv="content-type"<!- //获 }--<form文件中的信 Mesaage. :<inputtype="text" :<inputtype="password" <inputtype="button"value=" <inputtype="button"""上述代码为光 里“代码\第17章\sample01.htm”的内容,本例的关键知识点 】按钮时,调用set 和框中的文字,然后使用以下代码添加一个。..=, , ..=单击【】按钮时,调用get 获取文件中的所有信息。Mesaage. 17-1sample01htm一直存在,同一上的其他网页也可以该。代码17-2就是一段内容的代码,请注意加粗的文字。<metahttp-equiv="content-type"<!-17-if{Mesaage.; }{-}--上述代码为光盘里“代码\17章\sample02.htmsample01.htm的浏览器窗口而且还没有关闭,那么该文件可以sample01.htm文件所创建的,如图17-2所示。如果打开sample01.htm的浏览器窗口已经关闭,则该文件的17-2sample01htm17-3sample01htm精确. .对象中的一些方法。在图17-2中,整个文件中的内容如下所示: . .如果要获得某个的值,可以使用String对象的substring()方法来截取该要获得某个指定的值,就必须要获得值的开始和结束位置。由于值是不固定的,而名是固定的,所以可以先获得名的开始位置,以的长度再加上1(即加上了“=”的位置)的方法来获得值的开始位置。用String对象的substring()方法来截取值。 第一个“;”出现的位置就是值的结束位置。是整个内容的最后位置,可以通过内容的长度来获得该结束位置。最后使用String对象的substring()方法来获得的值代码17-3显示了如何精确的值,请注意加粗的文字<title>精值<metahttp-equiv="content-type"<!- {varuserName=varuserPassword=//添加或修改第一 , 名 UserName,17-3值值值//该位置名的长度,再加上//号的长度,即名的位置加文件内容中的位//查{if//的//-NameIndex文件内容中的名在整//查var//设置返{..(. 为elseif 为//Value=function名NameValue的}}"Value={}"Value={if值//Value=;Mesaage//{function}=//=.//文文件内容中找ValueBeginIndexValueBeginIndex值名的位置开始到第一个“;”为//该位置为文件内容中的位//查Name.length+NameIndexVlaueEndIndex////没有找到“;”,那 值的结束位置就是整if VlaueEndIndex==-{ }值Value=}//返 return }--<form:<inputtype="text":<inputtype="password"<inputtype="button"value="<inputtype="button""" <inputtype="button"value=" 上述代码为光盘里“代码\17章\sample03.htm”的内容。本例修改了代码为单击【中的】按钮后的结果。17-4sample03htm通过数组 除了使用17.2.3小节中的方法值之外,还可以使用数组的方法来值。再看一下在图17-2中,整个 从以上代码中可以看出,一个文件中,将不同的使用“;”号作为分隔符进行分隔(分号后还有一个空格。而每个中,使用“=”作为分隔符,“”左侧是名,“”右侧是值。那么String对象的split()方法,可以很容易 Arr[0]Arr[0]=Arr[1]= 从以上代码中可以看出,数组中的每一个元素都包括了名和值, 这次分割可以使用split(“=”)方法。然后得到一个二维数组,如以下代码所示:myArr[0][0]myArr[0][0]=myArr[0][1]=myArr[1][0]="myArr[1][1]=最后,可能通过循环来判断myArr[i][0]的值是否与名的值相同,如果相同,那么myArr[i][1]的值就是的值。其具体实现过程如代码17-4所示,请注意加粗的- varuserName=varuserPassword=.= 17-4精值..(Mesaage 为elseif 为//Value=Value.split(";//for(var名for(var if值////{值}sValue[i]=alue//vartempArr值////{名//sValue=new值名s////使用“;var{function名NameValue的}}"Value={}"Value={if值//Value=;.//{function}={{Value}}return }--<form:<inputtype="text":<inputtype="password"<inputtype="button"value="<inputtype="button""" <inputtype="button"value=" 上述代码为光 里“代码\第17章\sample04.htm”的内容。本例修改了代17-3中的代码,使用数组的方式来精确的值,其运行结果与sample03.htm的以上章节中介绍的默认为:只要关闭浏览器窗口就失效、只有与创建的网页在同一虚拟或子虚拟下的网页才能、不能跨域和使用明码传输的。的生存期,也称为的有效期或失效期,即可以保持的时间。在默认情况下,在浏览器窗口关闭的时候会自动失效,不能再被,但可以通过expires来设置的生存期。其语法代码如下所示:..="name=value;Wdy,DD-Mon-YYHH:MM:SS DD:使用两位数字表示的日期YY:使用两位数字表示的年份HH:使用两位数字表示的小时MM:使用两位数字表示的分钟SS:使用两位数字表示的秒数<title>设的有效期<metahttp-equiv="content-type"<form:<inputtype="text":<inputtype="password"<inputtype="button"value="设<inputtype="button"""<!-//获if({文件中的信Mesaage=.; 中没有任何信息}{中的信息为}//设function{varuserName=varuserPassword=//获取当varexpiresDate=new//设置生存期,一天后过17-5expiresDate.setDate(expiresDate.getDate()expiresDate.setDate(expiresDate.getDate()+=" = }function{}Mesaage;--..上述代码为光盘里“代码\17章\sample05.htm”的内容,该代码改自代码17-1,在设置时添加了expires,即的生存期。第一次运行本例时,其运行结果如图17-5所示。从图17-5中可以看出,获取的内容为空。在文本框和框中输入内容之后,单击【设置】按钮,可以添加两个,并且在中设置17-6所示。从图17-6中可以看出,即使没有重新设置,其内容还是存在。17-5sample05.htm图17-6设 注意只能创建不能删除,如果想删除一个,可以将其生存期设置成一个即使已经失效,但是文件不会被立即删除。可以通过第软件来查看文件中的内容,也可以通过修改时间的方法来查看文件中的内容。因此,如果要删除一个,除了设置失效时间之外,应该还要使用一个无效的值来覆盖原有的值。通常都是由一个网页所创建,但并不是只有创建的网页才可以该,如sample01.htm所创建的就可以被sample02.htm所。出于安全方面的考虑,不是所有网页都可以随意。在默认情况下,只有与创建的网页在同一个虚拟或子虚拟下的网页才可以该。假设有一个是 下的所有文件都可以该,如以下几个网页。 下的文件不可以该,如以下几个如果想要让虚拟 的父级和父级以上 下的文件可以当前文件所创建的,那么就需要设置的路径。其语法代码如下所示:...="name=value; ="name=value; 其中path为的路径,其具体实现过程如代码17-6所示,请注意加粗的<title><metahttp-equiv="content-type"<!- 17-6创建functionfunction{varuserName=varuserPassword=..==设置完毕}function{}Mesaage=.;--<form:<inputtype="text":<inputtype="password"<inputtype="button"value="<inputtype="button"""上述代码为光盘里“代码\第17章\\sample06.htm”的内容,在本例中使用以下语句创建了两个。.="UserName="+userName+.="因此,只有和该文件在同一个或子下的文件才可以该。代码17-7为的代码,请注意加粗的文字。 7<metahttp-equiv="content-type"<!- Mesaage.内容为;----为了让读者有一个直观的理解,光盘里“代码\第17章\read 码\第17章 .htm”的内容都是以上代码。先运行代码17-6,设,再运行代码17-7,其运行结果如图17-7所示图17- 从图17-7中可以看出,sample06.htm文件创建了两个,其中一个没有设置路径,而另一个设置了路径。因此,和sample06.htm文件在同一个中的read.htm文件可以两个的内容,而位于sample06.htm文件父级中的read.htm文件只能一个的内容。使用的路径只能解决不同虚拟下文件的问题,但不能解决不同域之下文件互相的问题。例如, 下文件创建的就 下的文件。如果想要让不同域中的文件互相,就必须要设置的域,其语法代码如下所示:..="name=value;="其中,为的域。其具体实现过程如代码17-8所示,请注意加粗的的域<metahttp-equiv="content-type"<!-function {varuserName=varuserPassword=.";path=/.==UserName="+userName+设置完毕}function{}Mesaage=.;--<form:<inputtype="text":<inputtype="password"<inputtype="button"value="<inputtype="button""" 8上述代码为光盘里“代码\17章\sample07.htm”的内容。在本例中,使用以下代码创建了两个。 =.=其中,名为UserName的设置了域为“ ”的域中都可以。为了便于读者的理解,将sample07.htm上传 /BookSupport/jsCode/17/”虚拟下,其URL为“ “ .htm”。在/”中的默认文件也是一个可以的文件。这几个文件的情况如图17-8所示。“图17-8的情“从图17-8中可以看出,read .htm文件可以两个的值,而 /”只能名为UserName的的值,这是因为只有该设置了域,只要域为“ ”的文件都可以该。“ 通常信息在网络中传输时,都是采用普通的、不加密的HTTP传输方法,这种传协议进行传输,如HTTPS等。在中设置secure,就可以要求浏览器使用加密的传输协议传输。如果传输协议不是加密协议,那么该将不会被传输。secure的语..="name=value;的安全性<metahttp-equiv="content-type"<!-function {varuserName=varuserPassword= 9...=UserName="+userName=设置完毕}function{}Mesaage=;--<form:<inputtype="text":<inpu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论