`
小嘴冰凉
  • 浏览: 447698 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

    博客分类:
  • j2se
阅读更多
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<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: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



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics