How to get the action from the HttpServlet request to dispatch to multiple pages
- by JFB
I am using the Page Controller pattern. How could I use the same controller for two different pages by detecting the request action and then dispatching according to the result?
Here is my code:
account.jsp
<form name="input" action="<%=request.getContextPath() %>/edit" method="get">
<input type="submit" value="Modifier" />
</form>
Account Servlet
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("received HTTP GET");
String action = request.getParameter("action");
if (action == null)
{
// the account page
dispatch(request, response, "/account");
}
else if (action == "/edit") {
// the popup edit page
dispatch(request, response, "/edit");
}
protected void dispatch(HttpServletRequest request,
HttpServletResponse response, String page)
throws javax.servlet.ServletException, java.io.IOException {
RequestDispatcher dispatcher = getServletContext()
.getRequestDispatcher(page);
dispatcher.forward(request, response);
}
}