Java Web应用程序的结构?

时间:2013-11-27 08:47:20

标签: java eclipse spring svn web-applications

很抱歉问这个简单的问题。我搜索了很多,但找不到我想要的可靠答案。这就是我创造这个问题的原因。

我们用Java完成了两个spring项目。

我们创建的每个项目在WebContent中都有不同的文件夹结构,用于模块分离。

现在我们将使用带有SVN的eclipse启动一个新项目,该项目有三个模块。

项目一的WebContent文件夹结构

WebContent

    - moduleOne
        - conf
            - moduleOne.conf
        - css
            - moduleOne.css
        - js
            - moduleOne.js
        - jsp
            - moduleOne.jsp
        - images
            - moduleOne.png

    - moduleTwo
        - conf
            - moduleTwo.conf
        - css
            - moduleTwo.css
        - js
            - moduleTwo.js
        - jsp
            - moduleTwo.jsp
        - images
            - moduleTwo.png

    - META-INF

    - WEB-INF
        - lib
        - web.xml

项目一的WebContent文件夹结构是

WebContent

    - conf
        - moduleOne
            - moduleOne.conf
        - moduleTwo
            - moduleTwo.conf

    - css
        - moduleOne
            - moduleOne.css
        - moduleTwo
            - moduleTwo.css

    - images        
        - moduleOne
            - moduleOne.png
        - moduleTwo
            - moduleTwo.png

    - js
        - moduleOne
            - moduleOne.js
        - moduleTwo
            - moduleTwo.js

    - jsp       
        - moduleOne
            - moduleOne.jsp
        - moduleTwo
            - moduleTwo.jsp



    - META-INF

    - WEB-INF
        - lib
        - web.xml

现在我们处于选择创建文件夹结构的首选方式的情况。

也应该是:

  1. 可轻松自定义。

  2. 如果出现任何新要求,可以轻松修改单独的模块。

  3. 任何新的想法或方法以及所有答案也将不胜感激。

1 个答案:

答案 0 :(得分:1)

我喜欢将静态网络资源保存在“资源”下。目录以及WEB-INF下的所有视图和配置。这确保了我可以启用自由访问权限和缓存资源'。此外,这确保了.jsp文件不能通过URL直接访问(除非你搞砸了你的配置!)。除此之外,您的上述第一个解决方案是可靠的。特别是,因为根据相关模块的路径应用模块级安全性和其他配置变得更加容易。

因此,作为对解决方案1的调整,我建议如下:

- resources
    - moduleOne
        - css
            - moduleOne.css
        - js
            - moduleOne.js
        - images
            - moduleOne.png
    - moduleTwo
        - css
            - moduleTwo.css
        - js
            - moduleTwo.js
        - images
            - moduleTwo.png
- META-INF
- WEB-INF
    - modules
        - moduleOne
            - conf
                - moduleOne.conf
            - views
                - moduleOneViewOne.jsp
        - moduleTwo
            - conf
                - moduleTwo.conf
            - views
                - moduleTwoViewOne.jsp
    - lib
    - web.xml