JavaWeb项目基础知识

目录

一、Web与tomcat的关系

二、tomcat项目结构

2.1 web项目部署到tomcat服务器上的文件结构

2.2 tomcat上部署的项目的文件结构详解:

1. 静态资源:

2. META-INF:

3. WEB-INF:

三、javaweb项目结构

3.1 javaweb项目结构

3.2 javaweb项目结构详解:

1. 源代码

3.2 web文件夹

3.3 pom.xml

四、建立javaweb项目 

   1、创建maven项目。

​编辑

   2、生成web文件。

五、 tomcat的webapps文件夹没有项目文件

1、Output directory

2、Output Layout

3、添加Available Elements元素       


一、Web与tomcat的关系

        开发web项目,将web项目放到tomcat里面指的的位置,运行tomcat,其他计算机里面可以通过浏览器来访问web项目。

        浏览器访问tomcat时,tomcat会按照浏览器发送的请求内容,把浏览器想访问的页面从web项目中找到并返回,或者调用web项目所写的某些java类中的方法(其实就调用servlet中的方法)

二、tomcat项目结构

2.1 web项目部署到tomcat服务器上的文件结构

        javaweb项目最终是要部署到tomcat服务器的,将编写的javaweb项目打包成tomcat项目结构的形式才能运行。
       以下为项目名为SpringMvcSource的web项目部署到tomcat服务器上的文件结构。

2.2 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,他里面的文件不能像静态资源中的文件可以直接通过地址访问。
 

       3.1 web.xml文件是javaweb项目启动时需要读取的文件,配置web项目启动时需要加载的一些属性和值,就比如欢迎页的配置、springmvc中的前端控制器DispatcherServlet的配置都在这个文件里面。

        3.2 classes文件夹就是自己编写的后端java代码的class文件。

        3.3 lib是引入的jar文件,归根结底也就是class文件。
      以上就是在tomcat服务器上部署的一个项目的文件结构,编写javaweb的项目,最终所打包的项目结构就应该是和以上的文件结构一样。 

三、javaweb项目结构

3.1 javaweb项目结构

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

3.2 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


 

3.2 web文件夹


        存放javaweb项目的静态资源和web.xml的位置。在web文件夹下的css、images、js、WEB-INF部署后都会直接放在项目的子目录中,而WEB-INF目录会将源代码中的文件也加进来,结合成了一个tomcat的部署项目。 

3.3 pom.xml

因为这是一个maven项目,所以需要通过pom.xml来管理依赖的架包,也就是jar文件,通过这个文件来下载需要引入的架包,最终部署的时候将这些架包放在了WEB-INF/lib目录下。

四、建立javaweb项目 

   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文件夹了。
   具体步骤:点击File->Project Structure,点击Moudles,点击加号新建一个web模块

   最后点击Apply。在项目路径中就会出现web目录,该目录就是该开发环境可以识别的一个文件夹,我们可以看到该web文件夹上有一个蓝点,和普通的文件夹就会有所区别。这样我们创建了一个javaweb的目录结构。 


 原文链接:https://blog.csdn.net/nianqingren_/article/details/116756747

五、 tomcat的webapps文件夹没有项目文件

 配置artifacts的war explode时

1、Output directory

填写本地tomcat的webapps的路径+工程名(工程名这个可以随便写,不过访问时这个URL是项目的根目录的一部分,比如我这么写访问时应该是localhost:8080/webbasic/index.html)

2、Output Layout

真正生成到上面Output directory所配置的目录下的所有文件内容,需要包含classes,lib,web 。刚开始不配置可以看到Output Layout下啥也没有。接着点击绿框框起来的那个小按钮手动创建目录WEB-INF、子目录classes,子目录lib,两个子文件夹都是空的。

3、添加Available Elements元素       

 将右边的Available Elements的元素分别添加进来,这个元素的作用就是列出你可以被添加进生成目录的文件,里面有一堆maven包,有项目中webapps目录下的文件资源,有项目编译输出的class文件。

        可以右键选择Navigate查看你是否有配置这些,比如我点击模块'networkliterature' compile output的Navigate可以看到这个Project Structure自动跳转到Modules

        这个模块已经配置好输出文件的路径(即class文件的路径,maven项目得配置到“项目\target\classes”和"项目\target\test-classes"下了,而不能配置到out下)。

        模块'networkliterature' compile output的意思就是找到你项目编译后所有生成的class文件,而它正是通过我们配置的输出文件路径去找到所有的class文件。换言之,这里的Modules的输出文件路径配置对了,这个元素就能被我们拿来使用。

同理,我们将Available Element里面所有maven帮我们下载好的jar包拖到lib目录下(可以一个个拖,也可以全选右键“Put into /WEB-INF/lib”)

lib搞定之后还差最后一个Web相关资源。直接将右边的Web facet resources拖到WEB-INF的目录下

可以看到是有点问题的,我们需要手动修改,将‘webapp’ directory contents放到根目录的WEB-INF下,这时会有一个提示,不理它就是删。点击yes后就是这样了(自动删除了WEB-INF和下面的文件web.xml)

这样就配置完成了。

不过有一点要注意,这个‘webapp’ directory contents是我们在项目里配置的webapps文件夹下的东西,里面就是放各种jsp等页面资源+web.xml:

本来这里应该得有个WEB-INF,不过因为我们配置war explode时就是手动将WEB-INF创建出来,所以这里只需要放各种页面资源+web.xml。

tomcat自带的项目examples,一般访问项目的时候都是localhost:8080/项目名,比如:

可以看到是可以访问的,而且tomcat也没报错,说明是项目的部署出了问题。
————————————————
版权声明:本文为CSDN博主「潜水的陈大喵」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/c_little_white/article/details/89435646

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值