错误信息:
java.lang.IllegalStateException: Cannot call sendError() after the response has been committed
使用select搭建写接口,返回数据是json格式,直接用流写出到的浏览器,数据是正常写出了,不过服务器控制台一致在报异常信息,看着很不舒服,查了下原因,这个原因SSH框架也会出,问题就出在select上(或者Struts2上);
服务器不允许进行多次请求,再一次请求相应结束后,这个socket就过期了,不允许在进行操作了,而用流把json数据写出到页面时,就标志着这一次的请求响应结束了,所以服务器在继续往下运行就会报错;
因此只要在返回json流之后return一下就可以解决问题了;
@Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String dispose = request.getParameter("page"); if ("index".equals(dispose)) { this.toIndex(request,response);return; } } |