我正在开发一个具有以下源代码目录结构的Java EE web应用程序:
src/main/java <-- multiple packages containing Java classes
src/test/java <-- multiple packages containing JUnit tests
src/main/resources <-- includes properties files for textual messages
src/main/webapp/resources <-- includes CSS, images and all Javascript files
src/main/webapp/WEB-INF
src/main/webapp/WEB-INF/tags
src/main/webapp/WEB-INF/views
我感兴趣的文件夹是WEB-INF
:它包含web.xml
、用于设置servlet的XML文件、Spring bean连接上下文以及JSP标记和视图。我正在尝试理解是什么约束/定义了这个结构。例如,JSP文件是否总是必须在WEB-INF
中,或者它们是否可以在其他地方?在WEB-INF
中还有其他可能的东西吗?维基百科的WAR files条目提到了用于Java类的classes
和用于JAR文件的lib
--我不确定除了其他源文件位置之外,什么时候还需要这些。
发布于 2013-11-05 18:04:57
您应该将不想公开的任何页面或页面片段放入WEB-INF中。通常,在WEB-INF之外可以找到JSP或facelets,但在这种情况下,任何用户都可以轻松地访问它们。如果您有一些授权限制,可以使用WEB-INF。
WEB-INF/lib可以包含您不想在系统级打包的第三方库(JAR可用于服务器上运行的所有应用程序),但仅适用于此特定应用程序。
一般来说,许多配置文件也会放入WEB-INF中。
至于WEB-INF/classes -它存在于任何web应用程序中,因为它是放置所有编译源代码的文件夹(不是JARS,而是您自己编写的编译.java文件)。
发布于 2016-11-17 06:49:31
出于安全原因,遵循此约定。例如,如果允许未经授权的人直接从URL访问根JSP文件,那么他们可以在整个应用程序中导航,而无需任何身份验证,并且他们可以访问所有受保护的数据。
发布于 2016-04-15 16:11:07
有一个约定(不是必须的)是将jsp页面放在WEB-INF目录下,这样它们就不能被深度链接或添加书签。这样,所有对jsp页面的请求都必须通过我们的应用程序进行定向,这样才能保证用户体验。
https://stackoverflow.com/questions/19786142
复制相似问题