当前位置: 首页 > ai >正文

Web服务器(Tomcat、项目部署)

1. 简介

1.1 什么是Web服务器

Web服务器是一个应用程序(软件),对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更加便捷。主要功能是"提供网上信息浏览服务"。
在这里插入图片描述
Web服务器是安装在服务器端的一款软件,将来我们把自己写的Web项目部署到Web Tomcat服务器软件中,当Web服务器软件启动后,部署在Web服务器软件中的页面就可以直接通过浏览器来访问了。

1.2 Web服务器软件使用步骤

  • 准备静态资源。
  • 下载安装Web服务器软件。
  • 将静态资源部署到Web服务器上。
  • 启动Web服务器使用浏览器访问对应的资源。

上述内容在演示的时候,使用的是Apache下的Tomcat软件,至于Tomcat软件如何使用,后面会详细的讲到。而对于Web服务器来说,实现的方案有很多,Tomcat只是其中的一种,而除了Tomcat以外,还有很多优秀的Web服务器,比如:在这里插入图片描述

1.3 认识Tomcat

  • Tomcat是Apache软件基金会一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet/JSP少量JavaEE规范。
  • 概念中提到了JavaEE规范,那什么又是JavaEE规范呢?
    JavaEE:Java Enterprise Edition,Java企业版。指Java企业级开发的技术规范总和。包含13项技术规范:JDBC、JNDI、EJB、RMI、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail、JAF。
  • 因为Tomcat支持Servlet/JSP规范,所以Tomcat也被称为Web容器、Servlet容器。Servlet需要依赖Tomcat才能运行。
  • Tomcat的官网:从官网上可以下载对应的版本进行使用。

Tomcat的LOGO
在这里插入图片描述

1.4 总结

  1. Web服务器的作用:
    • 封装HTTP协议操作,简化开发。
    • 可以将Web项目部署到服务器中,对外提供网上浏览服务。
  2. Tomcat是一个轻量级的Web服务器,支持Servlet/JSP少量JavaEE规范,也称为Web容器,Servlet容器。

2. 基本使用

2.1 下载

直接从官网下载
在这里插入图片描述
在这里插入图片描述
右边往下滑
在这里插入图片描述

2.2 安装

Tomcat是一个绿色版软件,直接解压即可

  • 自己选择磁盘目录目,将Tomcat软件安装包(我这里选择的是11.0.9版本)进行解压缩,会得到一个apache-tomcat-11.0.9的目录,Tomcat就已经安装成功。
    注意,Tomcat在解压缩的时候,解压所在的目录可以任意,但最好解压到一个不包含中文和空格的目录,因为后期在部署项目的时候,如果路径有中文或者空格可能会导致程序部署失败。
  • 打开apache-tomcat-11.0.9目录就能看到如下目录结构,每个目录中包含的内容需要认识下:
    在这里插入图片描述
    bin:目录下有两类文件,一种是以.bat结尾的,是Windows系统的可执行文件,一种是以.sh结尾的,是Linux系统的可执行文件。
    webapps:就是以后项目部署的目录,当发布Web应用时,默认情况下会将Web应用的文件存放于此目录中。
    work:Tomcat把由JSP生成的Servlet放于此目录下。

Tomcat是用Java语言编写的,所以依赖的都是些jar包。

到此,Tomcat的安装就已经完成。

2.3 卸载

卸载比较简单,可以直接删除目录即可。

2.4 启动

在apache-tomcat-11.0.9\bin目录下找到startup.bat,双击就会启动Tomcat。
在这里插入图片描述
启动后,通过浏览器访问 http://localhost:8080能看到Apache Tomcat的内容就说明Tomcat已经启动成功。
在这里插入图片描述

注意: 启动的过程中,控制台有中文乱码,这是因为Tomcat输出的日志信息是UTF-8编码,而我们Windows控制台是GBK的编码,所以控制台输出会产生乱码,需要修改 apache-tomcat-11.0.9\conf 目录下的 logging.prooperties 文件中的参数:

把java.util.logging.ConsoleHandler.encoding = UTF-8 中的 UTF-8 改为 GBK。
在这里插入图片描述

2.5 关闭

