美文网首页
再遇javaweb

再遇javaweb

作者: dounine | 来源:发表于2020-01-20 09:18 被阅读0次

    0. 前言

    从最初的servletTomcat,到笨重的ofbiz框架,再跳至spring boot,现在又邂逅了jfinal(国内框架,迫于项目要求)。

    javaweb的开发之路上,遇见了诸多框架,虽然都有些浅尝辄止,但也想对javaweb中的项目结构进行自我的总结归纳。

    其缘由呢,是因为此次碰见的jfinal框架,它支持 热加载(内置服务器) 和 依托Tomcat 两种运行方式。同时,我们可以规范成 传统 javaweb 标准项目结构maven 标准项目结构

    接下来主要讨论这两种标准项目结构。

    1. 传统 javaweb 标准项目结构

    传统的javaweb项目都需要运行在Tomcat上,以SSH项目为代表:

    image

    相对重要的目录结构(从项目根目录开始)总结如下:

    • src\: 源代码目录

    • resources\(或 res\): 配置文件的目录,包含config.properties等配置文件。同src\目录一样,需要被标记成Sources目录,如在IDEA中:

      image
    • WebRoot\(或 WebContent\): 用于最终web应用的发布目录,包含静态文件、编译后的.class文件、依赖的jar包等

      • static\: css, js等静态文件目录

      • WEB-INF\: web应用信息目录

        • views\: html, jsp等页面文件目录

        • classes\: 项目源码编译后.class文件存放的目录

        • lib\: 项目依赖jar包存放的目录

        • web.xml: web应用在容器中注册和部署的描述文件

    具体项目的结构如下:

    image

    2. maven 标准项目结构

    2.1. 运行Tomcat上

    Spring MVC maven项目为代表:

    image

    相对重要目录结构总结如下:

    • src\: 源代码目录

      • main\: 应用代码目录

        • java\: java代码目录

        • resources\: 项目配置文件目录

        • webapp\: 相当于WebRoot\目录

          • static\: css, js等静态文件目录

          • WEB-INF\: web应用信息目录,但不同于非maven项目,其没有classes\lib\目录

            • views\: html, jsp等页面文件目录

            • web.xml: web应用在容器中注册和部署的描述文件

      • test\: 测试代码目录

    • target\: 编译后的目录

    • pom.xml: Maven工程的配置文件

    2.2. 热加载

    Spring Boot为代表,具体项目目录结构如下:

    image

    不同于运行在Tomcat上的maven项目

    • 其不需要webapp\目录,因为热加载不需要Tomcat容器;

    • 静态文件放在resources\目录下

    3. 总结

    传统javaweb项目与maven项目的目录结构相差较大,但源代码中的dao, controller, service, bean层分布是不变的。

    运行于Tomcat容器的项目,一般都需要WebRoot\(传统javaweb)或webapp\(maven)目录;而热加载项目(自带容器),则不需要。

    参考博客:https://www.csdn.net/gather_2a/NtTakgwsNDYwLWJsb2cO0O0O.html

    相关文章

      网友评论

          本文标题:再遇javaweb

          本文链接:https://www.haomeiwen.com/subject/krxjzctx.html