www.163.com?wqe=213;adasd=133
这还是一个url,只能用request.getParameter之类的方法获取如果你用过ajax,在xmlhttprequest中的sendData中传输的数据就可以通过request.getInputStream来获得 具体代码怎么写的忘记了 网上应该有不少总而言之,www.163.com?wqe=213;adasd=133只是被作为一个url,是一个整体. 但是当你链接某个url之后,向其发送数据,这时候你才可能用request.getInputStream来读取其中的数据

解决方案 »

  1.   

    bruni(不如你)的话,我大致听明白了,就是要先邦定之后,然后再已经建立端到端的发送时,这时候就会用到getInputStream了,也就是这个流是附加的数据传输,不在http请求或响应中,是吗?另外,那个2进制的数据问题,麻烦哪位也给讲讲,好让这贴结了,多谢
      

  2.   

    也就是这个流是附加的数据传输,不在http请求或响应中,是吗?
    => YES另外,那个2进制的数据问题
    =>如果没说错的话 那是因为传输的是数据流
      

  3.   

    虽然这么一说,我看了看以前的例子:
    这是一个Servlet的下载的别人写的例子程序:
    String filePath="D://upload//"+request.getParameter("fileName");
        
        System.out.println("-------filePath----------"+filePath);
        
    File f = new File(filePath);

    if(!f.exists()){
     response.sendError(404,"File not found!");
     return;
    }
    BufferedInputStream br = new BufferedInputStream(new FileInputStream(f));
    byte[] buf = new byte[1024];
    int len = 0;


    //重置下载方法
    response.reset(); 
     
                                     
    //设置http头
    response.setContentType("application/x-msdownload"); 
    response.setHeader("Content-Disposition", "attachment; filename=" + f.getName()); 
                //设置输出流
    OutputStream out = response.getOutputStream();
    //如果流的长度len>0,向外写这些流
    while((len = br.read(buf)) >0){
    out.write(buf,0,len);
    }
      

  4.   

    在这个里面用到了response.getOutputStream这个类型也就是ServletOutputStream类型的,
    这是个下载的例子,也就是说用BufferedInputStream br邦定你要下载这个文件,通过一个字节数组byte[] buf作为桥梁,读到字节数组当中,在从这个字节数组向外写流,写到哪里去了,这时候有产生了一个疑问,那response写的流,你在页面单击一个链接,然后弹出对话框问你保存在哪,这个对话框究竟怎么调用的??????????????
    当你选择了位置时,那流就按照这个对话框的指示去建立了,然后写到你指定的对话框的具体位置,是吗????????????????
      

  5.   

    写到哪里去了
    => 当然是写到客户的浏览器中去了然后弹出对话框问你保存在哪,这个对话框究竟怎么调用的??????????????
    => 当浏览器判断到页面输出是一个文件下载的流时,自动会弹出窗口让你保存这个文件.当你选择了位置时,那流就按照这个对话框的指示去建立了,然后写到你指定的对话框的具体位置,是吗????????????????
    => 是,这里文件保存在本地的路径已经是由浏览器来处理的了.P.S. 你问题还真不少!