小嘴冰凉 发表于 2013-2-3 14:36:04

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

TestServlet.javapackage 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.javapackage 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<String> keys=hfs.keySet();             for(String str:keys){               List<String> 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:nullname: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
页: [1]
查看完整版本: 使用HttpURLConnection类(利用sessionId保持会话