日期:2014-05-20  浏览次数:20681 次

如何用纯java程序 实现访问一个网站的两个页面都返回一个session标示(在线等)
我是一个初学者,老师留了一个问题。要求我们不使用浏览器,用java代码编写一个客户端程序,实现session会话功能。
然后我urlconnection类     写了一个程序可以访问一个网站,并能够得到他的一些session信息。
程序如下:import   java.io.*;
import   java.net.*;
import   java.net.HttpURLConnection;
public   class   cookie{
public   void   sc(){
try{
URL   ur=new   URL( "http://www.sina.com ");
HttpURLConnection   huc=   (HttpURLConnection)ur.openConnection();  
String   cook   =   huc.getHeaderField( "Set-Cookie ");
System.out.println(cook);
}catch(Exception   e){
System.out.println(e.getMessage());
}
}
  public   static   void   main(String[]   args){
cookie   c=new   cookie();
c.sc();
}
}
但是我用这段程序再访问该网站其他页面时,返回的session信息与我第一次返回的session信息不一样,如果能返回相同的session信息,就表示是同一个会话。
我想把第一次返回的session信息作为参数发给服务器,让服务器知道我与之前的访问是属于一个会话的,但是我不知道使用什么方法能够达到这个效果。
因为我是个初学者有很多不明白的地方,最好能给我一段代码说明,原理的东西可能说了,本人也暂时无法理解。希望大家帮我一下!!我在线等答案。


------解决方案--------------------
这里有解决的办法啊?http://www.javadingle.com
------解决方案--------------------
我来帮你吧.方法如下:
将第一次访问页面得到的SESSION保存起来.即下面的值,保存起来,可以通过定义静态变量的形式.
strCookie = huc.getHeaderField( "Set-Cookie ");
之后,再次送信时,将之前保存的SESSION信息再设定,就可以了.
加下下面的处理就OK了.
if (strCookie != null) {
huc.setRequestProperty( "cookie ", strCookie);
}