用Session撒===============================
    CSDN小助手 是一款脱离浏览器也可以使用csdn论坛的
软件!
    界面: http://qqwwee.com/
    下载: http://qqwwee.com/csdn.rar 包含源代码

解决方案 »

  1.   

    在a.jsp中要读取b.jsp的页面输出静态页面结果
    你的存取Session方法位置写反了吧:应在b.jsp页面中进行Session的绑定存值,而在a.jsp中读取Session的值按你的思路,怎是在a.jsp中取值,而在b.jsp中存值呢
      

  2.   

    ccghghgj(CSDN论坛小助手、验证码识别) 
    用Session撒
    ------------------------------------------------------------
    a.jsp中设session, 用方法读b.jsp时读不出来回:silverend
    位置没反,就是要在a.jsp中绑定,要在b.jsp中打出来
      

  3.   

    没看出来是什么原因,建议楼主先在a.jsp中读一下看看是内容否为空,然后看看request传递是不是正确
      

  4.   

    呵呵,试着解释一下.
    你的a.jsp中的getUrl()和你的a.jsp其实根本就不在一个session中.不信你用session.isnew试试.
    我觉得是这样的,如果session是用cookie来实现的话,那么浏览器肯定要在请求中包含一定的cookie的信息吧,你这样来请求b.jsp,肯定不会有cookie的信息了.所以会被认为是new session.
    水平不行,高手勿见笑.
      

  5.   

    看这个例子.
     GET /b.jsp HTTP/1.1
      Connection: close
      Host: localhost:8083
      Accept: */*
      Pragma: no-cache
      Cache-Control: no-cache
      Referer: http://localhost/
      User-Agent: Mozilla/4.04 [en] (Win95; I ;Nav)
      
      HTTP/1.1 200 OK
      Content-Type: text/html; charset=GBK
      Connection: close
      Date: Mon, 29 Aug 2005 12:36:49 GMT
      Server: Apache Tomcat/4.0.6 (HTTP/1.1 Connector)
      Set-Cookie: JSESSIONID=DDB71FD1776E8D6384786759BA256A1F;Path=/
    GET /b.jsp HTTP/1.1
    Accept: */*
    Accept-Language: zh-cn
    Accept-Encoding: gzip, deflate
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)
    Host: localhost:8083
    Connection: Keep-Alive
    Cookie: JSESSIONID=DDB71FD1776E8D6384786759BA256A1F注意这两句
      Set-Cookie: JSESSIONID=DDB71FD1776E8D6384786759BA256A1F;Path=/
      Cookie: JSESSIONID=DDB71FD1776E8D6384786759BA256A1F
      

  6.   

    shenpipi(皮皮) 
    你的a.jsp中的getUrl()和你的a.jsp其实根本就不在一个session中......
    --------------------------
    确实不在一个session中,所以我想知道有没有能读到页面又能保存(或者传递)session的办法
    需求就是: 我在一个jsp/javabean中,需要读另一个jsp的输出, 存成一个文件。
      

  7.   

    看看我上面给你的例子,可能你自己要把Set-Cookie: JSESSIONID=DDB71FD1776E8D6384786759BA256A1F;Path=/
    保存下来,然后下次请求的时候带上Cookie: JSESSIONID=DDB71FD1776E8D6384786759BA256A1F
      

  8.   

    request中的setAttribute 方法,就是有可能会丢失对象,建议不要使用你可以在url参数中转递过去
      

  9.   

    本来希望页面上打出来“USER:username”,但是实际出来的是"USER:null", 
    ------------------------------
    还是这个问题,如果楼主要传什么参数的话建议用session或者url传,不要用这么费劲的方法
      

  10.   

    用geturl就表示你的a.jsp和b.jsp一点关系都没有,就如同你用ie打开b.jsp一样。如果b.jsp的session是做登录验证用的,你怎么能仿造一个session给b.jsp呢。那不就等同于绕过了b.jsp的身份验证了么?(难道楼主的目的就是这个?)session的机制是在服务器保存一个对象,这个对象保存在一个map里,key值由http返回流返回回来,而接着http提交时也会带着这个key值去(就是所谓sessionid),这样调出服务器上的session对象。但是如果服务器上根本就没有session对象(比如要求身份验证过服务器才会建session的),那你的key值无论怎么写,session里都是null。如果楼主真的想做到的话,一定要从b.jsp所在的web应用的登录那个页面开始请求,读取返回的sessionid,以这个id写进请求里再去访问b.jsp,这样才能取出session的
      

  11.   

    感谢大家的支持,  楼上murasaki(风羽)  说的比较有道理, 那是不是说在“同一个项目里,登录以后”(请注意条件),除非在浏览器中直接点到这个url,很难用程序读出这个url返回的静态页面结果了?(如果这个url包含session的读取的话)
      

  12.   

    错误的原因楼上的已经讲的很清楚了,我现在主要说一下具体实现
    方法一:b.jsp实际上是你访问的一个页面,但这个页面由于你是用URL去抓,所以抓这个页面和抓http://www.163.com一样,都是一个地址,和你的a.jsp完全没有关系,你用session一点用都没有。
    要想抓下来,你需要有访问b的权限,也就是说必须在b.jsp页面上进行登录,如何登录,你可以先登录login.jsp(和b.jsp同在一个应用),登录后再跳到这个页面来抓b.
    方法二:传递参数。b.jsp?username=test,当然,b.jsp中要有获取这个参数的方法,比如request.getParameter("username").
    如果你的b.jsp是通过session来拿到username的,那你只能用第一种方法了。
      

  13.   

    登录的话还需要拿到sessionid吧,request的连续两次调用也不一定是一个session吧?呵呵。没有测试,随便说说。
      

  14.   

    To: mxlmwl(飞星) 
    .....登录后再跳到这个页面来抓b.......
    ---------------------------------------------------你说的这句就是我想解决的问题。我前面已经说了,前提条件是:“同一个项目里,登录以后”;现在问题就是不通过ie地址栏访问获取jsp页面的client html代码,不是是否登录的问题。
      

  15.   

    那你用apache的httpclient试试,看能否能拿到。但看你的情况,我觉得URLConnection似乎是相当于你又重新开了一个进程,和你目前的程序没有什么关系,就好比你同时开两个IE进程一样,所以你拿不到第一个进程访问时所产生的session。不知道httpclient能否达到你的要求,你可以尝试一下。
      

  16.   

    读取jsp页面输入, 高手出!
      

  17.   

    楼主把URLConnection换成最基本的Socket试试吧,把JSESSIONID加到请求头里面.