My code:
public class MessageCenterLoginServlet extends HttpServlet {
/**
* @see javax.servlet.http.HttpServlet#void
(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String username = req.getParameter("username");
if (username == null || username == "") {
req.setAttribute("errorMessage", "User name not specified");
RequestDispatcher disp =
getServletContext().getRequestDispatcher("/login.jsp");
disp.forward(req, resp);
}
//Otherwise proceed to looking for the User object
User user = User.getUser(username);
if (user == null) {
System.out.println("No such user found");
req.setAttribute("errorMessage", "User not found");
RequestDispatcher disp =
getServletContext().getRequestDispatcher("/login.jsp");
disp.forward(req, resp);
}
HttpSession session = req.getSession(true);
session.setAttribute("user", user);
RequestDispatcher disp =
getServletContext().getRequestDispatcher("/messageCenter.jsp");
disp.forward(req, resp);
}
}
}
**************
Problem:
when I execute above programme, if I enter wrong data or null data:
It generates:
[
Servlet Error]-[MessageCenterLoginServlet]: java.lang.IllegalStateException: Cannot forward. Response already committed. (Servlet 2.3, SRV 8.4)
**************
I believe if it is going in 1 loop and execute forward(), it should pass control to
jsp page and should not execute further. But it continues and execute remaining statements too.
can anyone tell me where is the catch?
Here, if i chance code following, it works:
public class MessageCenterLoginServlet extends HttpServlet {
/**
* @see javax.servlet.http.HttpServlet#void
(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String username = req.getParameter("username");
if (username == null || username == "") {
req.setAttribute("errorMessage", "User name not specified");
RequestDispatcher disp =
getServletContext().getRequestDispatcher("/login.jsp");
disp.forward(req, resp);
}
//Otherwise proceed to looking for the User object
User user = User.getUser(username);
if (user == null) {
System.out.println("No such user found");
req.setAttribute("errorMessage", "User not found");
RequestDispatcher disp =
getServletContext().getRequestDispatcher("/login.jsp");
disp.forward(req, resp);
}
HttpSession session = req.getSession(true);
session.setAttribute("user", user);
RequestDispatcher disp =
getServletContext().getRequestDispatcher("/messageCenter.jsp");
disp.forward(req, resp);
}
}
}
[ June 09, 2006: Message edited by: Tiger Dipu ]