2011-02-13 63 views
6

内容我有这个servlet:包括一个jsp的一个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(); 
     } 
    } 
} 

有没有做这件事(响应已承诺?)有问题,我该怎么办呢?

回答

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

但是,你不应该像这样输出html的servlet。只需使用jsp,即可使用<jsp:include /><%@ include file=".." %>

+0

很好谢谢。 – BenoitParis 2011-02-13 16:48:00

2

感谢ozho,您已帮助我为2年的待定项目提供最终形状。谢谢。 实际上,要将tomcat的请求从sun web服务器7重定向到应用程序服务器,由于jsp不直接在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); 
       } 


      }