我有一个关于 Java 中的 MVC Web 应用程序的非常基本的问题。
从原始 JSP 的早期直到像 Seam 这样的当前技术,一个非常基本的模式一直是从最初接受请求的控制器到视图层的内部调度,该视图层创建要发送到客户端的输出。
这种内部调度通常是通过使用 URL 向 servlet 容器请求新资源来完成的(尽管该机制可能通过额外的配置层隐藏)。这些 URL 的映射由相同的 web.xml 完成,该 web.xml 还定义了到外部的“真实”URL。
除非采取特殊措施,否则通常可以直接访问视图层。见证Seam“注册”演示,您可以在其中绕过“register.seam”并直接转到“registered.xhtml”。这是一个潜在的安全问题。至少,它泄露了视图模板源代码。
我知道这只是一个基本的示例应用程序,但也很奇怪,需要采取任何额外的措施来声明这些内部资源对外部不可见。
限制 URL 入口点的最简单方法是什么?
是否可能有类似“WEB-INF”目录的东西,一个只能由内部请求访问的神奇 URL 路径组件?