代码之家  ›  专栏  ›  技术社区  ›  Hafthor

包括来自Servlet的私有JSP

  •  8
  • Hafthor  · 技术社区  · 14 年前

    我的Servlet对everything“/”url模式做出响应。在内部,我有时需要呈现html,所以我想。包括一个JSP页面,但我希望.JSP在外部是不可访问的。另外,我如何将模型对象传递给它。

    2 回复  |  直到 14 年前
        1
  •  14
  •   Community George Mulligan    7 年前

    我想包含一个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/images。考虑选择一个更具体的 url-pattern 喜欢 /pages/* *.do 对于JSP视图。最终带来 Filter 前面如中所述 this answer .

        2
  •  2
  •   Pablo Santa Cruz    14 年前

    很简单:

    1. 把你的 JSP公司 文件在里面 WEB-INF 文件夹。
    2. 在servlet中,执行 getServletContext().getRequestDispatcher("/WEB-INF/path/your.jsp").forward(request, response);