使用HttpURLConnection类(利用sessionId保持会话


TestServlet.java

package nj.servlet;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class TestServlet extends HttpServlet {
public void doPost(HttpServletRequest request,HttpServletResponse response){
HttpSession session=request.getSession();
String str=(String)session.getAttribute("name");
System.out.println("name:"+str);
session.setAttribute("name", "nj");
/*String ss=request.getHeader("Cookie");
System.out.println("session id:"+ss);*/
}
public void doGet(HttpServletRequest request,HttpServletResponse response){
this.doPost(request, response);
}
}


TestServlet.java

package nj.ws.test;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class TestConnection {

public static void main(String[] args){
//第一次连接,返回session id
String sessionId=testUrlConnection();
//第二次使用session id连接
connectionBySession(sessionId);
}

public static String testUrlConnection(){
String urlStr="Http://localhost:8080/WebServiceProject/testServlet";
OutputStream out=null;
InputStream in=null;
try {
URL url=new URL(urlStr);
HttpURLConnection con=(HttpURLConnection)url.openConnection();
con.setRequestMethod("POST");

//打印请求头信息
Map hfs=con.getHeaderFields();
Set keys=hfs.keySet();
for(String str:keys){
List vs=(List)hfs.get(str);
System.out.print(str+":");
for(String v:vs){
System.out.print(v+"\t");
}
System.out.println();
}
System.out.println("-----------------------");
String cookieValue=con.getHeaderField("Set-Cookie");
System.out.println("cookie value:"+cookieValue);
String sessionId=cookieValue.substring(0, cookieValue.indexOf(";"));
return sessionId;
} catch (Exception e) {
e.printStackTrace();
return null;
}finally{
try {
if(in!=null)
in.close();
if(out!=null)
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

public static void connectionBySession(String sessionId){
InputStream in=null;
try{
String url="Http://localhost:8080/WebServiceProject/testServlet";
URL u=new URL(url);
HttpURLConnection con=(HttpURLConnection)u.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Cookie", sessionId);
in=con.getInputStream();
}catch(Exception e){
e.printStackTrace();
}finally{
try {
if(in!=null)
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
运行后打印结果:

Web服务端:

name:null
name:nj



测试类打印:

null:HTTP/1.1 200 OK
Content-Length:0
Set-Cookie:JSESSIONID=7827696933343BC5005E5244369CB2A8; Path=/WebServiceProject
Date:Mon, 01 Dec 2008 03:16:30 GMT
Server:Apache-Coyote/1.1
-----------------------
cookie value:JSESSIONID=7827696933343BC5005E5244369CB2A8; Path=/WebServiceProject


你可能感兴趣的:(j2se)