Http上传下载输入输出流总结

获取httpServletRequest中获取Http请求body的方法
 //字符串读取
    public String  charReader(HttpServletRequest req) throws IOException{
        BufferedReader reader=req.getReader();
        String str,data="";
        while((str=reader.readLine())!=null){
            data+=str;
        }
        return data;
    }
    //二进制读取
    public void binaryReader(HttpServletRequest req) throws IOException{
        int len=request.getContentLength();
        ServletInputStream input=request.getInputStream();
        byte buffer[]=new byte[len];
        input.read(buffer,0,len);
        //写入到文件
//        int numRead;
//        File file=new File("D:\\data\\test.txt");
//        FileOutputStream fos = new FileOutputStream(file, true);
//        byte[] buf = new byte[1024 * 100];
//        ServletInputStream input = request.getInputStream();
//        while ((numRead = input.read(buf)) != -1) {
//            fos.write(buf, 0, numRead);
//        }
    }

注意:

request.getInputStream(); request.getReader();和request.getParameter("key");这三个函数中任何一个函数执行一次后(可正常读取body数据),之后再执行就无效了。


HttpServletRequest对象的方法:

1. 获得客户机信息

    getRequestURL方法返回客户端发出请求时的完整URL。
    getRequestURI方法返回请求行中的资源名部分。
    getQueryString 方法返回请求行中的参数部分。
    getRemoteAddr方法返回发出请求的客户机的IP地址
    getRemoteHost方法返回发出请求的客户机的完整主机名
    getRemotePort方法返回客户机所使用的网络端口号
    getLocalAddr方法返回WEB服务器的IP地址。
    getLocalName方法返回WEB服务器的主机名
    getMethod得到客户机请求方式


 2.获得客户机请求头 

    getHeader(string name)方法
    getHeaders(String name)方法
    getHeaderNames方法 

 3. 获得客户机请求参数(客户端提交的数据)

    getParameter(name)方法
    getParameterValues(String name)方法
    getParameterNames方法
    getParameterMap方法


例子

//得到请求的参数Map,注意map的value是String数组类型
            Map map = request.getParameterMap();
            Set
  
  
   
    keySet = map.keySet();
            for (String key : keySet) {
                String[] values = (String[]) map.get(key);
                for (String value : values) {
                    System.out.println(key + "=" + value);
                }
            }
            Enumeration
   
   
    
     em = request.getHeaderNames();
            while (em.hasMoreElements()) {
                String name = (String) em.nextElement();
                String value = request.getHeader(name);
                System.out.println(name + "=" + value);
            }
   
   
  
  













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值