在JavaWeb中通过ajax或jquery向JSP页面传送数据时会用到PrintWriter out = response.getWriter() ;out.print(data);网上的程序中有人在后面加了out.flush();有的人还加了out.close();
我发现不加out.flush(); out.close(); 程序也是可以跑通的。我想问JSP网站如果长期运行,不加out.flush();会造成什么后果?不加out.close();又会造成什么后果?out.flush(); out.close(); 是不是可有可无的?
答案:
如果flush close在servlet方法(get post put....)的最后,那这是不必要的,因为servlet引擎会在用户态servlet方法返回后检查response流,并作flush和close
如果flush close在servlet方法的中部,并且后面会有不定时或者耗时的操作,需要立即发送相应,那么就要flush就立即写入socket了。而close是不必要,除非你明确的知道需要立即关闭socket,就是因为servlet引擎会做这个事。