第一章
1. 案例一无法运行问题
目前只知道在IE浏览器下可以运行(原因不知)
2. ServerSocket的InputStream堵塞问题
StringBuffer buf = new StringBuffer();
int i = in.read();
while(i!=-1){
buf.append((char)i);
i = in.read(); //阻塞
}
因为ServerSocket调用accept()方法后,InputStream会一直等待客户端的数据,所以InputStream是没有尽头的直到ServerSocket关闭,所以read()方法一直不会返回-1。在read()方法上会堵塞住等待下次客户端数据的传入,导致无法继续下一步,浏览器会一直处于加载状态。
所以我们只要读取需要的长度即可。
byte[] buffer = new byte[2048];
String request = null;
try {
inputStream.read(buffer);
request = new String(buffer);
} catch (IOException e) {
e.printStackTrace();
}
第二章
RequestFacade和ResponseFacade外观类的使用是为了防止Request和Response向下强转得到parse()方法或sendStaticResourse方法,因为这些方法不应该提供给servlet。
书本28页