jsp的文件夹结构?

时间:2014-01-03 04:00:13

标签: java jsp maven

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

我无法评估我的项目文件夹结构是否正确。这是我的项目文件夹结构。 enter image description here

问题:将我的jsps置于web-inf之外是一个好兆头。如果没有,为什么会这样呢?如果是,为什么?

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

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

2 个答案:

答案 0 :(得分:5)

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

<强> JSP的

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

将JSP放入WEB-INF的优点:

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

  • 您可以通过编程方式,甚至可以在防火墙或IDS级别块进行扫描 HTTP请求* .jsp以减少某人上传的可能性 一个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 and copy根据需要输入文件,例如.class或.jar文件。过度组织是人类(尤其是开发者)的习惯。过度组织的一个好兆头就是拥有大量只有一个子文件夹的文件夹。

您所看到的

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

答案 1 :(得分:0)

如果是WEB-INF

  • 如果您将JSP放在WEB-INF中,那么您将无法直接访问它们。即绝对网址
  • 在外面,WEB-INF您可以直接访问它们