您的位置:首页 > 理论基础 > 计算机网络

Java客户端通过HttpURLConnection连接Web服务器的Session保存问题

2013-04-18 01:33 711 查看
http://blog.csdn.net/lixinso/article/details/6642703

通过Java客户端访问Web时,session信息的保存问题。

通过浏览器访问Web,浏览器自动管理Http连接的的session信息,如果通过Java连接,比如HttpURLConnection,就需要程序自己管理session。

我们希望java客户端能像浏览器一样,每次请求都维持一个session。

具体做法时这样:

客户端代码:

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.HttpURLConnection;

import java.net.URL;

public class Client {

public static void main(String[] args) throws IOException {

URL url = new URL("http://localhost:8080/lbs_server/print_session.jsp");

HttpURLConnection conn = (HttpURLConnection)url.openConnection();

conn.setRequestMethod("GET");

conn.setDoOutput(true);

//第二次运行的时候,把上次读取的session的值设置上

conn.setRequestProperty("Cookie", "JSESSIONID=320C57C083E7F678ED14B8974732225E");

PrintWriter out = new PrintWriter(conn.getOutputStream());

String str = "url = " + url;

System.out.println("");

out.println(str);

out.flush();

BufferedReader in = null;

in = new BufferedReader(new InputStreamReader(conn.getInputStream()));

String destStr = "";

String inputLin = "";

while((inputLin = in.readLine()) != null ){

destStr += inputLin;

}

System.out.println(destStr);

//第一次运行的时候,记录下来session的值

String session_value = conn.getHeaderField("Set-Cookie");

String[] sessionId = session_value.split(";");

System.out.println(sessionId[0]);

System.out.println("Session Value = " + session_value);

}

}

由于只是测试代码,只是示例一下。

第一次连接的时候获取session信息,取出sessionId[0]。再次连接的时候,将session信息设置为sessionId[0],就可以了。

再服务器端的代码时这样:

print_session.jsp

<body>

<% System.out.println(session.getId());

if(session.getAttribute("first_time") == null )

session.setAttribute("first_time",System.currentTimeMillis());

System.out.println("first_time:" + (Long)(session.getAttribute("first_time")) );

%>

</body>

这样再服务器端看到的session信息和session数据都在。

比如两次连接服务器端得到的结果都是:

320C57C083E7F678ED14B8974732225E

first_time:1311899387880

320C57C083E7F678ED14B8974732225E

first_time:1311899387880
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