`

Tomcat初识

阅读更多

1、了解tomcat
Tomcat不是一个完整意义上的Jave EE(j2ee)服务器,因为它没有提供完整的Java EE企业应用平台的API。但是由于Tomcat遵循apache开源协议,并且对当前Java开发框架开源组件Structs、Spring和Hibernate等实现完美支持,因此tomcat被众多企业用来部署配置众多的Java应用程序,实现替代一些商业的Java应用服务器。

2、Tomcat的目录结构
要部署使用tomcat,则必须了解tomcat的目录结构以及各目录的作用。这里以tomcat7为例。
进入tomcat安装目录下:
|-- bin
|   |-- bootstrap.jartomcat启动时所依赖的一个类,在启动tomcat时会发现Using CLASSPATH: 是加载的这个类
|   |-- catalina-tasks.xml定义tomcat载入的库文件,类文件
|   |-- catalina.bat
|   |-- catalina.sh                 tomcat单个实例在Linux平台上的启动脚本
|   |-- commons-daemon-native.tar.gz           jsvc工具,可以使tomcat已守护进程方式运行,需单独编译安装
|   |-- commons-daemon.jar           jsvc工具所依赖的java类
|   |-- configtest.bat
|   |-- configtest.sh        tomcat检查配置文件语法是否正确的Linux平台脚本
|   |-- cpappend.bat
|   |-- daemon.shtomcat已守护进程方式运行时的,启动,停止脚本
|   |-- digest.bat
|   |-- digest.sh
|   |-- setclasspath.bat
|   |-- setclasspath.sh
|   |-- shutdown.bat
|   |-- shutdown.shtomcat服务在Linux平台下关闭脚本
|   |-- startup.bat
|   |-- startup.sh         tomcat服务在Linux平台下启动脚本
|   |-- tomcat-juli.jar
|   |-- tomcat-native.tar.gz 使tomcat可以使用apache的apr运行库,以增强tomcat的性能需单独编译安装
|   |-- tool-wrapper.bat
|   |-- tool-wrapper.sh
|   |-- version.bat
|   `-- version.sh 查看tomcat以及JVM的版本信息
|-- conf               顾名思义,配置文件目录
|   |-- catalina.policy配置tomcat对文件系统中目录或文件的读、写执行等权限,及对一些内存,session等的管理权限
|   |-- catalina.properties配置tomcat的classpath等
|   |-- context.xmltomcat的默认context容器
|   |-- logging.properties配置tomcat的日志输出方式
|   |-- server.xml       tomcat的主配置文件
|   |-- tomcat-users.xml       tomcat的角色(授权用户)配置文件
|   `-- web.xmltomcat的应用程序的部署描述符文件
|-- lib
|-- logs日志文件默认存放目录
|-- temp
|   `-- safeToDelete.tmp
|-- webapps          tomcat默认存放应用程序的目录,好比apache的默认网页存放路径是/var/www/html一样
|   |-- docstomcat文档
|   |-- examples                     tomcat自带的一个独立的web应用程序例子
|   |-- host-manager              tomcat的主机管理应用程序
|   | |-- META-INF          整个应用程序的入口,用来描述jar文件的信息
|   | |   `-- context.xml     当前应用程序的context容器配置,它会覆盖tomcat/conf/context.xml中的配置
|   | |-- WEB-INF 用于存放当前应用程序的私有资源
|   | | |-- classes 用于存放当前应用程序所需要的class文件
|   | | |-- lib         用于存放当前应用程序锁需要的jar文件
|   | |   `-- web.xml当前应用程序的部署描述符文件,定义应用程序所要加载的serverlet类,以及该程序是如何部署的
|   |-- manager                  tomcat的管理应用程序
|   |-- ROOT             指tomcat的应用程序的根,如果应用程序部署在ROOT中,则可直接通过http://ip:port 访问到
`-- work用于存放JSP应用程序在部署时编译后产生的class文件
3、了解tomcat的主配置文件(server.xml)结构及含义
如下图所示,前端请求被tomcat直接接收或者由前端的代理,通过HTTP,或者AJP代理给Tomcat,此时请求被tomcat中的connector接收,不同的connector和Engine被service组件关联起来,在一个Engine中定义了许多的虚拟主机,由Host容器定义,每一个Host容器代表一个主机,在各自的Host中,又可以定义多个Context,用此来定义一个虚拟主机中的多个独立的应用程序。

4、单实例应用程序配置一例
Java代码  收藏代码
规划:  
网站网页目录:/web/www      域名:www.test1.com  
论坛网页目录:/web/bbs     URL:bbs.test1.com/bbs  
网站管理程序:$CATALINA_HOME/wabapps   URL:manager.test.com    允许访问地址:172.23.136.*  
  
conf/server.xml  
<Server port="8005" shutdown="SHUTDOWN">  
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />  
  <Listener className="org.apache.catalina.core.JasperListener" />  
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />  
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />  
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />  
  <GlobalNamingResources>  
  <!-- 全局命名资源,来定义一些外部访问资源,其作用是为所有引擎应用程序所引用的外部资源的定义 --!>  
    <Resource name="UserDatabase" auth="Container"  
              type="org.apache.catalina.UserDatabase"  
              description="User database that can be updated and saved"  
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"  
              pathname="conf/tomcat-users.xml" />  
  </GlobalNamingResources>  
  <!-- 定义的一个名叫“UserDatabase”的认证资源,将conf/tomcat-users.xml加载至内存中,在需要认证的时候到内存中进行认证 -->  
  <Service name="Catalina">  
  <!-- # 定义Service组件,同来关联Connector和Engine,一个Engine可以对应多个Connector,每个Service中只能一个Engine --!>  
    <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />  
    <!-- 修改HTTP/1.1的Connector监听端口为80.客户端通过浏览器访问的请求,只能通过HTTP传递给tomcat。  -->  
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />  
    <Engine name="Catalina" defaultHost="test.com">  
    <!-- 修改当前Engine,默认主机是,www.test.com  -->  
    <Realm className="org.apache.catalina.realm.LockOutRealm">  
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"  
               resourceName="UserDatabase"/>  
    </Realm>  
    # Realm组件,定义对当前容器内的应用程序访问的认证,通过外部资源UserDatabase进行认证  
      <Host name="test.com"  appBase="/web" unpackWARs="true" autoDeploy="true">  
      <!--  定义一个主机,域名为:test.com,应用程序的目录是/web,设置自动部署,自动解压    -->  
        <Alias>www.test.com</Alias>  
        <!--    定义一个别名www.test.com,类似apache的ServerAlias -->  
        <Context path="" docBase="www/" reloadable="true" />  
        <!--    定义该应用程序,访问路径"",即访问www.test.com即可访问,网页目录为:相对于appBase下的www/,即/web/www,并且当该应用程序下web.xml或者类等有相关变化时,自动重载当前配置,即不用重启tomcat使部署的新应用程序生效  -->  
        <Context path="/bbs" docBase="/web/bbs" reloadable="true" />  
        <!--  定义另外一个独立的应用程序,访问路径为:www.test.com/bbs,该应用程序网页目录为/web/bbs   -->  
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/web/www/logs"  
               prefix="www_access." suffix=".log"  
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />  
        <!--   定义一个Valve组件,用来记录tomcat的访问日志,日志存放目录为:/web/www/logs如果定义为相对路径则是相当于$CATALINA_HOME,并非相对于appBase,这个要注意。定义日志文件前缀为www_access.并以.log结尾,pattern定义日志内容格式,具体字段表示可以查看tomcat官方文档   -->  
      </Host>  
      <Host name="manager.test.com" appBase="webapps" unpackWARs="true" autoDeploy="true">  
      <!--   定义一个主机名为man.test.com,应用程序目录是$CATALINA_HOME/webapps,自动解压,自动部署   -->  
        <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="172.23.136.*" />  
        <!--   定义远程地址访问策略,仅允许172.23.136.*网段访问该主机,其他的将被拒绝访问  -->  
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/web/bbs/logs"  
               prefix="bbs_access." suffix=".log"  
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />  
        <!--   定义该主机的访问日志      -->  
      </Host>  
    </Engine>  
  </Service>  
</Server>  
  
conf/tomcat-users.xml  
<?xml version='1.0' encoding='utf-8'?>  
<tomcat-users>  
  <role rolename="manager-gui" />  
  <!--  定义一种角色名为:manager-gui    -->  
  <user username="cz" password="manager$!!110" roles="manager-gui" />  
  <!--  定义一个用户的用户名以及密码,并赋予manager-gui的角色    -->  
</tomcat-users>  

 

分享到:
评论

相关推荐

    Tomcat应用部署及nginx+tomcat实现动静分离项目

    一、初识Tomcat; 二、Tomcat与jdk的关系; 三、Tomcat内部工作原理; 四、Tomcat配置文件详解; 五、案例:搭建Tomcat案例;

    初识Tomcat+Axis2+Eclipse的web service 开发

    NULL 博文链接:https://shwan.iteye.com/blog/255446

    《初识Java微信公众号开发》源码

    《初识Java微信公众号开发》 http://www.imooc.com/learn/368 附件是整理的源码编译没有错误。 环境说明:tomcat8.5、jdk1.8、dom4j-1.6.1、XStream-1.4.9 程序总是报错“org.xmlpull.v1.XmlPullParserException”,...

    初识SpringMVC以及springmvc基本应用入门案例彩色PPT版本.pptx

    设置tomcat服务器,加载web工程(tomcat插件) 导入坐标(Servlet) 定义处理请求的功能类(UserServlet) 设置请求映射(配置映射关系) 使用SpringMVC技术开发web程序流程 创建web工程(Maven结构) 设置tomcat...

    第2章 初识J2EE ppt

    Tomcat服务器的安装与配置 EasyEclipse开发工具的配置 创建JSP页面及其发布浏览的方法

    CH01-初识SpringBoot.pptx

    SpringBoot的优点? 创建独立的 Spring 应用...嵌入的 Tomcat,无需部署 WAR 文件 简化 Maven 配置 自动配置 Spring 提供生产就绪型功能,如指标,健康检查和外部配置 开箱即用,没有代码生成,也无需 XML 配置。

    Linux运维从入门到高级全套案例v3.rar

    2.1.1 Linux目录初识 2.1.2 Linux常用命令 2.1.3 Linux用户权限 2.1.4Limx网络配置 3. Linux服务篇 Linux服务部署 3.1.1构建NTP时间服务器 3.1.2构建DHCP服务器 3.1.3搭建 Samba服务器 3.1.4搭建NFS服务器 3.1.5搭建...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e...

    Struts2入门教程(全新完整版)

    5.tomcat认证访问 10 6.初识拦截器 11 7.Action中的method属性 12 8.使用ForwardAction实现页面屏蔽。 13 8.使用default-Action配置统一访问 14 小结Action 14 9.使用通配符 14 10.使用0配置:ZERO Annotation 15 11...

    基于j2ee的ajax宝典

    第1部分 初识Ajax······ 1 第1章 Ajax入门··········· 2 1.1 重新思考Web应用····· 2 1.1.1 应用系统的发展史············· 2 1.1.2 传统Web应用的优势和缺点·········...

    低清版 大型门户网站是这样炼成的.pdf

    1.2.5 支持集群功能的web服务器tomcat 21 1.2.6 开源数据库服务器之骄子mysql 23 1.2.7 功能强大的flv流媒体服务器red5 24 1.3 门户网站开发指导思想 26 1.4 ssh 2组合框架—门户网站开发之首选 28 1.4.1 mvc...

    JAVA程序开发大全---上半部分

    第1章 初识MyEclipse 1 1.1 MyEclipse简介 1 1.2 MyEclipse的安装 1 1.2.1 JDK的安装与配置 1 1.2.2 MyEclipse 7.0的安装和运行 4 1.3 获取和阅读MyEclipse帮助文档 5 1.4 本章小结 5 第2章 MyEclipse集成开发环境的...

    韩顺平sevlet,jsp视频教程知识点.txt

    韩顺平_j2ee视频实战教程servlet第1讲初识.wmv 视频描述: 我们将通过完成一个用户管理系统来讲解Servlet , 该项目用纯servlet来完成,是一个很好的练习servlet技术的案例.该项目的操作人员有两类:管理员 可以对...

    Activiti6.0教程例子下载

    1. 初识Activiti 1.1. 工作流与工作流引擎 工作流(workflow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。它主要解决的是“使在...

    大数据培训课程安排.pdf

    第五阶段: 初识⼤数据 1. 难易程度:三颗星 2. 课时量(技术知识点+阶段项⽬任务+综合能⼒):80课时 3. 主要技术包括:⼤数据前篇(什么是⼤数据,应⽤场景,如何学习⼤数据库,虚拟机概念和安装等)、Linux常见...

    Linux简明教程.rar

    三、初识shell---------------------------------------------------------------------------------------- 命令行工具---------------------------------------------------------------------------------------...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    他还撰写了深入揭示Tomcat工作机理和设计理念的名著How Tomcat Works,并在多种权威出版物上发表过100多篇文章。 目录 第1章 Model 2应用程序 1 1.1 Model 2概览 1 1.2 带servlet控制器的Model 2 2 1.2.1 Product...

Global site tag (gtag.js) - Google Analytics