大家好,我在运行程序的时候,控制台跳出这样的语句,我也到网上找了方法,有人说
PrintWriter writer = response.getWriter();
writer.close();
增加条这样的语句
也有人说
增加这样的语句  response.reset(); 但是我把这些语句尝试在action和jsp都放过还是不行, 有熟悉的人知道这个问题应该怎样解决吗?

解决方案 »

  1.   

    能看看你代码么,肯定是你PrintWriter writer = response.getWriter();
    报错的那个servlet里面有问题
      

  2.   

    getWriter和getOutputStream 二者只能选其一,调用了其中一个就不能调用另一个了
      

  3.   

    我用的是struts+hibernate 做的,程序中没有涉及到getWriter()的语句啊
    我把action贴出来给您们看看
    public class ShebeiAction extends DispatchAction{
    /*
     * Generated Methods
     */
    private IshebeiBIZ shebeibiz;; public IshebeiBIZ getShebeibiz() {
    return shebeibiz;
    }public void setShebeibiz(IshebeiBIZ shebeibiz) {
    this.shebeibiz = shebeibiz;
    } /** 
     * Method execute
     * @param mapping
     * @param form
     * @param request
     * @param response
     * @return ActionForward
     */
     public ActionForward add(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) throws ParseException {
    // TODO Auto-generated method stub
       
    ShebeiForm shebeiform=(ShebeiForm)form;
    Shebei sb=new Shebei();
    shebeibiz=new shebeiBiz();
    sb.setShebeiid(shebeiform.getShebeiid());
    sb.setSbname(shebeiform.getSbname());
    sb.setBuydate(new SimpleDateFormat("yyyy-MM-dd").parse(shebeiform.getBuydate()));

    sb.setCcid(shebeiform.getCcid());
    sb.setDepartment(shebeiform.getDepartment());
    sb.setModel(shebeiform.getModel());
    sb.setOrigin(shebeiform.getOrigin());
    sb.setRe(shebeiform.getRe());
    sb.setSbsupplier(shebeiform.getSbsupplier());
    System.out.println(sb.getShebeiid());
    System.out.println(sb.getSbname());
    System.out.println(sb.getBuydate());
    System.out.println(sb.getCcid());
    System.out.println(sb.getDepartment());
    System.out.println(sb.getModel());
    System.out.println(sb.getOrigin());
    System.out.println(sb.getRe());
    System.out.println(sb.getSbsupplier());
    this.shebeibiz.save(sb);
    return mapping.findForward("manage");
    }
    }
      

  4.   

    页面有报错吗?调试下是运行到哪里报错的,提示是response已经响应了,所以可能是在return mapping.findForward("manage");
    之前你的程序已经报错了,比如500之类的表示页面有了响应,所以这里可能报getWriter() has already been called for this response
    所以我猜测你的错误根源不在这个错误提示这里顺便问一下,你的action为什么要抛出throws ParseException,把这个去掉,在代码里面捕捉一下,看有没有异常