Tomcat的学习

Tomcat的学习

启动Tomcat

在bin目录下有一个文件startup.bat文件通过它来进行启动Tomcat服务器。

通过分析startup.bat文件可以得出执行这命令,实际上是执行catalina.bat这个文件。在catalina.bat文件中有一行配置:set MAINCLASS=org.apache.catalina.startup.Bootstrap(这个类就是main方法所在的类)

Tomcat服务器是JAVA语言写的,既然是JAVA写的,那么启动Tomcat服务器就是执行main方法。

在startup.bat文件中我们可以看到要启动Tomcat需要配置CATALINA_HOME这个环境变量。CATALINA_HOME就是Tomcat的根(Tomcat的家)

然后我们再看catalina.bat这个文件,里面需要一个环境变量JAVA_HOME,所以我们需要配置JAVA_HOME。就是JAVA的家(JAVA的根)

在Windows中%JAVA_HOME%表示将JAVA_HOME环境变量中的变量值取出来。

综上所述

配置Tomcat服务器需要哪些环境变量?

  • JAVA_HOME=JDK的根
  • CATALINA_HOME=Tomcat服务器的根
  • PATH=%JAVA_HOME%\bin;%CATALINA_HOME%\bin

Tomcat的目录结构

请添加图片描述

  1. bin:存放着各种命令。最为最要的是 startup.bat 与 shutdown.bat 两个批处理文件,用于开启和关闭 Tomcat 服务器。
  2. conf:存放各种 Tomcat 的配置文件。最重要两个配置文件是 server.xml(文件可以配置端口号,默认Tomcat端口号是8080) 与tomcat-users.xml。
  3. lib:Tomcat 运行的类库,是Tomcat核心程序目录,即字节码文件。是全局的类库文件。而Web应用中的WEB-INF中的lib文件夹是项目所需要的类库,这里的JAR包都是class文件。
  4. logs:Tomcat 的运行日志。
  5. temp:Tomcat 运行的临时文件目录。
  6. webapps:存放各种具体的 Web 应用的目录。一个目录就是一个web项目。
  7. work:jsp 文件转换编辑结果的存放目录。用来存放JSP文件翻译之后的Java文件以及编译之后的class文件。

Tomcat 的核心配置都集中在 Tomcat 安装目录的 conf\server.xml文件中,其核心结构如下图所示。

请添加图片描述

​ 其中 Host 即为访问的主机域名,而 Host 中的 Context,即为该主机中的应用名称。若要连接主机,则需要通过连接器 Connector。而连接器 Connector 则是由指定端口号所对应的程序通过指定访问协议所创建的连接对象。当然,主机的运行,是基于服务引擎 Engine所构建的运行环境的。

Context指的是主机包含的应用。

Server.xml的文件结构
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
  <Service name="Catalina">
    <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
    <Engine name="Catalina" defaultHost="localhost">  
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
      </Realm>
      <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>
    </Engine>
  </Service>
</Server>
  1. Server:代表是一个服务器,一个服务器 Server 可以提供很多种服务 Servicer。
  2. Service:代表是一个服务,Service可以有多个,每一个要取不同的名字。即name属性不一样。
  3. Connector:一个浏览器对象,浏览器要想使用这个服务就必须要使用连接器Connector,Connector是一个对象,里面配置相应的端口号,协议等相关配置。
  4. Engine:是服务引擎,默认主机是自己localhost。一个引擎中可以包含多个主机。一个主机对应一个域名。
  5. Realm:在Engine中是做安全管理的
  6. Host:是服务器主机,其中unpackWARs=“true”,autoDeploy="true"是对war包的自动解压与自动发布,在服务器启动的时候Tomcat看到有war包,就会自动解压war包并且自动发布war包中对应的项目。appBase="webapps"网站配置的根目录。
Context应用

我们所部署到 Tomcat 的 webapps 中的各个应用,其实是作为默认主机 localhost 的子应用模块出现的。而这一点反映到 server.xml 中的配置如下所示。

请添加图片描述

  1. name:主机名,即域名。
  2. appBase:该主机所对应的目录。该目录是一个相对于 Tomcat 安装目录的相对路径。
  3. unpackWars:是否会自动解压 war 包。为true,则会自动解压。
  4. autoDeploy:在服务器运行状态下,将一个项目放入当前目录中,是否会自动部署到服务器,由 Tomcat 来管理。即将一个项目放入当前目录中是否会自动运行在 Tomcat 下。为 true,则会自动运行。
  5. 若中包含子标签,则该标签所指定的项目将通过该主机域名访问。当然,appBase 目录中所有的项目默认也是通过该主机域名访问的。

配置虚拟目录

​ 默认情况下,主机会将 appBase 指定目录中的所有项目通过当前主机域名访问。但,也可以将本地文件系统中任意目录指定为通过该主机域名访问的应用目录,交由 Tomcat 进行管理。这个被指定的文件系统中的目录,称为虚拟目录。

