在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(""); ... // I want to include here the content of this jsp: // /WEB-INF/mybox.jsp // (also, with the full context of the servlet) ... out.println(""); out.close(); } catch (IOException e) { e.printStackTrace(); } } } 

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

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

但你不应该像这样输出html的servlet。 只需使用带有<%@ include file=".." %>

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