关闭有三种方式:

  • 直接x掉运行窗口:强制关闭(不建议)
  • 运行apache-tomcat-11.0.9\bin目录下的shutdown.bat:正常关闭
  • 直接在运行窗口中按ctrl+c:正常关闭

将来在正常关闭的情况下,可以执行一些资源释放的逻辑性处理,如果是强制关闭,这些方法就执行不了了。

2.6 配置

修改端口

  • Tomcat默认的端口是8080,要想修改Tomcat启动的端口号,需要修改 conf/server.xml 中如下图中的port的参数。
    在这里插入图片描述

注:如果将Tomcat端口号改为80,则将来访问Tomcat时,将不用输入端口号,即输入localhost即可,与localhost:80效果一样。因为HTTP协议默认端口号为80,即使不写端口号,也默认端口号为80。

启动时可能出现的错误

  • Tomcat的端口号取值范围是0-65535之间任意未被占用的端口,如果设置的端口号被占用,启动的时候就会包如下的错误:
    在这里插入图片描述
    出现这样的错误后,我们只需找到对应的应用程序,将其关掉,再启动Tomcat就可以了。
  • Tomcat启动的时候,启动窗口一闪而过:需要检查JAVA_HOME环境变量是否正确配置。
    因为Tomcat是由Java语言编写的,如果要运行Tomcat就需要当前电脑有JDK环境,去寻找JAVA_HOME安装目录,如果JAVA_HOME未正确配置,就找不到当前电脑中的JDK。
    在这里插入图片描述

2.7 部署

  • Tomcat部署项目:

    • 将项目放置到webapps目录下,即部署完成。这里我有一个示例项目:
      在这里插入图片描述
      其中有如下文件
      在这里插入图片描述
      直接将hello文件夹放置到webapps目录下,就部署成功了。
      在这里插入图片描述
    • 通过浏览器访问http://localhost:端口号/hello/a.html(端口号默认为8080,如果端口号设置为80则可以把:80省略),能看到下面的内容就说明项目已经部署成功。
      在这里插入图片描述
      但是呢随着项目的增大,项目中的资源也会越来越多,项目在拷贝的过程中也会越来越费时间,该如何解决呢?
  • 一般JavaWeb项目会被打包成war包,然后将war包放到Webapps目录下,Tomcat会自动解压缩war文件,这里我有一个haha.war包:

    • 将haha.war包拷贝到webapps目录下。
    • Tomcat检测到war包后会自动完成解压缩,在webapps目录下就会多一个haha目录。
      在这里插入图片描述
    • 通过浏览器访问http://localhost:端口号/haha/a.html,(端口号默认为8080,如果端口号设置为80则可以把:80省略),能看到下面的内容就说明项目已经部署成功。
      在这里插入图片描述

3. Maven创建Web项目

介绍完Tomcat的基本使用后,我们来学习在IDEA中如何创建Maven Web项目,学习这种方式的原因是以后Tomcat中运行的绝大多数都是Web项目,而使用Maven工具能更加简单快捷的把Web项目给创建出来,所以Maven的Web项目具体如何来构建呢?想要了解普通Java项目是如何构建Web项目的见:Java创建Web项目

在真正创建Maven Web项目之前,我们先要知道Web项目长什么样子,具体的结构是什么?

3.1 Web项目结构

Web项目的结构分为:开发中的项目和开发完可以部署的Web项目,这两种项目的结构是不一样的,我们一个个来介绍下:

  • Maven Web项目结构:开发中的项目
    在这里插入图片描述
    Maven Web的项目与之前Maven Java的项目区别就是多了webapp目录,这是Web项目特有的目录,这个目录下放了一些对应Web的资源。这些目录下的文件将来就可以对外提供服务,别人就可以访问到了。
    Web项目在pom文件中打包方式设置为war包的方式:
    在这里插入图片描述
  • 开发完成部署的Web项目
    其实就是把webapp目录下的资源
    在这里插入图片描述
    • 开发项目通过执行Maven打包命令package,打包完的war包就放在target目录下,可以将获取到war包部署到的Tomcat的webapps目录下,就可以来运行了。
    • 编译后的Java字节码文件和resources的资源文件,会被放到WEB-INF下的classes目录下。
    • pom.xml中依赖坐标对应的jar包,会被放入WEB-INF下的lib目录下。

