1.前台传输数据
2、对前台传的数据解析会用到,先将数据存在缓存然后输出到buffer,避免数据量太大读取不到问题
public static byte[] read(HttpServletRequest request, boolean cache) {
byte[] buffer = (byte[])request.getAttribute("_anyline_request_read_cache_byte");
if(null != buffer){
return buffer;
}
buffer = new byte[1024];
ServletInputStream in = null;
ByteArrayOutputStream out = null;
try {
in = request.getInputStream();
out = new ByteArrayOutputStream();
int len;
while ((len = in.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
buffer = out.toByteArray();
if(cache){
request.setAttribute("_anyline_request_read_cache_byte", buffer);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != out) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return buffer;
}
遇到读request存在的问题的代码:以下写法只读取一次,如果request传数太大,会导致读取不到数据
public static byte[] read(HttpServletRequest request, boolean cache) {
byte[] buffer = (byte[])((byte[])request.getAttribute("_anyline_request_read_cache_byte"));
if (null != buffer) {
return buffer;
} else {
int len = request.getContentLength();
if (len <= 0) {
return new byte[0];
} else {
buffer = new byte[len];
ServletInputStream in = null;
try {
try {
in = request.getInputStream();
in.read(buffer, 0, len);
if (cache) {
request.setAttribute("_anyline_request_read_cache_byte", buffer);
}
} catch (IOException var9) {
var9.printStackTrace();
}
return buffer;
} finally {
;
}
}
}
}
版权声明:本文为qq_19897551原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。