我正在开发一个小型 Web 应用程序,其中包含一些 JSP、Servlet 和静态 HTML 页面。还有一些过滤器来实现小型认证/授权机制。我的问题是:
如何将 JSP 的整个目录映射到另一个目录?下面是一个示例:我想将
localhost:8080/WebAppName/pages/*.jsp
等所有 URL 映射到localhost:8080/WebAppName/*.jsp
。如何在不在 web.xml 中为“pages”目录中的每个 JSP 页面编写条目的情况下实现这一点?将这些 URL 映射到新 URL 后,我必须在 web.xml 的标签中写入什么内容?映射的 URL (
WebAppName/*.jsp
) 还是真实的 URL (WebAppName/pages/*.jsp
)?
提前致谢。
最佳答案
您可以制作一个具有映射 *.xhtml
(其他扩展名)的 servlet(或 JSP)。使用请求 URI,它可以从 pages
动态包含相应的 JSP。
在 servlet 中:
String pagesPath = "pages/" + ...;
request.getServletContext(pagesPath).getRequestDispatcher().include(request,
response);
我怀疑这是一个好主意,因为它没有添加任何东西:您甚至可能需要调整所有 JSP(其他扩展)。或者将 JSP 重命名为 .jspf
。
一般我在WEB-INF/jsp左右使用JSP;因此它们不可公开访问。并使用类似的技术:在 servlet 中创建模型,然后将 View 作为 JSP。
关于java - Web 应用程序目录映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20704104/