我正在编写一个简单的 AJAX 应用程序,它从 JSP 上的表单中获取输入,然后使用 JSON 将数据传递给 servlet。在 servlet 中,我有以下快速而肮脏的代码:
char[] charBuffer = new char[500];
String[] names;
String[] values = new String[20];
int amountRead;
JSONObject jsonObject1;
JSONObject jsonObject2;
PrintWriter out = response.getWriter();
BufferedReader in = request.getReader();
amountRead = in.read(charBuffer);
charBuffer[amountRead]='\0';
String invalue = new String( charBuffer, 0, amountRead);
然后是一个try
对 JSON 对象执行一些操作的块。基本上,作为练习,我试图来回传递相同的表单数据并显示它。
这就是问题所在:当然,在这个快速而肮脏的代码中,不能保证您从请求中获得完整的消息。知道如果到达流的末尾,read()
方法BufferedReader
将返回-1,我尝试进行以下添加:
while( in.read() != -1 ) {
amountRead = in.read(charBuffer);
}
然而,一旦我实现了这个,我的输出就是空白的。我什么也得不到。即使在尝试使用调试器逐步完成它之后,我也不完全确定为什么该while
循环没有达到预期的效果。
我敢肯定这是一件简单而愚蠢的事情。有人可以指出我的方式的错误吗?与往常一样,提前致谢。