实现虚拟目录的两种配置方式:
  1. 在主机配置中添加<Context/>标签

    只需要在指定主机<Host/>中添加一个子标签<Context/>即可。

    请添加图片描述

    path:指定在当前主机域名下访问该应用的 URI。

    docBase:指定应用目录的路径。

    这种添加虚拟目录的方式存在一个问题:若采用添加虚拟目录的方式向当前主机中添加一个项目,则需要重启 Tomcat 服务器后,该修改过的 server.xml 文件才会被重新加载。而Tomcat 服务器的重启,将直接影响到其它项目的正常运行。

  2. 在主机目录中添加配置

    Tomcat 启动后,会在 Tomcat 安装目录的 conf 中自动创建一个目录。该目录与 server.xml的标签对应,目录名与的 name 属性相同,默认为 Catalina。该目录即为引擎目录。打开该引擎目录,可以看到有 localhost 主机目录。

    请添加图片描述

    在 localhost 主机目录中新建一个 XML 文件,文件名例如为 myprimary.xml,文件内容如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <Context docBase="d:/02-primary"/>
    

    ​ 需要注意的是,该标签没有 path 属性。该 path 属性值即为该 XML 文件的文件名。也就是说,该 XML 文件名即为在当前主机域名下访问该应用的 URI。

    ​ 该方式所创建的虚拟目录无需重启 Tomcat,就可以直接由 Tomcat 来管理。当这个 XML 文件写完后一保存,即可发现 Tomcat 的控制台信息中提示,已经成功发布该项目。

配置虚拟主机

  1. 配置虚拟主机,即在同一个硬件主机上运行多个域名系统,当作多个主机来使用,即在同一台机器上虚拟出多个主机。换句话说,在同一个 Tomcat 上,除了运行着默认的 localhost域名系统外,同时还运行着其它域名的系统。

  2. 若要配置虚拟主机,需要配置域名解析和DNS解析

  3. 只所以我们通过域名 locahost 可以访问本机,是因为我们 Windows 系统本身也充当前DNS 服务器的角色。在Hosts文件中。

  4. C:/Windows/System32/drivers/etc是Hosts文件的路径。

  5. 配置虚拟主机的步骤:

    1. 创建应用存放的目录:

      在 Tomcat 安装目录下新建一个目录,用于存放应用。其名称随意,例如为 mywebapps。该目录是与 Tomcat 下的 webapps 并列的的目录。

    2. 修改 server.xml

      在 Tomcat 安装目录下的 conf文件夹 中的 servlet.xml 中后添加另一个主机,指定该主机的域名为自己的域名。例如:www.servletstudy.com。其中appBase的值为步骤1,所创建的目录。mywebapps。

    3. 然后修改hosts文件即可,这一步是为了让DNS能够解析

    4. 可以创建多个虚拟主机。

  6. 在 hosts 文件中,localhost、www.servletstudy.com 这两个虚拟主机均会映射到 127.0.0.1 的这个 IP,那么若使用 127.0.0.1 来访问的话,会访问哪个虚拟主机呢?在 server.xml 中的标签中有一个属性 defaultHost 指明了使用相同 IP 的不同域名设置情况下,使用 IP 访问时默认访问的主机。

  7. 默认情况下,defaultHost 的值为 localhost,也就是说,这里若使用 127.0.0.1 来访问的话,真正访问的是 localhost 虚拟主机。

  8. 若将 defaultHost 的值修改为 www.servletstudy.com,则使用 127.0.0.1 访问,则会访问www.servletstudy.com 虚拟主机。

配置默认应用

我们访问 http://localhost:8080 后只所以可以看到 Tomcat 管理主页,是因为在 Tomcat安装目录的 webapps 中存在一个名称为 ROOT 的应用。打开该应用,可以看到就是“Tomcat应用管理系统”这个应用。

若我们自己的应用系统想作为默认应用出现,即直接通过主机名就可直接访问我们的应用,则可将我们应用的目录更名为 ROOT 即可。

将原来存放着“Tomcat 应用管理系统”的 ROOT 目录删除,将我们自己的应用目录修改为 ROOT,重启 Tomcat 即可。

请添加图片描述

修改默认端口号

Tomcat 中通过 HTTP 协议所创建的 Connector 对象,默认的端口号为 8080。若 8080 端口号已被其它程序所占用,则可修改这里的端口号为其它。

请添加图片描述

ManagerAPP的用法

ManagerAPP在Tomcat的网页首页上

请添加图片描述

在Tomcat的安装目录下,找到tomcat-users.xml文件,在下面加上下面的代码,账号和密码自己写,这样就可以使用ManagerAPP了。

<role rolename="manager-gui"/>
<user username="账号" password="密码" roles="manager-gui"/>

JavaWeb 项目结构

JavaEE 规范要求 JavaWeb 项目的程序结构是:

  • 在当前应用所在目录下可以直接存放资源文件,如.html、.jpg 等,也可以将其放入到子目录中访问。
  • 若 Web 项目中包含 Servlet 代码,则 Servlet 的字节码文件必须存放在当前应用所在子目录/WEB-INF/classes 下。
  • 在/WEB-INF/下可以包含 web.xml 配置文件,定义请求 URI 与所要访问的 Servlet 间的映射关系、指定欢迎页面等。
  • 在/WEB-INF 下可以包含子目录 lib,用于存放当前 Web 应用所使用的外部 Jar 包。
  • /WEB-INF/目录中的资源不能被浏览器直接访问。

