栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

为什么将.jsp 文件放在WEB-INF 目录中?

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么将.jsp 文件放在WEB-INF 目录中?

问题:

以 Maven 为例,当启动一个新的 web 项目时,结构与此相同/相似:

Meu Projeto
    |- src
        |- main
            |- java
            |- resources
            |- webapp
                 |- WEB-INF

其中,在“webapp”目录中,放置了web应用程序使用的文件:html、css、Javascript、JSPs等。

我的问题是关于 WEB-INF 目录,有几个项目使用这个目录来放置扩展名为 .jsp 的文件,而不是直接将它们放在“webapp”中。一个例子是 Caelum 的Mammoth,他们为此创建了一个名为“jsps”的目录。

根据我的阅读,WEB-INF 中包含的文件不能被客户端直接访问,因为它们不是公共的,但它们可以被 servlet 访问:

名为 WEB-INF 的应用程序层次结构中存在一个特殊目录。此目录包含与应用程序相关但不在应用程序根文档中的所有内容。WEB-INF 节点不是应用程序公共文档树的一部分。在 WEB-INF 目录中包含的文件可以由容器直接提供给客户端。但是,WEB-INF 目录的内容对 servlet 代码使用getResource和getResourceAsStream方法调用是可见的ServletContext,并且可以使用RequestDispatcher调用公开。

那么仅仅是为了安全吗?获取文件的唯一方法是通过 servlet 进行处理。

回答:

9.10 隐藏我们的页面 – https://www.caelum.com.br/apostila-java-web/mvc-model-view-controller/

如果页面位于 /webapp 中,用户将可以直接访问它们。如果只是静态页面,我看不出有什么问题。但是有些页面在显示之前需要逻辑,如果用户直接访问jsp页面将无法正确显示,也不会经过控制器。

“因此,我们不能让用户直接访问我们的页面。为了使这种直接访问变得不可能,我们将把我们的页面放在 WEB-INF/ 目录中”

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/884757.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号