海西数据

韩国服务器,美国服务器,香港服务器,台湾服务器,日本服务器,美国空间,马来西亚,新加坡服务器,海外服务器租用

« JAVA与.NET的相互调用——利用JNBridge桥接模式实现远程通讯好的代码里只要一个 return 语句 »

JSP的内置对象——使用Cookie

Cookie是服务器发送给客户端浏览器的体积较小的纯文本信息,以后当用户访问同一个Web服务器时,浏览器会把它们发送给服务器。通过让服务器读取原先保存在客户端的信息,为浏览者提供一系列的方便。例如在线交易过程中标识用户身份,在安全要求不高的场合可避免用户重复输入名字和密码、门户网站的主页定制、有针对性地投放广告等。
  使用Cookie可以为用户带来方便,但在安全性要求较高的场合下,建议不要使用Cookie。此外,浏览器中只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4 kB,故不必担心Cookie会过多地占用硬盘的空间。
  Cookie存放在客户端,首先要新建一个Cookie,然后设置其属性,再通过response对象的addCookie()方法将其放入客户端,获取Cookie对象可调用request对象的getcookies()方法。
  1.创建Cookie
  调用Cookie对象的构造函数可以创建Cookie,构造函数的语法格式如下:
  Cookie(String cookiename,String cookievalue)
  在函数中,第一个参数cookiename是新建的Cookie对象的名称,第二个参数cookievalue是新建的Cookie对象的值。
  Cookie对象的名称和值都不能包含空白字符以及下列字符:
  [ ] ( ) = , " / ? @ :
  2.设置与读取Cookie属性
  在把Cookie加入待发送的应答头之前,可以查看或设置Cookie的各种属性。
  getComment()/setComment():获取/设置Cookie的注释。
  getDomain()/setDomain():获取/设置Cookie适用的域。
  使用这两个方法可以指示浏览器把Cookie返回给同一域内的其他服务器。注意域必须以点开始(例如.sitename.com),非国家类的域(如.com,.edu,.gov)必须包含两个点,国家类的域(如.com.cn,.edu.uk)必须包含三个点,一般地,Cookie只返回给与发送它的服务器名称完全相同的服务器。
  getMaxAge()/setMaxAge():获取/设置Cookie过期之前的时间,以秒计。如果不设置该值,则Cookie只在当前会话内有效,即在用户关闭浏览器之前有效,而且这些Cookie不会保存到磁盘上。
  getName()/setName():获取/设置Cookie的名称。本质上,名称和值是需要程序员始终关心的两个部分。由于HttpServletRequest的getCookies方法返回的是一个Cookie对象的数组,因此通常要用循环语句来访问这个数组并查找特定名称,然后用getValue()检查它的值。
  getPath()/setPath():获取/设置Cookie适用的路径。如果不指定路径,Cookie将返回给当前页面所在目录及其子目录下的所有页面。这里的方法可以用来设定一些条件。例如,someCookie.setPath("/"),此时服务器上的所有页面都可以接收到该Cookie。
  getSecure()/setSecure():获取/设置一个boolean值,该值表示Cookie是否只能通过加密的连接(即SSL)发送。
  getValue()/setValue():获取/设置Cookie的值。如前所述,名称和值实际上是程序员始终关心的两个方面。不过也有一些例外情况,比如把名称作为逻辑标记(也就是说,如果该名称存在,则表示true)。
  getVersion()/setVersion():获取/设置Cookie所遵从的协议版本。默认版本0(遵从原先的Netscape规范);版本1遵从RFC 2109,但尚未得到广泛的支持。
  3.将Cookie加入HTTP头中
  可将addCookie()方法加入到Set-Cookie应答头。如下所示:
  Cookie usernameCookie = new Cookie("username", "dzycsai");
  response.addCookie(userCookie);
  4.读取Cookie
  从客户端读取Cookie时调用的是request对象的getCookies()方法。该方法返回一个与HTTP请求头中的内容对应的Cookie对象数组。得到这个数组之后,一般是用循环语句访问其中的各个元素,并调用getName()检查各个Cookie的名字,直至找到目标Cookie为止;然后对这个目标Cookie调用getValue(),根据获得的结果进行其他处理。
  5.Cookie工具函数
  用request对象的getCookies()方法得到一个Cookie对象的数组,要找到指定的Cookie对象比较麻烦,这时可以编写一个得到指定名称的Cookie对象值的方法,这里,提供一个这样的函数。
  String getCookieValue(Cookie[] cookieArray,
  String cookieName,String defaultValue) {
  for(int i=0; i
  Cookie cookie = cookies[i];
  if (cookieName.equals(cookie.getName()))
  return(cookie.getValue());
  }
  return(defaultValue);
  }
  在此方法中,第一个参数是一个Cookies数组,可以用request.getCookies()方法得到;第二个参数cookieName,查找的Cookie对象的名称;第三个参数defaultValue是在没有找到指定的Cookie对象时返回的值。
 

  • 相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Walle Build 100427

Copyright 海西数据-万纵科技 xmwzidc.cn. ALL Rights Reserved