包含Servlet中的私有JSP

时间:2010-11-19 20:19:48

标签: java jsp servlets

我让我的Servlet响应所有“/”url-pattern。在内部我需要有时渲染html,所以我想。包含一个JSP页面,但我希望外部无法访问.jsp。另外,我如何将模型对象传递给它。

2 个答案:

答案 0 :(得分:14)

  

我想。包含一个JSP页面,但我希望外部无法访问.jsp。

将其放入/WEB-INF文件夹。客户端无法访问它,但RequestDispatcher可以访问它。

request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response);

  

另外,我如何将模型对象传递给它。

将其设置为请求属性。

request.setAttribute("bean", bean); // It'll be available as ${bean} in JSP.

另见:


也就是说,请注意,在/上映射servlet会接管servletcontainer内置DefaultServlet的工作以提供静态内容。您必须自己处理所有静态文件,如JS / CSS /图像。考虑为JSP视图选择更具体的url-pattern /pages/**.do。如this answer中所述,最终在前面Filter

答案 1 :(得分:2)

很简单:

  1. JSP 文件放在 WEB-INF 文件夹中。
  2. 在您的servlet中,执行getServletContext().getRequestDispatcher("/WEB-INF/path/your.jsp").forward(request, response);