JavaWeb-Tomcat

1. Web服务器

  • web服务器由硬件和软件组成:
    • 硬件:计算机系统
    • 软件:计算机上安装的服务器软件,安装后可以为web应用提供网络服务。
  • 常见的JavaWeb服务器:
    • Tomcat(Apache):应用最广泛的web服务器。
    • Jetty:更轻量级、更灵活的servlet容器。
    • Jboss(Redhat):支持JavaEE,应用较广。
    • GlassFish(Orcale):应用不是很广。
    • Resin(Caucho)
    • Weblogic(Orcale):付费,适合大型项目。
    • Websphere(IBM):付费,适合大型项目。

在这里插入图片描述
服务器硬件为JRE提供硬件支持,JRE为Tomcat提供运行环境,Tomcat为APP提供网络服务。
JRE就像操作系统,Tomcat就像浏览器,APP就像网页。网页无法直接在操作系统上显示,必须由浏览器解析显示,浏览器也无法直接在计算机硬件上运行,必须通过操作系统与底层交互。也就是说,APP需要通过Tomcat提供的服务完成相应功能,而Tomcat需要在JRE上才能运行。

2. Tomcat

2.1 简介

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

2.2 安装

Tomcat版本、servlet版本和JavaEE版本对照关系

Servlet VersionTomcat VersionJDK Version
6.111.0.x17 and later
6.010.1.x11 and later
5.010.0.x (superseded)8 and later
4.09.0.x8 and later
3.18.5.x7 and later
3.18.0.x (superseded)7 and later
3.07.0.x (archived)6 and later (7 and later for WebSocket)
  1. 根据对照关系,选择相应的Tomcat版本,去Tomcat官网https://tomcat.apache.org/下载对应的版本。我这里下载9.0版本的解压版。页面下方还有源码可以下载。在这里插入图片描述
  2. 解压Tomcat到非中文无空格的路径。在解压之前,需要先安装好JDK,并配置好JAVA_HOME变量,如果之前安装过JDK,那么环境变量应该已经配置好了。
    在这里插入图片描述3. 点击bin/startup.bat启动服务,启动后窗口不能关闭。在这里插入图片描述
    在这里插入图片描述
  3. 打开浏览器输入http://localhost:8080访问测试,如果出现如下页面,说明打开服务成功。在这里插入图片描述
  4. 关闭服务时,可以通过关闭第三步打开的窗口,还可以启动bin/shutdown.bat来关闭服务。在这里插入图片描述
  5. 打开服务时,dos窗口出现乱码的原因是dos窗口的编码是GBK,而打印信息的编码是utf-8,所以会出现乱码,可以通过修改conf/logging.properties文件中的java.util.logging.ConsoleHandler.encoding修改为GBK即可解决问题。在这里插入图片描述
    在这里插入图片描述

2.3 Tomcat目录及测试

  • D:\apache-tomcat-9.0.83称为Tomcat的安装目录或根目录。

  • bin目录中存放的是二进制可执行文件,解压版下的bin目录中有startup.bat和shutdown.bat等文件,安装版下的内容与解压版可能不同。要使bin目录中的命令可以在命令行中使用,需要配置环境变量。在环境变量中,添加CATALINA_HOME的变量,值为Tomcat的安装路径,然后path中添加路径 %CATALINA_HOME%\bin。但是在配置好环境变量后,如果安装其他版本的Tomcat,点击该版本bin目录下的startup.bat文件,运行的也会是环境变量中绑定目录下的startup.bat文件。
    在这里插入图片描述

  • conf目录中存放的是配置信息,其下有4个非常重要的文件:

    • server.xml:配置整个服务器的信息,例如端口号。默认的HTTP请求的端口号是8080.在这里插入图片描述

    • tomcat-users.xml:存储tomcat用户的文件,保存用户名和密码,以及用户的角色信息。可以按照该文件中的注释信息添加tomcat用户,然后就可以在Tomcat主页中进入Tomcat Manager页面了。在这里插入图片描述

    • web.xml:部署描述符文件,这个文件中注册了很多MIME类型,即文档类型。这些MIME类型是客户端与服务器之间说明文档类型的,如用户请求一个HTML网页,那么服务器还会告诉客户端浏览器响应的文档是text/html类型的,这就是一个MIME类型。客户端浏览器通过这个MIME类型就知道如何处理它了。在这里插入图片描述

    • context.xml:对所有应用的统一配置,通常我们不会去配置它。在这里插入图片描述

  • lib:Tomcat的类库,里面是jar文件。这个目录中的jar文件被Tomcat中的所有项目共享。在这里插入图片描述

  • logs:这个目录是用于存放日志文件的,记录了Tomcat启动和关闭的信息,如果启动Tomcat时有错误,也会记录在日志文件中。不需要的日志文件可以删除。在这里插入图片描述

  • temp:存放Tomcat的临时文件,这个目录下的东西可以在停止Tomcat后删除。

  • webapps:存放web项目的目录,其中每个文件夹都是一个项目。Tomcat有一些自带的项目,使用浏览器访问8080端口,访问的就是ROOT项目。在这里插入图片描述

  • work:与JSP有关。

  • LICENSE:许可证。

  • NOTICE:说明文件。

2.4 Web项目的标准结构

