Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jsp'的文件夹结构;s_Java_Jsp_Maven - Fatal编程技术网

Java jsp'的文件夹结构;s

Java jsp'的文件夹结构;s,java,jsp,maven,Java,Jsp,Maven,我最近开始使用J2EE的核心从头开始开发我自己的项目:Servlets&jsp 我无法评估我的项目文件夹结构是否正确。这是我的项目文件夹结构 问题是:将我的JSP置于web inf之外是否是一个好迹象。若否,原因为何?如果是,为什么 J2EE web应用程序是否有标准的文件夹结构约定,我知道maven提出了一些标准,但我们仍然可以根据我相信的需求进行定制 在为J2EE web应用程序设计文件夹结构时,需要考虑哪些要点,重要的是JSP、静态内容应该放在哪里?为什么?对于web-INF 如果将JS

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

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

问题是:将我的JSP置于
web inf
之外是否是一个好迹象。若否,原因为何?如果是,为什么

J2EE web应用程序是否有标准的文件夹结构约定,我知道maven提出了一些标准,但我们仍然可以根据我相信的需求进行定制


在为J2EE web应用程序设计文件夹结构时,需要考虑哪些要点,重要的是JSP、静态内容应该放在哪里?为什么?

对于
web-INF

  • 如果将JSP放入
    WEB-INF
    中,则无法直接访问它们。i、 e.按绝对网址
  • 在外部,
    WEB-INF
    您可以直接访问它们

    • 我所能做的就是告诉你具体想法的利弊。下面是我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的缺点:

      • 您无法直接访问该页面,即使它是一个简单的页面 不需要预先处理的独立页面。这是因为 servlet容器无法服务/WEB-INF下的文件
      静态文件 对于纯静态文件,如HTML、图像、样式表、javascript等,请将它们放在web根目录下(在您的例子中是my_应用程序),而不是/web-INF(因为它不可访问)

      总体布局

      至于整个目录布局,它在某种程度上取决于您的构建过程。我喜欢将所有内容存储在“src”或“source”下,因为它可以清楚地显示哪些文件是由构建生成的,哪些是纯源文件。main允许您将测试代码(如junit类)从主源代码中分离出来,这也很好。但是如果您没有任何单元测试(哦,没有!),那么这是一个毫无意义的区别

      另一方面,如果在构建过程中根本不操纵web根目录(比如所有JSP和静态文件),那么您可能会将其保持在顶层,比如/webroot或/deploy,并根据需要复制文件,比如.class或.jar文件。过度组织是人类(尤其是开发人员)的习惯。过度组织的一个好迹象是有很多文件夹,只有一个子文件夹

      您所展示的内容


      您已经指出您正在遵循maven设置的约定,因此,如果您已经在使用maven,请继续使用该布局。您描述的布局绝对没有问题。

      这通常被认为是不好的做法,因为这样您可能会允许用户直接调用它们(恐怖)。将它们放在
      WEB-INF/
      下会迫使您的
      控制器为它们提供服务。可能重复的
      WEB-INF
      目录应实际命名为
      WEB-INF