3.2 创建Maven Web项目

介绍完Maven Web的项目结构后,接下来使用Maven来创建Web项目,创建方式有两种:使用骨架和不使用骨架。

3.2.1 使用骨架

具体的步骤包含:

  1. 创建Maven项目。
  2. 选择使用Web项目骨架。
  3. 输入Maven项目坐标创建项目。
  4. 确认Maven相关的配置信息后,完成项目创建。
  5. 删除pom.xml中多余内容。
  6. 补齐Maven Web项目缺失的目录结构。
  1. 创建Maven项目
    在这里插入图片描述
  2. 选择使用Web项目骨架
    在这里插入图片描述
  3. 输入Maven项目坐标创建项目
    在这里插入图片描述
  4. 确认Maven相关的配置信息后,完成项目创建
    在这里插入图片描述
  5. 删除pom.xml中多余内容,只留下面的这些内容,注意打包方式 jar和war的区别
    在这里插入图片描述
  6. 补齐Maven Web项目缺失的目录结构,默认没有java和resources目录,需要手动完成创建补齐(右击main -> New -> Directory -> 快捷选择java或resources创建):
    在这里插入图片描述
    最终的目录结果如下
    在这里插入图片描述

3.2.2 不使用骨架

具体的步骤包含:

  1. 创建Maven项目。
  2. 选择不使用Web项目骨架。
  3. 输入Maven项目坐标创建项目。
  4. 在pom.xml设置打包方式为war。
  5. 补齐Maven Web项目缺失webapp的目录结构。
  6. 补齐Maven Web项目缺失WEB-INF/web.xml的目录结构。
  1. 创建Maven项目
    在这里插入图片描述
  2. 选择不使用Web项目骨架
    在这里插入图片描述
  3. 输入Maven项目坐标创建项目
    在这里插入图片描述
  4. 在pom.xml设置打包方式为war,默认是不写,代表打包方式为jar
    在这里插入图片描述
  5. 补齐Maven Web项目缺失的Web资源目录webapp的目录结构
    在这里插入图片描述
  6. 补齐Maven Web项目缺失WEB-INF/web.xml的目录结构,如果补齐目录结构WEB-INF/web.xml时路径写错了,可以直接把补齐的目录结构WEB-INF/web.xml手动拖到webapp下
    在这里插入图片描述
  7. 补充完后,最终的项目结构如下:
    在这里插入图片描述

上述两种方式,创建的web项目,都不是很全,需要手动补充内容,至于最终采用哪种方式来创建Maven Web项目,都是可以的,根据各自的喜好来选择使用即可。

4. IDEA使用Tomcat

Maven Web项目创建成功后,通过Maven的package命令可以将项目打包成war包,将war文件拷贝到Tomcat的webapps目录下,启动Tomcat就可以将项目部署成功,然后通过浏览器进行访问即可。

然而我们在开发的过程中,项目中的内容会经常发生变化,如果按照上面这种方式来部署测试,是非常不方便的。

如何在IDEA中能快速使用Tomcat呢?

在IDEA中集成使用Tomcat有两种方式,分别是集成本地TomcatTomcat Maven插件

4.1 集成本地Tomcat

将本地安装好的Tomcat集成到IDEA中,完成项目部署,具体的实现步骤:

  1. 打开添加本地Tomcat的面板
    在这里插入图片描述

  2. 指定本地Tomcat的安装路径
    在这里插入图片描述

  3. 修改Tomcat的名称,此步骤可以不改,只是让名字看起来更有意义,HTTP port中的端口也可以进行修改,比如把8080改成80

  4. 将开发项目部署项目到Tomcat中
    在这里插入图片描述
    扩展内容:xxx.war 和 xxx.war exploded这两种部署项目模式的区别?

    • war模式是将WEB工程打成war包,把war包发布到Tomcat服务器上。
    • war exploded模式是将WEB工程以当前文件夹的位置关系发布到Tomcat服务器上。
    • war模式部署成功后,Tomcat的webapps目录下会有部署的项目内容。
    • war exploded模式部署成功后,Tomcat的webapps目录下没有,而使用的是项目的target目录下的内容进行部署。
    • 建议大家都选war模式进行部署,更符合项目部署的实际情况。
  5. 部署成功后,就可以启动项目,为了能更好的看到启动的效果,可以在webapp目录下添加a.html页面
    在这里插入图片描述
    点击启动Tomcat
    在这里插入图片描述

  6. 启动成功后,可以通过浏览器进行访问测试
    IDEA打开浏览器,访问的是当前这个项目的根目录
    在这里插入图片描述
    要想访问里面的资源,比如刚刚添加的html页面,直接在后面输入a.html -> 回车
    在这里插入图片描述

  7. 最终的注意事项
    在这里插入图片描述
    若想修改项目最终访问地址,点击Deployment,在下面Application context中修改
    在这里插入图片描述

