您的位置:首页 > 理论基础 > 计算机网络

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

2017-01-11 14:59 429 查看
获取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);
}




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: