一个servlet中如何跳转到1.jsp 后,可以继续执行跳转到2.jsp,而不会报错:
Cannot forward after response has been committed
代码如下:
request.getRequestDispatcher("1.jsp").forward(request, response);//Arequest.getRequestDispatcher("2.jsp").forward(request, response);//B
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
其实我遇到的是一个servlet中需要启动一个线程,并传入传给request,response,这个线程实时监控一台设备,根据监控的结果跳转页面,当第二次获取到值跳转页面会报错:
Cannot forward after response has been committed
该如何解决?

解决方案 »

  1.   

    我懂得不是太多,随便说一下:forward是跳到另一个页就不再回来了,也就是说你的forward后的东东都执行不了啦,能否用include之类的东东呢?我刚学jsp一个多星期,如果说错了请别见怪,呵呵。
      

  2.   

    Cannot forward after response has been committed
    是请求已经被应答了。
    request,response 应该是一一对应的。 不能随便应答吧?
      

  3.   

    你可以把2.jsp做成一个refresh页,
      

  4.   

    Cannot forward after response has been committed ?
    --------------------------------------------------你在每次
    request.getRequestDispatcher("2.jsp").forward(request, response);//B的后面,添加一句:
    return;试一下。意思就是说,第一个页面 forward 之后,本身就不能再执行了,不要再去影响 response 了。
      

  5.   

    这个不行,就像 bluemoon0001(小天--追梦浪子) 所说的那样.
    如果想再跳,你可以在1.jsp中,让它自动刷新,刷新时再载入第二个页面.
    或者在1.jsp中再跳.
      

  6.   

    楼主需要重新实现一下response类(extends ServletResponse),这个类可以由servlet service方法中的response对象构造得到,并能记录原response方法,在forward传递过程中的response对象用你自己实现的response对象,直到最后的时候,再由这个对象得到你想response的所有内容。