jsp的文件夹结构?

use*_*880 5 java jsp maven

我最近开始使用J2EE的核心从头开始开发自己的项目:Servlets & Jsps.

我无法评估我的项目文件夹结构是否正确.这是我的项目文件夹结构.在此输入图像描述

问题是:把我的jsps放在外面是一个好兆头web-inf.如果没有,为什么会这样呢?如果是,为什么?

J2EE Web应用程序是否有任何标准文件夹结构约定,我知道maven提出了一些标准,但我们仍然可以根据我认为的要求进行自定义.

在为J2EE Web应用程序布置文件夹结构时需要考虑哪些要点,重要的是Jsps,静态内容应该放在哪里?为什么?

3bu*_*bu1 5

我所能做的只是告诉你具体想法的利弊.以下是100%我的意见.我不知道任何具体的要求或规则.我相信有人会不同意我的看法.

JSP的

让我们研究是否将JSP放在WEB-INF中.

将JSP放入WEB-INF的优点:

  • 您可以控制JSP的执行方式.如果你想要一个JSP参数化和可重用(这对JSP来说真的很难),你可以将它们放入WEB-INF并使用servlet或Struts动作控制器或其他一些前端控制器来进行预处理然后将控制传递给JSP,传入正确的环境上下文(如请求属性,任何安全检查,参数卫生等)

  • 您可以通过编程方式或甚至在防火墙或IDS级别阻止
    对*.jsp的HTTP请求,以减少某人将JSP上载到Web根目录然后能够作为Web服务器执行代码的可能性.他们必须覆盖现有的JSP.不是一个巨大的
    安全性收益,但它确实使妥协稍微更难.

  • 执行良好的习惯,如MVC,前端控制器,servlet过滤器,
    依赖注入等,而不是一个庞大的怪物JSP,
    它自己完成所有工作并且难以阅读/维护.

把JSP放在WEB-INF中的缺点:

  • 您无法直接访问该页面,即使它是一个不需要预先处理的简单独立页面.这是因为/ WEB-INF下的文件不能由servlet容器提供.

静态文件 就HTML,图像,样式表,javascript等纯静态文件而言,将这些文件置于Web根目录下(my_app在您的情况下),但不是/ WEB-INF(因为它不可访问).

总体布局

至于整个目录布局,它在某种程度上取决于您的构建过程.我喜欢将所有内容存储在"src"或"source"下,因为它清楚地表明了构建时生成了哪些文件以及哪些是纯源文件.main允许您将主要源代码中的junit类等测试代码分开,这也很好.但如果你没有任何单元测试(哦不!),那么这是一个毫无意义的区别.

另一方面,如果您在构建期间根本不操作Web根目录(例如,如果它是所有JSP和静态文件),那么也许您将它保留在顶层,例如/ webroot或/ deploy并将文件复制为需要的,例如.class或.jar文件.过度组织是人类(尤其是开发者)的习惯.过度组织的一个好兆头是拥有大量只有一个子文件夹的文件夹.

你所看到的

您已经表明您正在遵循maven设置的约定,因此如果您已经在使用maven,请坚持使用该布局.您描述的布局绝对没有问题.