How to get the action from the HttpServlet request to dispatch to multiple pages

Posted by JFB on Stack Overflow See other posts from Stack Overflow or by JFB
Published on 2012-06-29T02:41:04Z Indexed on 2012/06/30 3:16 UTC
Read the original article Hit count: 207

Filed under:
|
|
|

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);
}
    }

© Stack Overflow or respective owner

Related posts about jsp

Related posts about java-ee