包含来自 Servlet 的私有 JSP
我的 Servlet 对所有“/” url 模式进行响应。在内部,我有时需要渲染 html,因此我想 .include 一个 JSP 页面,但我希望该 .jsp 无法从外部访问。另外,我如何将模型对象传递给它。
I have my Servlet responding on the everything "/" url-pattern. Inside I need to sometimes render html, so I'd like to .include a JSP page, but I'd like that .jsp to be inaccessible externally. Also, how can I pass a model object into it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
将其放在
/WEB-INF
文件夹中。客户端无法访问它,但RequestDispatcher
可以访问它。将其设置为请求属性。
另请参阅:
也就是说,请注意,在
/
上映射 servlet 会接管 servletcontainer 的内置DefaultServlet
的工作,以提供静态服务内容。您必须自己处理所有静态文件,例如 JS/CSS/图像。考虑为 JSP 视图选择更具体的url-pattern
,例如/pages/*
或*.do
。最终将Filter
放在前面,如 这个答案。Put it in
/WEB-INF
folder. The client cannot access it, but theRequestDispatcher
can access it.Set it as request attribute.
See also:
That said, be aware that mapping a servlet on
/
takes over the job of servletcontainer's builtinDefaultServlet
for serving static content. You'll have to handle all static files like JS/CSS/images yourself. Consider choosing a more specificurl-pattern
like/pages/*
or*.do
for JSP views. Bring eventually aFilter
in front as outlined in this answer.很简单:
getServletContext().getRequestDispatcher("/WEB-INF/path/your.jsp").forward(request, response);
It's easy:
getServletContext().getRequestDispatcher("/WEB-INF/path/your.jsp").forward(request, response);