我需要用url连接,http上来下载一些文件,但是http需要登陆,有用户名,密码,不然url是没用的,我想用sessionid来做
但是不知道应该怎样做,是先网页登陆后得到一个sessionid后,把这个加到url里面(如果是的话,怎么加),
  如果不是这么做的话,应该怎样,希望知道的指点一下

解决方案 »

  1.   

    首先,我理解Web容器的机制是这样的.只要用户打开一个网页.就已经在服务端绑定一个sessionid了只是这个sessionid所对应的value内没有相应的业务信息(用户登录信息,角色啊什么)一般我们做登录逻辑时,都是在验证用户身份后,向session中加入attribute(如sesison.setAttribute("userInfo",user))
    LZ可以写一个过滤流,只过滤那些下载URL,在里面判断用户是否是合法用户.如果是则跳转到请求的URL.否则跳转到登录页.如有理解错误的地方,还请楼下指点~~~~
      

  2.   

    不是,我不是用的servlet之类,只是用net包的URL,openConnection,connect的方法来下载,如果没有身份验证的话,直接url设为要下载文件的url就行了,用io流
      

  3.   

    答:用URLConnection第一次向服务器发起连接时,将用户名与口令通过GET方式或POST方式传递过去(具体是哪一种?要看服务器方是以哪一种方式接收用户名与口令的).若是合法用户,服务器返回时,其响应头部有一个:
    Set-Cookie:.................................
    你读取该Set-Cookie后面的值.
    以后每一次向服务器要数据时,都使用URLConnection的uc.setRequestProperty("Cookie","Set-Cookie后面的值");设置Cookie就行了(其实该Cookie中放的是:SESSION等信息)