Jsp中操作Cookie及跨域访问的详细测试

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

做J2EE开发已经好几年了,对cookie的了解仅限于知道其使用方式、优缺点及一些简单的基本原理,工作中有些项目也使用cookie,

基本上都是用于记录用户的登录信息(有很多知名网站用于记录客户个人信息或访问习惯的鄙视一下),再次访问时不需要再次登录,

由于我是做企业应用的,因此一般cookie也会用于做sso的方案,这个确实非常方便,尤其是多机集群环境下,一个节点宕机,只要有另一个节点能提供服务,

用户就不会有所感知,避免了session复制这种重量级方案。

网上关于cookie的资料比较多也比较杂,有讨论用各种语言操作cookie的,也有讨论用cookie如何实现sso的,也有变相实现cookie跨域访问的方案,今天准备用java/jsp做一个cookie操作的完整测试,一方面加深印象,一方面给做企业应用的新手朋友一个指引,只要耐心将下边各个测试过程跟下来,保证你对cookie会有一个更深层次的认识。

多的不说了,测试环境JDK1.5 + Eclipse3.6 + Tomcat5.0.28测试过程如下:

开发2个web应用,分别为web1和web2,

web1应用的web根下创建一个index.jsp,内容如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<%

Cookie[] cookies = request.getCookies();

if(cookies != null && cookies.length > 0){

for(int i=0;i

Cookie cookie = cookies[i];

System.out.println("web1----cookie name:"+cookie.getName()+" value:"+cookie.getValue());

if("myCookieName".equals(cookie.getName())){//如果cookie已存在则删除掉cookie.setMaxAge(0);

response.addCookie(cookie);

}

}

}

//用java代码创建cookie的方法如下,构造的参数是cookie的name和value

Cookie cookie = new Cookie("myCookieName","myCookieValue1");

cookie.setPath("/");

response.addCookie(cookie);

%>

Insert title here

This is web1's index.jsp

web2应用的web根下创建一个index.jsp,内容如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<%

Cookie[] cookies = request.getCookies();

if(cookies != null && cookies.length > 0){

for(int i=0;i

Cookie cookie = cookies[i];

System.out.println("web1----cookie name:"+cookie.getName()+" value:"+cookie.getValue());

if("myCookieName".equals(cookie.getName())){//如果cookie已存在则删除掉cookie.setMaxAge(0);

response.addCookie(cookie);

}

}

}

%>

Insert title here

This is web2's index.jsp

2个应用基本一样,web1负责获取系统中的cookie然后输出name和value到控制台,并创建一个cookie,web2则只获取cookie然后输出name和value到控制台,这两个应用功能非常好理解。

2个应用部署到一个tomcat下,端口为80,两个应用的访问路径分为别:

http://127.0.0.1/web1 和http://127.0.0.1/web2 接下来是测试过程

首先用IE8访问web1,为了看到我们创建的cookie,所以需要多刷新几下,这时控制台输出如下(去除重复项后):

web1----name:JSESSIONID value:D402D19B22D8E3437ECF36785B0853E1

相关文档
最新文档