Включить содержимое jsp в сервлет - PullRequest
7 голосов
/ 13 февраля 2011

У меня есть этот сервлет:

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

Есть ли проблема с этим (ответ уже зафиксирован?), Как я могу это сделать?

Ответы [ 2 ]

13 голосов
/ 13 февраля 2011
request.getRequestDispatcher("/WEB-INF/my.jsp").include(request, response);

Но вы не должны сервлет выводить HTML таким образом. Просто используйте jsp с <jsp:include /> или <%@ include file=".." %>

2 голосов
/ 30 октября 2013

ОГРОМНОЕ СПАСИБО, ВЫ ПОМОГИЛИ МНЕ окончательно оформить 2-летний проект. Благодарю. Фактически, чтобы перенаправить запрос tomcat с солнечного веб-сервера 7 на сервер приложений, поскольку jsps не отображается непосредственно в tomcat, метод заключается в использовании сквозного доступа в app.config и разрешении tomcat обрабатывать запросы.

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


            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...