How to solve "java.lang.IllegalStateException: Cannot forward after response has been committed" error
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | package simple; import java.io.IOException; import java.util.Date; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class SimpleController extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { super.doGet(request, response); processRequest(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { super.doPost(request, response); processRequest(request, response); } private void processRequest(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{ String type = request.getParameter("type"); Object resultObject = null; if(type == null || type.equals("greeting")) { resultObject = "안녕하세요 "; } else if(type.equals("date")) { resultObject = new Date(); } else { resultObject = "Invalid Type"; } request.setAttribute("result", resultObject); RequestDispatcher dispatcher = request.getRequestDispatcher("/chap18/simpleView.jsp"); dispatcher.forward(request, response); } } | cs |
When I run above controller, I met "java.lang.IllegalStateException: Cannot forward after response has been committed" error.
This is because The super.doGet(request, response);
and super.doPost(request, response);
calls.
I solve this error by erasing super.doGet(request, response);
and super.doPost(request, response);
0 댓글