java - Web 应用程序目录映射

标签 java jsp servlets filter mapping

我正在开发一个小型 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/

相关文章:

java - cmake 后没有在 build/bin 目录中创建 opencv jar 文件

java - 计算java中完成一个函数的平均时间

Java:在子类化中使用通用通配符

java - 使用 DAO/servlet 中的表单/参数过滤数据

java - Servlet 参数和 doPut

java - 如何使用 Jackson 解析可能是字符串也可能是数组的字段

java - 如何使用 document.ready 函数调用 servlet 类

java - 包 javax.servlet.http 不存在,但 servlet-api.jar 存在

Spring mvc Controller 处理所有请求,不应该那样做

javascript - 当 <c :url> and <c:param> value is injected into a JavaScript string literal 时存在 XSS 漏洞