在这里插入图片描述

  • test_app:本应用的根目录。
    • static:非必要目录,约定俗称的名字,可以改成其他名字,用于存放静态资源如css、js和图片等。
    • WEB-INF:必要目录,并且名字不能更改,是受保护的资源目录,浏览器无法通过url直接访问该目录下的资源。在这里插入图片描述
      • classes:必要目录,用于存放字节码。如果项目中没有原码,则该目录不会出现。
      • lib:必要目录,存放此项目需要依赖的jar包。
      • web.xml:必要文件,项目的基本配置信息。较新版本中可以没有该文件。
    • index.html:访问该项目时默认的访问页面。在这里插入图片描述
    • 其他html文件:项目中的其他html页面。
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

2.5 Web项目的部署方式

  1. 将编译好的项目直接放在Tomcat的webapps目录下。
  2. 将编译好的项目打包成war包,再放在webapps目录下,tomcat启动后会自动解压war包部署项目。
  3. 将编译好的项目放在其他路径下,通过配置XML文件使得tomcat能够找到对应的项目。
    • 将项目直接放在D盘根目录下,然后在tomcat安装目录的conf\Catalina\localhost目录下新建一个与项目名相同的xml文件,并在文件中加上如下代码<Context path="自定义的项目上下文路径" docBase="项目在磁盘中的位置" />。项目上下文路径是在浏览器中需要输入的项目名称,需要与项目名称相同,如果不同则需要配置其他信息。在这里插入图片描述
      项目部署信息:在这里插入图片描述
      访问项目:在这里插入图片描述
    • 在浏览器输入的url与服务器资源的对应关系:在这里插入图片描述
    • 访问webapps下自带的项目:
      • docs项目:在这里插入图片描述
      • examples:在这里插入图片描述
      • host-manager和manager:访问这两个项目需要验证用户名和密码,可以在上面提到过的tomcat-users.xml文件中配置用户信息,加入以下代码即可:<role rolename="admin-gui" /> <role rolename="admin-script" /> <role rolename="manager-script" /> <role rolename="manager-jmx" /> <role rolename="manager-status" /> <user username="admin" password="123456" roles="admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" />在这里插入图片描述
        在这里插入图片描述
      • ROOT:ROOT项目的上下文路径不为ROOT,直接访问8080端口访问的就是ROOT项目。在这里插入图片描述

2.6 IDEA中开发并部署运行Web项目

首先在IDEA中创建JavaWeb工程,然后将Java工程构建成可用于部署的app,再将app部署在tomcat上运行,这一系列操作都通过IDEA来完成。

2.6.1 IDEA关联本地Tomcat

  • 打开IDEA的设置页面,找到Build,Execution,Deployment下的Application Servers。
    在这里插入图片描述
  • 点击加号并且选择Tomcat Server。
    在这里插入图片描述
  • 选择Tomcat的安装目录。在这里插入图片描述
  • 点击apply后,IDEA与Tomcat关联成功。在这里插入图片描述

2.6.2 IDEA创建JavaWeb工程

  • 首先创建一个空项目,空项目下可以放多个module,也可以直接创建web工程。

  • 检查项目的SDK版本,语法版本,以及项目编译后的输出目录。在这里插入图片描述

  • 创建一个普通的Java项目。在这里插入图片描述

  • 为Java项目添加依赖。点击后选择Tomcat。在这里插入图片描述

  • 为Java项目添加framework support。在这里要注意版本的匹配问题,4.0版本可能不一定适用。在这里插入图片描述

  • 将index.jsp文件替换为index.html文件。在这里插入图片描述

  • 处理配置文件,在工程下建立一个resources目录,用于存放配置文件。都放在src目录下也可以,但是会很混乱。标记该目录为资源目录,否则该文件不参与编译。在这里插入图片描述

  • 在web目录的WEB-INF目录下建立lib目录,用于存放项目所需要的jar包依赖,并将lib目录添加为项目的依赖,环境级别选择module级别,降低对其他项目的影响。后续可以使用maven统一解决。在这里插入图片描述
    在这里插入图片描述

2.6.3 IDEA部署和运行web项目

  • 可以通过查看web目录有无特殊标记确定IDEA是否识别该项目为web项目,以及artifacts下,有没有对应的_war_exploded,如果没有,就点加号添加。在这里插入图片描述
    在这里插入图片描述
  • 在菜单栏的run选项下找到edit configuration,并点击加号添加本地Tomcat服务器。在这里插入图片描述
  • 然后在弹出页面的deployment选项中,通过加号添加要部署到Tomcat中的artifacts。application context就是应用上下文路径,也就是在url中需要填写的路径,这里可以和工程名不一样,也可以不写,但是要保留 ‘/’。在这里插入图片描述
  • after launch选项是指项目启动成功后,是否自动打开浏览器,并输入URL中的地址。点击apply完成设置。在这里插入图片描述
  • 运行项目。在这里插入图片描述

2.6.4 IDEA部署运行项目的原理

  • IDEA并没有将编译好的项目直接放入Tomcat的webapps目录下,而是根据关联的tomcat,创建了一个tomcat副本,然后将项目部署到了这个副本中。
  • IDEA的tomcat副本在用户文件夹下的AppData\Local\JetBrains\IntelliJIdea2023.2\tomcat中。在这里插入图片描述
  • IDEA的tomcat副本并不是一个完整的tomcat,副本里只准备了和当前项目相关的配置文件。
  • IDEA启动tomcat时,是让本地tomcat按照tomcat副本里的配置文件运行。
  • IDEA的tomcat副本中的conf\Catalina\localhost\xml文件中配置了项目的上下文路径和磁盘中的路径,所以tomcat是通过该文件获得项目的路径的。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值