包含Servlet中的私有JSP
我让我的Servlet响应所有“/”url-pattern。 在内部我需要有时候渲染html,所以我想。包含一个JSP页面,但我希望外部无法访问.jsp。 另外,我如何将模型对象传递给它。
我想。包含一个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.
也可以看看:
- Servlets标记信息页面 (包含Hello World示例和有用的链接)
- JSP / Servlet的隐藏function
- 设计模式基于Web的应用程序
也就是说,请注意将servlet映射到/
接管servletcontainer的内置DefaultServlet
以提供静态内容。 您必须自己处理所有静态文件,如JS / CSS /图像。 考虑为JSP视图选择更具体的url-pattern
如/pages/*
或*.do
。 如本答案所述,最终在前面带来一个Filter
。
这很简单:
- 将您的JSP文件放在WEB-INF文件夹中。
- 在你的servlet中,执行
getServletContext().getRequestDispatcher("/WEB-INF/path/your.jsp").forward(request, response);