请添加图片描述


请添加图片描述

解决Tomcat服务器在DOS命令窗口中的乱码问题(控制台乱码)

将CATALINA_HOME/conf/logging.properties文件中的内容修改如下:

java.util.logging.ConsoleHandler.encoding = GBK

原文地址:https://blog.csdn.net/m0_57792458/article/details/121057304

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


&lt;servlet&gt; &lt;servlet-name&gt;tomcatpooljsp&lt;/servlet-name&gt; &lt;jsp-file&gt;/WEB-INF/tomcatpool.jsp&lt;/jsp-file&gt; &lt;/servlet&gt; &lt;servlet-mapping&gt; &lt;servlet-name&gt;tomcatpooljsp&lt;/servlet-nam...
遵循Java Servlet 规范第4节中的建议 ,Apache Tomcat实现了系统地重新加载Java类的方法,以允许在不重新启动整个服务器的情况下更新应用程序的组件。 此功能对于开发非常重要,因为事实证明,随着服务器启动和重启时间的延长,这会严重浪费开发人员的时间。实际上,Java EE堆栈应用服务器的服务器重新启动时间很慢,这是Tomcat广泛用于个人和企业级项目的推动力之一。但是,即使Tomcat也无法 像运行时重新加载应用程序一样快地启动。通过仅重新加载隔离的应用程序的更改的类,开发人员..
JMX(Java管理扩展)是一项非常强大的技术,可让您管理,监视和配置Tomcat MBean。如果您是Tomcat管理员,那么您应该熟悉如何在tomcat中启用JMX来监视堆内存,线程,CPU使用率,类以及配置各种MBean。在本文中,我将讨论如何使用JConsole启用并连接到Tomcat。我假设您已经安装了Tomcat(如果没有);您可以参考安装指南。转到安装了Tomcat的路径 转到bin文件夹 将文件创建为“ setenv.sh” 使用vi编辑器修改文件并添加以下内容
总览介绍 建立 取得Java 获取TomCat 将TomCat安装为Windows服务 将TomCat设置为Linux服务(系统化) 使用Nginx作为反向代理 基本用法 手动启动和停止TomCat 验证TomCat服务器正在运行 服务静态文件 服务Java服务器页面(JSP) 修改设定 部署网络应用 使用管理网页界面 创建一个TomCat管理员用户 访问管理网络应用 管理网络应用 结论 参考链接介绍在最简单的概念中,To.
PSI Probe是Lambda Probe的社区驱动分支,使用相同的开源许可证(GPLv2)分发。它旨在替换和扩展Tomcat Manager,从而使管理和监视Apache Tomcat实例更加容易。与许多其他服务器监视工具不同,PSI Probe不需要对现有应用程序进行任何更改。它通过可访问Web的界面提供所有功能,只需将其部署到服务器即可使用。这些功能包括:请求:即使在每个应用程序的基础上,实时监视流量。 会话:浏览/搜索属性,查看上一个IP,到期,估计大小。 JSP:浏览,查看源代码,进
监视和管理Tomcat目录介绍 启用JMX远程 使用JMX远程Ant任务管理Tomcat JMXAccessorOpenTask-JMX打开连接任务 JMXAccessorGetTask:获取属性值Ant任务 JMXAccessorSetTask:设置属性值Ant任务 JMXAccessorInvokeTask:调用MBean操作Ant任务 JMXAccessorQueryTask:查询MBean Ant任务 JMXAccessorCreateTask:远程创建MBean Ant任
1.tomcat与jetty都是一种servlet引擎,他们都支持标准的servlet规范和javaEE规范
“The origin server did not find a current representation for the target resource...
Artifacts是maven中的一个概念,表示某个module要如何打包,例如war exploded、war、jar、ear等等这种打包形式;
使用 IDEA 编辑器开发项目十分便捷,这里介绍使用 IDEA 编辑器添加 Tomcat
这篇“servlet和tomcat的知识点有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅...
这篇文章主要讲解了“Tomcat管理平台实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Tomcat管理平...
本文小编为大家详细介绍“tomcat虚拟主机怎么配置”,内容详细,步骤清晰,细节处理妥当,希望这篇“tomcat虚拟主机怎么配置”文章能帮助大家解决疑惑,下面跟
今天小编给大家分享一下tomcat相关配置与eclipse集成的方法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家
这篇“Tomcat之web应用的目录组成结构是怎样的”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,
今天小编给大家分享一下tomcat目录映射的方法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大...
这篇“tomcat的环境怎么配置”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文...
环境:tomcat:apache-tomcat-7.0.35 cactiEZ:10.1系统:centos5.6_x64一、配置tomcat服务器1、添加账号vim tomcat-users.xml 重启tomcat2、安装snmp协议yum...
一、 软环下载地址软件链接地址https://files.cnblogs.com/files/jinrf/openssl-1.0.2-latest.tar.gzhttps://files.cnblogs.com/files/jinrf/apr-util-1.6...