server code String name = request.getParameter("name");
System.out.println("name:"+name);
InputStream in = request.getInputStream();
int read=-1;
System.out.println("in:"+in.available());
System.out.println("=============");jsp:<form method="post" action = "/proxy/servlet/Proxy">
<input type="text" name="name" >
<input type="submit">
</form>
控制台打印的结果是:name:se
in:0为什么System.out.println("in:"+in.available()); in.available()是0呢把这二句(String name = request.getParameter("name");
System.out.println("name:"+name);)注释掉了,结果还是这样
in 取到值,可为什么available会是0呢
System.out.println("name:"+name);
InputStream in = request.getInputStream();
int read=-1;
System.out.println("in:"+in.available());
System.out.println("=============");jsp:<form method="post" action = "/proxy/servlet/Proxy">
<input type="text" name="name" >
<input type="submit">
</form>
控制台打印的结果是:name:se
in:0为什么System.out.println("in:"+in.available()); in.available()是0呢把这二句(String name = request.getParameter("name");
System.out.println("name:"+name);)注释掉了,结果还是这样
in 取到值,可为什么available会是0呢
<form method="post" enctype="multipart/form-data" action = "/proxy/servlet/Proxy">
<input type="text" name="name" />
<input type="file"name="file"/>//上传一个文件
<input type="submit"/>
</form>
public int available()
throws IOException返回此输入流下一个方法调用可以不受阻塞地从此输入流读取(或跳过)的估计字节数。下一个调用可能是同一个线程,也可能是另一个线程。一次读取或跳过此估计数个字节不会受阻塞,但读取或跳过的字节数可能小于该数。
注意,有些 InputStream 的实现将返回流中的字节总数,但也有很多实现不会这样做。试图使用此方法的返回值分配缓冲区,以保存此流所有数据的做法是不正确的。 如果已经调用 close() 方法关闭了此输入流,那么此方法的子类实现可以选择抛出 IOException。 类 InputStream 的 available 方法总是返回 0。 此方法应该由子类重写。
返回:
可以不受阻塞地从此输入流读取(或跳过)的估计字节数;如果到达输入流末尾,则返回 0。
抛出:
IOException - 如果发生 I/O 错误。
学习了!
LZ的例子虽然in.available()的返回值是0,但是,实际上数据是可以取得的。
InputStream in=request.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(in));
String line="";
while((line=br.readLine())!=null)
{
out.print(line);
out.print("<br>");
}