非常急::高分求问:一个WEB应用 如何读取另一个WEB应用生成的COOKIE 我有两个WEB应用系统A和B。都运行在TOMCAT下面。现在我想实现的是在B WEB应用系统中。读到A WEB系统生成的COOKIE值。请问如何实现。谢谢A , B 系统都是JAVA的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 感谢 craig_wolfdon我是这样想的。 A和B是两个独立的系统。我现在要把他们结合到一起去。也就是说在A应用中输入用户名和密码,验正成功后。就可以直接登录B系统。不需要重新在B系统中登录了。现在我的思路是在A系统的登录成功后。把用户名以COOKIE的形式保存起来。然后在点B系统的链接时。我在B系统的登录脚本里取着个COOKIE值。然后做判断。也就是所谓的单点登录。不知道用XML如何实现。还请详细告之。谢谢 这样把,其实也只是暂存在一个地方,xml和思想和用txt文本,或者说properties的思想插不多,A系统访问了以后生成一个在线user文件,然后登陆B系统的时候直接读这个user文件就可以完成验证了, to: craig_wolfdon非常感谢。本人是新手。不知道如何生成在线USER文件。 望赐教 感觉我和你说的好象有点差异,你说的是用cookie实现,好象也是可以的,我说的是把信息保存在服务器的对应的文件里面,保存在服务器里面就是一般的文件操作,想了一下感觉cookie好象也可以行.至于cookie的操作:、 写入Cookie 其实用JSP操作Cookie是非常简单的,我们来看下面一段JSP程序: ........(中间略) <% String cookieName="Sender"; Cookie cookie=new Cookie(cookieName, "Test_Content"); cookie.setMaxAge(10); response.addCookie(cookie); %> ........(其他内容) 这样我们就设置了一个Cookie,很简单吧? 我们来仔细研究一下这段代码: Cookie cookie=new Cookie(cookieName, "Test_Content"); 这一行建立了一个Cookie对象,初始化有两个参数,第一个参数cookieName定义了Cookie的名字,后一个参数,也是一个字符串,定义了Cookie的内容。也就是我们希望网页在用户的机器上标识的文件内容。 接下来一行:cookie.setMaxAge(10),调用了Cookie中的setMaxAge方法,设定Cookie在用户机器硬盘上的存活期为10秒。一个Cookie在用户的硬盘里面存在的时间并不是无限期的,在建立Cookie对象的时候,我们必须制定Cookie的存活期,超过了这个存活期后,Cookie文件就不再起作用,会被用户的浏览器自行删除。如果我们希望用户在下次访问这个页面的时候,Cookie文件仍然有效而且可以被网页读出来的话,我们可以将Cookie的存活期设得稍微长一些。比如cookie.setMaxAge(365*24*60*60)可以让Cookie文件在一年内有效。 三、 读出Cookie Cookie文件创建好后,自然还需要我们把它读出来,否则我们不是白费力气吗?接下来我们看看如何读出在用户硬盘上的Cookie。 ........(中间略) Name value <% Cookie cookies[]=request.getCookies(); Cookie sCookie=null; String svalue=null; String sname=null; for(int i=0;i{ sCookie=cookies[i]; svalue=sCookie.getValue(); sname=sCookie.getName(); %> <% } %> name value<%=name%> <%=svalue%>........(其他内容) 这一小段JSP文件可以读出用户硬盘上的所有有效的Cookie,也就是仍然在存活期内的Cookie文件。并用表格的形式列出每个Cookie的名字和内容。 我们来逐行分析一下这段代码: Cookie cookies[]=request.getCookies() 我们用request.getCookies()读出用户硬盘上的Cookie,并将所有的Cookie放到一个cookie对象数组里面。 接下来我们用一个循环语句遍历刚才建立的Cookie对象数组,我们用sCookie=cookies[i]取出数组中的一个Cookie对象,然后我们用sCookie.getValue()和sCookie.getName()两个方法来取得这个Cookie的名字和内容。 通过将取出来的Cookie的名字和内容放在字符串变量中,我们就能对其进行各种操作了。在上面的例子里,可通过循环语句的遍历,将所有Cookie放在一张表格中进行显示。 你试试看,应该可以,不过要求用户的浏览器没有禁用cookie 非常非常的感谢。写的非常的详细。不过我还是有点疑问。我把它打成A.WAR.然后部署到TOMCAT中但是问题出现在B系统中。我也把它打成B.WAR包。然后也部署到TOMCAT中我就有点不是很明白的地方。就是A 中的代码<% String cookieName="Sender"; Cookie cookie=new Cookie(cookieName, "Test_Content"); cookie.setMaxAge(10); response.addCookie(cookie); %> response是在A.WAR包的TOMCAT容器中B中的request是在B.WAR包的TOMCAT容器中我以前写过类似您上面写的代码。发现在B的Cookie cookies[]=request.getCookies(); 中取到的COOKIE是NULL。不知道是什么原因。您有QQ号码吗。能在线交流吗 刚看了一个新闻说的是google 把cookie的存活时间设置的是38年,假如其他的应用程序都可以取的话那么应该就不会产生隐私在google这边的问题了,所以我想肯定一个WAR包的创建的cookie可能也真的只适合一个WAR使用,也就是说WARB可能取不到cookie 可以用SessionA 和 B 都有自己地sessionID 他们之间是不通用地但是在请求A地登陆验证后,在同一IE窗口进行登陆B验证如果两个都可以登陆成功当前页面就可以同时登陆A,B当然,在B 也可以这样做 就是用IFrame 在提交A地时候也顺便提交B 就OK了不需要那么复杂 action如何得到sequence 去掉不用的jar (在线)使用jupload来上传多文件 !!!!!!菜鸟又来送分啦!!!!!! 网页地址中!和? jsp连接DB2问题 小弟吐血跪求lucene的问题解决,否则有丢工作的危险,请大家帮帮我好么,回头我一定好好学习,帮我顶下,拜托。。。555。。。 关于Servlet的简单问题! struts的<html:errors> 为什么出现这种错误?and怎么解决? jsp中多次添加消息的问题 solaris系统DiskFileUpload上传文件内容乱码的问题
我是这样想的。 A和B是两个独立的系统。我现在要把他们结合到一起去。也就是说在A应用中输入用户名和密码,验正成功后。就可以直接登录B系统。不需要重新在B系统中登录了。现在我的思路是在A系统的登录成功后。把用户名以COOKIE的形式保存起来。然后在点B系统的链接时。我在B系统的登录脚本里取着个COOKIE值。然后做判断。
也就是所谓的单点登录。
不知道用XML如何实现。还请详细告之。谢谢
、 写入Cookie 其实用JSP操作Cookie是非常简单的,我们来看下面一段JSP程序: ........(中间略)
<%
String cookieName="Sender";
Cookie cookie=new Cookie(cookieName, "Test_Content");
cookie.setMaxAge(10);
response.addCookie(cookie);
%>
........(其他内容)
这样我们就设置了一个Cookie,很简单吧? 我们来仔细研究一下这段代码: Cookie cookie=new Cookie(cookieName, "Test_Content"); 这一行建立了一个Cookie对象,初始化有两个参数,第一个参数cookieName定义了Cookie的名字,后一个参数,也是一个字符串,定义了Cookie的内容。也就是我们希望网页在用户的机器上标识的文件内容。 接下来一行:cookie.setMaxAge(10),调用了Cookie中的setMaxAge方法,设定Cookie在用户机器硬盘上的存活期为10秒。一个Cookie在用户的硬盘里面存在的时间并不是无限期的,在建立Cookie对象的时候,我们必须制定Cookie的存活期,超过了这个存活期后,Cookie文件就不再起作用,会被用户的浏览器自行删除。如果我们希望用户在下次访问这个页面的时候,Cookie文件仍然有效而且可以被网页读出来的话,我们可以将Cookie的存活期设得稍微长一些。比如cookie.setMaxAge(365*24*60*60)可以让Cookie文件在一年内有效。 三、 读出Cookie Cookie文件创建好后,自然还需要我们把它读出来,否则我们不是白费力气吗?接下来我们看看如何读出在用户硬盘上的Cookie。 ........(中间略) Name value <%
Cookie cookies[]=request.getCookies();
Cookie sCookie=null;
String svalue=null;
String sname=null;
for(int i=0;i{
sCookie=cookies[i];
svalue=sCookie.getValue();
sname=sCookie.getName();
%> <%
}
%> name value
<%=name%> <%=svalue%>........(其他内容) 这一小段JSP文件可以读出用户硬盘上的所有有效的Cookie,也就是仍然在存活期内的Cookie文件。并用表格的形式列出每个Cookie的名字和内容。 我们来逐行分析一下这段代码: Cookie cookies[]=request.getCookies() 我们用request.getCookies()读出用户硬盘上的Cookie,并将所有的Cookie放到一个cookie对象数组里面。 接下来我们用一个循环语句遍历刚才建立的Cookie对象数组,我们用sCookie=cookies[i]取出数组中的一个Cookie对象,然后我们用sCookie.getValue()和sCookie.getName()两个方法来取得这个Cookie的名字和内容。 通过将取出来的Cookie的名字和内容放在字符串变量中,我们就能对其进行各种操作了。在上面的例子里,可通过循环语句的遍历,将所有Cookie放在一张表格中进行显示。
但是问题出现在B系统中。我也把它打成B.WAR包。然后也部署到TOMCAT中
我就有点不是很明白的地方。
就是
A 中的代码<%
String cookieName="Sender";
Cookie cookie=new Cookie(cookieName, "Test_Content");
cookie.setMaxAge(10);
response.addCookie(cookie);
%>
response是在A.WAR包的TOMCAT容器中
B中的request是在B.WAR包的TOMCAT容器中
我以前写过类似您上面写的代码。发现在B的Cookie cookies[]=request.getCookies();
中取到的COOKIE是NULL。不知道是什么原因。
您有QQ号码吗。能在线交流吗
A 和 B 都有自己地sessionID 他们之间是不通用地
但是
在请求A地登陆验证后,在同一IE窗口进行登陆B验证
如果两个都可以登陆成功
当前页面就可以同时登陆A,B
当然,在B 也可以这样做
不需要那么复杂