*********Http Post登陆后如何保持会话?*********
关于Http请求有问题请教一下,我想实现Post登陆(用自己的站做的测试).但不会处理Cookie来达到会话持久的目的
Web服务器端:
- Java code
网站登陆成功后,设置session代码如下:session.setAttribute("uid",uid);然后重定向到登陆成功的页面:response.sendRedirect(....);下面是自己写的程序过程:
发送登陆数据包:
- Java code
POST /_login.jsp HTTP/1.1Host: 192.168.1.2Accept-Language: zh-cnConnection: keep-aliveusername=admin&userpwd=admin
接收到的包:
- Java code
HTTP/1.1 302 Moved TemporarilyServer: Apache-Coyote/1.1Set-Cookie: JSESSIONID=129FDBC989E0942F3EB64C818554AB94; Path=/glxtLocation: http://192.168.1.2/glxt/index.jsp?fid=40&tid=3Content-Type: text/html;charset=UTF-8Content-Length: 0Date: Sat, 18 Feb 2012 05:55:49 GMT
此时登陆成功,并重定向了,然后我加Cookie发送,取网站数据:
- Java code
GET /glxt/index.jsp?fid=40&tid=4 HTTP/1.1Host: 192.168.1.2:8080Cookie: JSESSIONID=129FDBC989E0942F3EB64C818554AB94
但返回的数据包如下:
- Java code
HTTP/1.1 302 Moved TemporarilyServer: Apache-Coyote/1.1Location: http://192.168.1.2:8080/glxt/index.jsp?fid=1&tid=3Content-Type: text/html;charset=UTF-8Content-Length: 0Date: Sat, 18 Feb 2012 05:55:49 GMT
又重定向了,说明无权限取该数据.
请问这是为什么呢? Cookie该怎么设置才能保持会话呢?
谢谢, 请帮帮我~~~ 再次谢谢
[解决办法]
你的帖子犯错了位置吧????
放到java区去啊
[解决办法]
http://192.168.1.2/glxt/index.jsp?fid=40&tid=3
登录成功要跳转到这个页面,你没跳转,服务器不认,让你再跳转一次
你就从了呗
[解决办法]
用抓包程序,完整地走一遍登入流程
然后,研究其过程,跳转可能不只一次
至于Cookie,保存起来(注意域的变化以及Cookie值的修改,Cookie是累加的),每次请求都发出去就可以了
[解决办法]
http://192.168.1.2/glxt/index.jsp?fid=40&tid=3
可能会生成其他的Cookie,你没有这些Cookie,服务器认为你登录尚未完成。