• 【JavaWeb】Tomcat部署Web项目以及Maven工具的使用


    目录

    什么是Tomcat?

    Tomcat的安装及环境配置 

    Tomcat的目录结构

    部署Web项目 

    为什么要使用项目构建工具?

    Maven工具的介绍 

    IDEA中创建Maven项目

    Maven查找依赖的流程 

    Maven项目配置文件 

    Maven的生命周期命令


    什么是Tomcat?

    Tomcat是一个web服务器,用于提供web(http,https)服务端程序,它是一个基于Java实现的一个开源且免费,也被广泛使用的HTTP服务器 

    我们前面学习的HTTP协议,知道HTTP协议就是约定HTTP客户端和HTTP服务端之间数据交互的格式,Tomcat服务器已经给我们包装好了对请求的解析和分用,以及响应的封装,它的优势在于不同地方需要提供服务端功能,不需要我们自己手动去写请求的解析和响应的封装 

    Tomcat的安装及环境配置 

    直接去Tomcat官网下载,下载地址:Tomcat下载地址

    下载完后进行解压,但是注意的是解压的路径不要存在中文,否则点击启动脚本无法执行

    检测JAVA_HOME环境变量是否配置成功

    要启动Tomcat,需要提前配置jdk环境变量,可以在cmd中使用"%java_home%/bin/java" -version命令来检查配置JAVA_HOME环境变量是否正确

    启动Tomcat服务器

    如果双击后,出现了一个小的黑窗口,闪一下就没了,可能是环境变量没有配置好 

    端口被其他程序绑定时的处理方法 

    注意要观察启动的信息有没有报错,如果有Address already in use,表示Tomcat需要绑定的端口(默认绑定8080端口),被其他程序占用了 

    检查某个端口是否被占用:

    • windows:netstat -ano | findstr 端口号
    • linux:netatat -anp | grep 端口号

    如果端口号被其他应用程序占用,使用taskkill -pid pid号 -f来处理掉程序

    如果启动Tomcat后,访问127.0.0.1:8080,出现如下页面:

    这种情况也是端口号被占用,只需要将8080端口绑定的程序杀死即可

    • 查看8080端是否被占用:

    • 杀死该应用程序(注意要以管理员身份运行): 

    解决掉端口及环境变量问题,重新启动Tomcat服务器 

    重新启动Tomcat,访问127.0.0.1:8080,出现如下页面表示Tomcat启动成功

    使用这两个都可以访问: 

    • 本机IP:127.0.0.1
    • 本机域名:localhost

    注意:在windows上通过cmd方式启动Tomcat会出现乱码,但是不影响使用,乱码的原因是Tomcat默认按照UTF-8方式处理中文,而windows的cmd默认是GBK编码 

    Tomcat的目录结构

    对目录结构的说明:

    • bin:存放执行脚本,如启动脚本,终止脚本,.bat是windows上的批处理脚本,.sh是linux上的批处理脚本
    • conf:存放配置文件,配置文件可以配置服务器的端口等
    • lib:存放Tomcat服务器需要的运行内库,里面都是jar格式的文件(jar格式是一个压缩格式,里面存放class文件)
    • logs:存放日志文件,运行产生的信息,用来定位一些信息
    • temp:临时文件夹,不用关心
    • webapps:存放web应用,一个webapp就是一个web应用,可以存多个webapp
    • work:Tomcat内部进行预编译的文件夹
    • 下面的都是一些文档 

    我们最关心的是webapps目录,它是用来存放web应用的文件夹,关于web应用:一个具有完整功能的网站,可以称之为web应用,比如百度搜索,实现了完整的搜索引擎功能,淘宝实现了独立完整的电商功能,一个Tomcat服务器上是可以同时部署多个这样的web应用,这些web应用以目录的形式存放于webapps目录中

    部署Web项目 

    webapps目录下,每一个文件夹就是一个webapp 

    这个页面就是webapps文件夹中ROOT文件夹下的页面

    如果不是ROOT文件夹,还需要输入文件夹的名称才可以访问 

    示例:在webapps目录下,创建一个test文件夹,在test文件夹中创建一个index.html,使用浏览器访问

    注意:

    • webapps目录下,每一个文件夹就是一个webapp
    • webapps目录下,不能直接访问html文件
    • 对于非ROOT目录,访问时要带上webapp文件夹名称,对于ROOT目录,不用带文件夹名称 

    例如:在ROOT目录下,创建一个index.html,使用浏览器访问

    • / 会默认查找index.html资源 

    使用这个路径127.0.0.1:8080也可以访问到 

    • webapp文件夹的名字,不要有空格,中文,特殊字符

    部署博客系统页面到Tomcat服务器中

    1. 把之前的博客系统页面文件直接复制到webapps目录下

    2. 更改文件夹名字,不要出现中文等特殊符号 

      

    3. 访问博客系统页面:

    除了这种部署方式,还有更简便的部署方式,将在下一篇文章Servlet中讲解

    为什么要使用项目构建工具?

    前面在数据库的JDBC编程中,引入了jar后缀的文件作为项目依赖,才可以使用里面的类和接口,通过下载jar文件,然后配置到项目依赖中,操作是比较繁琐的

    使用项目构建工具,可以通过配置使用相同的依赖,构建工具会自动下载,并引入为项目的依赖包

    对于打包来说:是将程序实现的功能打一个jar包,提供给别人使用

    对于Web开发来说:需要把html,css,js,class文件复制到Tomcat的webapps目录下的文件夹中,过程是比较复杂的,使用构建工具后,可以把web应用打一个war格式的文件,war格式是一个压缩格式的文件,里面包含了web应用的内容 

    对于Java项目,构建工具有很多产品,如ant(比较老了,几乎被淘汰了),gradle(安卓开发比较常用),maven(后端开发使用广泛) 

    Maven工具的介绍 

    Maven是一个项目构建工具,创建的项目只要遵循Maven规范(称为Maven项目),即可以使用Maven来进行管理:编译,打包等

    Maven是一个Java开发的程序,可以单独下载使用,但是idea内置了maven这个程序作为插件,可以直接在idea中使用

    IDEA中创建Maven项目

    创建项目时不在创建之前的Java项目,而是选择创建Maven项目 

    选择创建Maven项目的路径 

    创建完成后,如果右下角出现以下弹窗,需要开启自动导入功能:

    第一次创建可能需要下载很多程序:

    Maven面板里面,可以看到Maven项目的命令,插件和依赖包:

    Maven查找依赖的流程 

    Maven项目中可以引入依赖包,引入后,加载依赖包的方式为在Maven仓库中搜索,Maven仓库可以理解为存放依赖包的仓库,分为本地仓库和远程仓库两种 

    Maven项目配置文件 

    项目的根路径下,生成了一个pom.xml文件(Maven的配置文件),可以配置项目需要引入的依赖,编译结构,打包等 

    引入依赖包的方式

    • groupId:组织名,一般为公司域名
    • artifactId:组织名,一般是项目的名称
    • version:版本号 

    注意:在idea中修改了pom.xml后,记得刷新Maven面板才能生效 

    本项目作为一个产品,也有对应的三个属相唯一标识

    Maven项目的结构(由Maven规范规定的) 

    在java目录下,随便创建一个类,在resources目录下随便创建一个配置文件,运行观察编译目录

    Maven的生命周期命令

    Maven构建工具主要目的就是对Maven项目进行管理,这些都是通过Maven的生命周期命令来管理的,在IDEA创建的Maven项目中,打开Maven面板,展开项目的Lifecycle即为生命周期命令 

    总结常用Maven生命周期命令:

    • clean:清除命令,删除target编译目录 
    • compile:编译命令,编译开发代码,资源文件
    • package:打包命令,将整个项目打包为一个压缩文件
  • 相关阅读:
    网课答案公众号搭建!小白教程!内附网课题库接口!
    全局配置-window和tabBar
    netty源码看不懂?试着写一个吧
    Go语言基础之包
    杰理之.睡眠以后定时唤醒系统继续跑不复位【篇】
    CentOS7常用命令整理
    CF 1899A 学习笔记
    AJAX——HTTP协议
    软考高级架构师下篇-17安全架构设计理论与实践
    【C++篇】AVL树
  • 原文地址:https://blog.csdn.net/qq_58710208/article/details/126214029