javaweb项目的文件结构

1、前言

  最近使用Intellij idea搭建一个springmvc的web项目时,突然发现,自己好像对web项目的文件结构不是很清晰,对于项目中应该有那些文件夹、文件夹里面又是怎么的文件、他们的作用又是什么?这些好像有点似懂非懂,所以索性就好好研究一下javaweb项目的文件结构是怎样的,如何用Intellij idea搭建一个基于spirngmvc框架的javaweb项目,又是如何部署到tomcat服务器中?

2、tomcat项目结构

  我想要研究清楚javaweb项目的文件结构,首先得要知道部署到tomcat服务器中的项目结构是怎样的,因为我们的javaweb项目最终是要部署到tomcat服务器的,我们最终要将我们自己所编写的javaweb项目打包成tomcat项目结构的形式,所以了解tomcat中的项目结构是必然的。
  我们可以先看看一个项目名为SpringMvcSource的web项目部署到tomcat服务器上的文件结构。
在这里插入图片描述
  由上图可知,tomcat上部署的项目的文件结构可以简单分为如下几个部分:

  1. 静态资源:css/、html/、images/、js/,这些是javaweb中的静态资源,可以通过它的地址直接进行访问。如:http://localhost:8080/SpringMvcSource/css/test.css就可以直接访问其中的资源。
  2. META-INF:相当于一个信息包,目录中的文件和目录获得Java2平台的认可与解释,用来配置应用程序、扩展程序、类加载器和服务manifest.mf文件,在用jar打包时自动生成。这个文件对于我们开发没啥关系,所以可以忽略。
  3. WEB-INF:这个目录是tomcat项目最重要的文件目录,我们所编写的后台java代码都是保存在这个文件夹中,它里面包含了classes文件夹、lib文件夹、web.xml,他里面的文件不能像静态资源中的文件可以直接通过地址访问。
    在这里插入图片描述
      web.xml文件是javaweb项目启动时需要读取的文件,所以这个文件里面配置了一些web项目启动时需要加载的一些属性和值,就比如欢迎页的配置、springmvc中的前端控制器DispatcherServlet的配置都在这个文件里面。classes文件夹就是自己编写的后端java代码的class文件。lib是引入的jar文件,归根结底也就是class文件。
      以上就是在tomcat服务器上部署的一个项目的文件结构,我们编写一个javaweb的项目,最终所打包的项目结构就应该是和以上的文件结构一样。

3、javaweb项目结构

  java项目结构其实和tomcat的项目结构类似,但也会有所区别,因为我们通过Intellij idea去创建一个javaweb项目后,最终要进行编译和部署到tomcat服务器上,所以为了方便我们对于源代码的编写,编译器会给予不同的项目结构来进行代码的编写,但总体上和tomcat的项目类似。

在这里插入图片描述

  上图就是通过Intellij idea创建的一个javaweb的项目结构,可以看出由如下几部分组成:

  1. 源代码:
    包括src/main/java/和src/main/resources/,这两个文件夹最终通过编译部署后会放在omcat部署项目中的WEB-INF/classes文件夹下。一般情况src/main/java/下存放的是java代码,编译后变成class字节码文件存储在WEB-INF/classes文件下面,而src/main/resources/下一般情况是存放一些配置文件,也就是java代码中可能需要读取的文件,基本上就放在这个文件加下,他们在java中的引用路径都是"classpath:****",最终部署后都是放在WEB-INF/classes。
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210513183734269.pn
  2. web文件夹:
    就是存放javaweb项目的静态资源和web.xml的位置。在web文件夹下的css、images、js、WEB-INF部署后都会直接放在项目的子目录中,而WEB-INF目录会将源代码中的文件也加进来,这要就结合成了一个tomcat的部署项目。
    在这里插入图片描述
  3. pom.xml:
    因为这是一个maven项目,所以需要通过pom.xml来管理依赖的架包,也就是jar文件,通过这个文件来下载需要引入的架包,最终部署的时候将这些架包放在了WEB-INF/lib目录下。
    在这里插入图片描述

4、建立javaweb项目

   我们使用Intellij idea创建一个javaweb项目,是用maven最为依赖管理工具。
   1、首先创建一个maven项目。
在这里插入图片描述
   新建的一个基于maven依赖管理工具的项目中就有了src/main/java/*和surc/main/resources/*存储源代码的目录,并且也有了pom.xml,也就是离成为javaweb项目,还差一个web文件,那对于intellij idea我们如何去生成这个web文件呢?下面我们来讨论一下。
   2、生成web文件。
   如果我们我们直接在项目TestMVC目录下生成一个web文件夹,然后再在该文件夹下去创建js、html、WEB-INF文件夹,这样是不是就可以达到目的了呢,其实这中方式是不可取的,因为我们需要使用Intellij idea来编译这个项目并且部署,那开发环境并不知道你生成的这个文件夹就是我们所需要的那个web文件夹,所以我们需要使用Intellij idea自动生成这个文件夹,这样该开发环境就知道这个web文件夹就是我们javaweb文件目录下所需要的web文件夹了。
   具体步骤:

  1. 点击File->Project Structure,点击Moudles,点击加号新建一个web模块在这里插入图片描述
    在这里插入图片描述
  2.    最后点击Apply。在项目路径中就会出现web目录,该目录就是该开发环境可以识别的一个文件夹,我们可以看到该web文件夹上有一个蓝点,和普通的文件夹就会有所区别。这样我们创建了一个javaweb的目录结构。
    在这里插入图片描述
       最终对于项目的部署这里就不细说了,我们只要知道了一个javaweb项目的文件结构,并且知道部署到tomcat后的目录结构的转化就基本对一个javaweb项目有了解了,如果想了解在Intellij idea中如何去对javaweb项目进行部署,可以在网上找一下,资料还挺多的,这里就省略了。
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