如何用JAVA实现IE浏览器保留会话的功能?
详细说明:用java与网站服务器建立连接,提交登陆名和密码(可在URL中以参数的方式提交),但是如何保留住登陆后的会话呢?我做了一个测试,例如:http://xxx.com/login.xxx?username=uuu&password=yyy,在浏览器上输入该地址可以直接登陆。
用java.net.URL.openStream()可以建立连接,讲用户名和密码提交给服务器。但是用java.net.URL请求该网站的另一页面如http://xx.com/bbb.xxx结果为为登陆的的页面。
请大家帮忙分析一下该如何实现。下面是我写的一段测试代码:
                  String username= null;
String password = null;
URL loginUrl = null;
URL randomUrl = null;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {

System.out.println("Please input your username:");
email = br.readLine();
System.out.println("Please input your password");
password = br.readLine();
loginUrl = new URL("http://xxx.com/login_check_proc.php?username="+username+"&Password="+password);
randomUrl = new URL("http://xxx.com/myselfpage.php");
BufferedReader in = new BufferedReader(new InputStreamReader(loginUrl.openStream()));
String temp = null;
while((temp=in.readLine())!=null){
//System.out.println(temp);
}
//in.close();

BufferedReader vbr = new BufferedReader(new InputStreamReader(randomUrl.openStream()));
while((temp = vbr.readLine())!=null){
System.out.println(temp);
}


if(in != null){
in.close();
}
if(vbr != null){
vbr.close();
}

} catch (IOException e) {
e.printStackTrace();
}
运行后要求输入username,和password。
然后将获得用户名及密码追加到http://xxx.com/登陆页面后面的参数部分。
直接用http://xxx.com/login_check_proc.php?username="+username+"&Password="+password在IE中打开可成功登陆。
上面的程序建立连接后将服务器的反馈的内容打印出来,从反馈内容来看似乎可以成功登陆。
但是紧接着建立的第二个连接,即http://xxx.com/myselfpage.php,反馈的内容为未成功登陆的的信息。如何才能保留住成功登陆的会话信息,使得再请求该网站上的其他页面时为登陆状态,即通过验证的状态。谢谢。

解决方案 »

  1.   

    放进Session 里
    request.getSession().setAttribute("user",User);username,和password从缓存中获得(User)request.getSession().getAttribute("user",User);
      

  2.   

    会话是保存在 HTTP Header 中的 Cookie 字段里的。你只要保留当中的内容,然后每次请求的时候都带上它即可。
      

  3.   

    用httpClient库就方便了~~~~~~~~~~我的新书刚上架,欢迎订购:
    《搜索引擎零距离—基于Ruby+Java搜索引擎原理与实现》 清华出版社。
    http://www.huachu.com.cn/itbook/itbookinfo.asp?lbbh=10105450
      

  4.   

    session 在服务端维护,和客户端设计没什么关系[但cookie有关]
      

  5.   

    3 楼正解
    用第三方的库更方便,如 httpClient 库, 记得还有一个, 忘了名字
      

  6.   

    http://xxx.com/login.xxx?username=uuu&password=yyy登陆后,应该会重定向到需要访问的网页, 你用ieHttpHeaders查看一下, 看是否由转向,登陆或者抓取网页, 建议用Httpclient开源工具操作, 比较简便. 
      

  7.   

    模拟IE浏览器教程http://www.130132.cn/0_12_214479.aspx