0 0

java入去cookie遇到麻烦啦,快来人啊5

      我在读取cookie的时候遇到了麻烦,请同学们帮忙看看~谢谢。

首先我已经把cookie写入客户端了,以下是截图(通过chrmoe浏览器查看的cookie):



 

 

 

 

 

 

 

 

  我的java代码这样写的:

private String getUsername(HttpServletRequest request){
		Cookie[] cookies = request.getCookies();
		String username = "";
		if(cookies!=null){
		    for (int i = 0; i < cookies.length; i++) 
		    {
		       Cookie c = cookies[i];     
                       System.out.println(c.getName()+"--"+c.getValue());
		       if(c.getName().equalsIgnoreCase("username"))
		       {
		    	   username = c.getValue();
		       }
		    }
		}
		return username;
	}
 

 

 程序输出的cookie key/value如下:

JSESSIONID--3895FE881678B0085D24BC54F43BE077

q7O_visitedfid--2

uchome_loginuser--liusheng

不知道为什么拿不到username和ticket两个cookie?

请指教!

2013年8月29日 11:06
  • 大小: 31.4 KB
  • 大小: 29.2 KB
  • 大小: 31.1 KB
  • 大小: 28.6 KB
  • 大小: 31.1 KB
  • 大小: 30.8 KB

5个答案 按时间排序 按投票排序

1 0

发现几张图中“路径”不同,有“/”“/uas/cas”,username和ticket的路径是“/uas/cas”,是不是因为这个Web路径不同导致的

2013年8月29日 13:58
0 0

目测是  cookie 路径原因.
/uas/cas 应是你写 cookie 的 acion url.,写出来的 cookie 也只能在对应的 url 下获取.

getUsername


这个方法处理的 URL 是不是 /uas/cas** ?

试试在写username和ticket两个 cookie 的时候,设置 path 为 "/" ,

2013年8月30日 10:05
0 0

认真看一下cookie的详细信息。
好像这两个cookie的过期时间和创建时间是相同的?

2013年8月30日 09:32
0 0

cookie如何设置的,是否是http only,如果是http only,是拿不到的。 cookie的作用域也要考虑,作用域不对浏览器不会发过来的

2013年8月29日 22:16
0 0

javax.servlet.http.Cookie有两个比较重要的方法:setDomain()、setPath()
正常的cookie只能在一个应用中共享,即一个cookie只能由创建它的应用获得。

可在同一应用服务器内共享方法:设置cookie.setPath("/");

跨域共享cookie的方法:设置cookie.setDomain(".jszx.com");

2013年8月29日 14:45

相关推荐

Global site tag (gtag.js) - Google Analytics