4.2 Tomcat Maven插件

在IDEA中使用本地Tomcat进行项目部署,相对来说步骤比较繁琐,所以我们需要一种更简便的方式来替换它,那就是直接使用Maven中的Tomcat插件来部署项目,具体的实现步骤,只需要两步,分别是:

  1. 在pom.xml中添加Tomcat插件的依赖坐标,坐标添加完成后,就相当与在Maven项目中集成了一个内置的Tomcat。
    (可在pom.xml文件中按Alt+Insert -> 选择Plugin Template 快捷创建插件模板,然后填写坐标)
    在这里插入图片描述
    在这里插入图片描述
  2. 使用Maven Helper插件快速启动项目,选中项目,右键 -> Run Maven -> tomcat7:run。
    在这里插入图片描述
    在这里插入图片描述

注意:

  • 如果选中项目并右键点击后,看不到Run Maven和Debug Maven,这个时候就需要在IDEA中下载Maven Helper插件,具体的操作方式为: File -> Settings -> Plugins -> 搜索Maven Helper -> Install,安装完后按照提示重启IDEA,就可以看到了。
  • Maven Tomcat插件目前只有Tomcat7版本,没有更高的版本可以使用。
  • 使用Maven Tomcat插件,如果要想修改Tomcat的端口和访问路径,可以直接修改pom.xml,如下:
<build><plugins><!--Tomcat插件 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><port>8080</port><!--访问端口号 --><!--项目访问路径未配置访问路径: http://localhost:8080/tomcat-demo2/a.html配置/后访问路径: http://localhost:8080/a.html如果配置成 /hello,访问路径会变成什么?答案: http://localhost:80/hello/a.html--><path>/</path></configuration></plugin></plugins>
</build>
http://www.xdnf.cn/news/15951.html

相关文章:

  • C# 中的装箱与拆箱
  • 今日行情明日机会——20250722
  • 基于AutoJawSegment项目的CBCT图像分割实践指南
  • 【bug】Yolo11在使用tensorrt推理numpy报错
  • Java 中 String 类的常用方法
  • OneCode 3.0 @TreeAnnotation及@ChildTreeAnnotation子树注解速查手册
  • 生存分析机器学习问题
  • 数据交换---JSON格式
  • IDEA-通过IDEA导入第三方的依赖包
  • Android常用的adb和logcat命令
  • Qt/C++源码/监控设备模拟器/支持onvif和gb28181/多路批量模拟/虚拟监控摄像头
  • RedisJSON 指令精讲JSON.TOGGLE 键翻转布尔值
  • Python趣味算法:实现任意进制转换算法原理+源码
  • 【无标题】buuctf-re3
  • 企业级IIS配置手册:安全加固/负载均衡/性能优化最佳实践
  • PyQt5—QLabel 学习笔记
  • 常用 Flutter 命令大全:从开发到发布全流程总结
  • ELF 文件操作手册
  • Java 动态导出 Word 登记表:多人员、分页、动态表格的最佳实践
  • C++11--锁分析
  • ospf技术
  • 【SpringAI实战】实现仿DeepSeek页面对话机器人
  • Jiasou TideFlow AIGC SEO Agent:全自动外链构建技术重构智能营销新标准
  • 技术与情感交织的一生 (十)
  • Spring处理器和Bean的生命周期
  • LinkedList与链表(单向)(Java实现)
  • 【2025/07/21】GitHub 今日热门项目
  • WinForm-免费,可商用的WinForm UI框架推荐
  • Linux 命令大全
  • Three.js实现银河流光粒子星空特效原理与实践