【问题标题】:Include the content of a jsp in a servlet在 servlet 中包含 jsp 的内容
【发布时间】:2011-06-26 11:51:46
【问题描述】:

我有这个 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();
        }
    }
}

这样做有问题吗(响应已经提交?),我该怎么做?

【问题讨论】:

    标签: java jsp servlets include


    【解决方案1】:
    request.getRequestDispatcher("/WEB-INF/my.jsp").include(request, response);
    

    但是您不应该使用 servlet 来输出这样的 html。只需使用 jsp,使用 &lt;jsp:include /&gt;&lt;%@ include file=".." %&gt;

    【讨论】:

    • 嗨 Bozho,我们可以使用 request.getRequestDispatcher().include() 和参数集(不是属性)吗?当我们使用 时,我们可以设置参数。可能吗?感谢您的帮助。
    【解决方案2】:

    感谢 ozho,您帮助我完成了 2 岁的待定项目的最终成型。谢谢。 实际上是将tomcat的请求从sun web server 7重定向到应用服务器,由于jsps没有直接显示在tomcat中,技术是在app.config中使用passthrough,让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);
                    }
    
    
                }
    

    【讨论】:

      猜你喜欢
      • 2016-04-15
      • 1970-01-01
      • 2012-11-09
      • 2014-09-04
      • 2010-09-15
      • 2014-03-25
      • 1970-01-01
      • 1970-01-01
      • 2015-11-07
      相关资源
      最近更新 更多