Include the content of a jsp in a servlet

25,482

Solution 1

request.getRequestDispatcher("/WEB-INF/my.jsp").include(request, response);

But you should not a servlet for outputting html like that. Just use a jsp, with either <jsp:include /> or <%@ include file=".." %>

Solution 2

THANKS ozho , YOU HAVE HELPED ME TO give final shape to 2 year old pending project. Thanks. Actually to redirect the request of tomcat from sun web server 7 to application server, since the jsps are not shown in tomcat directly, technique is to use a passthrough in app.config and let the tomcat handle the requests.

            import java.io.IOException;

            import javax.servlet.RequestDispatcher;
            import javax.servlet.ServletContext;
            import javax.servlet.ServletException;
            import javax.servlet.http.HttpServlet;
            import javax.servlet.http.HttpServletRequest;
            import javax.servlet.http.HttpServletResponse;

            /**
             * Servlet implementation class MY... Parvez Ahmad Hakim
             */
            public class MY extends HttpServlet {
                private static final long serialVersionUID = 1L;

                /**
                 * @see HttpServlet#HttpServlet()
                 */
                public MY() {
                super();
                // TODO Auto-generated constructor stub
                }

                /**
                 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
                 */
                protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    


                    String pageName =request.getParameter("req");       
                    if(pageName==null){ 
                        pageName="IC_LIC_Login.jsp";// default page
                    }
                    request.getRequestDispatcher(pageName).include(request, response);



                }

                /**
                 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
                 */

                protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {      
                    String pageName =request.getParameter("req");       

                    request.getRequestDispatcher(pageName).include(request, response);
                }


            }
Share:
25,482
BenoitParis
Author by

BenoitParis

Updated on July 09, 2022

Comments

  • BenoitParis
    BenoitParis almost 2 years

    I have this servlet:

    public class SaveImage extends HttpServlet {
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            PrintWriter out = null;
            try {
                out = response.getWriter();
                out.println("<html>");
                ...
    
                // I want to include here the content of this jsp:
                // /WEB-INF/mybox.jsp
                // (also, with the full context of the servlet)
    
                ...
                out.println("</html>");
                out.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    

    Is there a problem doing it (response already committed?), how can I do this?

  • Sam YC
    Sam YC about 11 years
    Hi Bozho, are we able to use request.getRequestDispatcher().include() with parameter set (not attribute)? Something like when we are using <jsp:include /> we can set the parameter. Is it possible? Thanks for help.