严重: Servlet.service() for servlet jsp threw exception
java.io.IOException: Stream closed
at org.apache.jasper.runtime.JspWriterImpl.ensureOpen(JspWriterImpl.java:204)
at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:115)
at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:186)
at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:118)
at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:77)
at org.apache.jsp.shopping_jsp._jspService(shopping_jsp.java:136)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)

解决方案 »

  1.   

    这是我的代码,运行过程都没报错,最后Servlet运行完了才报的错!!郁闷
    package accp.web;import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import accp.entity.EasybuyProduct;
    import accp.entity.byGoods;public class Cart extends HttpServlet { /**
     * 购物车
     */

    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    request.setCharacterEncoding("utf-8");
    response.setContentType("text/html;charset=utf-8");
    PrintWriter out = response.getWriter();
    String ep_Id1 = request.getParameter("ep_Id");
    if(ep_Id1 != null){
    Long ep_Id = Long.parseLong(ep_Id1);
    //得到购物车
    Map cart = (Map) request.getSession().getAttribute("cart");
    //如果购物车为空则创建一个新的购物车
    if(cart == null){
    cart = new HashMap();
    }
    //得到所有商品ID
    List <EasybuyProduct> list = (List)request.getSession().getAttribute("sumList");
    EasybuyProduct ebp = null;
    //通过ID去查找购买商品的信息
    for(EasybuyProduct ebp1:list){
    if(ep_Id.equals(ebp1.getEpId()))
    {
    ebp=ebp1;
    }
    }
    //从购物车中得到所有装入的对象
    byGoods goods = (byGoods)cart.get(ebp.getEpId());
    //如果购物车中没有该商品,则将该商品放入购物车
    if(goods==null){
    cart.put(ebp.getEpId(),new byGoods(ebp,1));
    }else{
    //商品数量加一
    goods.setCount(goods.getCount()+1);
    cart.put(ebp.getEpId(), goods);
    }
    //将购车放入session
    request.getSession().setAttribute("cart", cart);
    }
    response.sendRedirect("shopping.jsp");
    out.flush();
    out.close();

    } public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    this.doPost(request, response);
    }
    }
      

  2.   

    位置换一下。out.flush();
    out.close();
    response.sendRedirect("shopping.jsp");
      

  3.   

    还了后又报这个错
    at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:435)
    at accp.web.Cart.doPost(Cart.java:62)
    at accp.web.Cart.doGet(Cart.java:67)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)
      

  4.   

    out.flush();
    out.close();
    把这两句去掉。
      

  5.   

    response.sendRedirect("shopping.jsp"); //后面两句不需要了 ,你都转发了,自然清空关闭了
    out.flush();
    out.close();