`
water84222
  • 浏览: 375448 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Tomcat简介

阅读更多

1.Tomcat简介

   Jakarta Tomcat服务器是一种Servlet/JSP容器,经历了3.x到4.0.x到4.1.x的变迁,现在最新的版本为5.0.x,支持 Servlet2.4和JSP2.0规范.安装Tomcat之前必须安装JDK,并在环境变量中设置JAVA_HOME变量。这样Tomcat就可以启动 了。

2.文件构成

安装后的Tomcat文件构成如下图所示:

 

2.1首先介绍Java类库的存放位置,有三个:分别是/server/lib、/shared/lib和/common/lib。

三 个位置的区别:/server/lib下的Jar文件只能被Tomcat服务器自身访问;/shared/lib下的jar文件及类只能被部署在 Tomcat中的所有Web应用访问,不能被Tomcat服务器本身访问;/common/lib下的Jar文件及类既能被部署在Tomcat中的所有 Web应用访问,也能被Tomcat服务器本身访问。

此外某个Web应用下的Web-inf/lib下的Jar文件只能被该Web应用访问。

2.2类的加载顺序

(1).最先是$JAVA_HOME/jre/lib/ext/下的jar文件。

(2).环境变量CLASSPATH中的jar和class文件。

(3).$CATALINA_HOME/common/classes下的class文件。

(4).$CATALINA_HOME/commons/endorsed下的jar文件。

(5).$CATALINA_HOME/commons/i18n下的jar文件。

(6).$CATALINA_HOME/common/lib 下的jar文件。
(JDBC驱动之类的jar文件可以放在这里,这样就可以避免在server.xml配置好数据源却出现找不到JDBC Driver的情况。)
(7).$CATALINA_HOME/server/classes下的class文件。

(8).$CATALINA_HOME/server/lib/下的jar文件。

(9).$CATALINA_BASE/shared/classes 下的class文件。

(10).$CATALINA_BASE/shared/lib下的jar文件。

(11).各自具体的webapp /WEB-INF/classes下的class文件。

(12).各自具体的webapp /WEB-INF/lib下的jar文件。

2.3 admin应用和manager应用

这 是Tomcat中自带的两个Web应用,位于<%CATALINA_HOME%>/server/webapps/admin (manager),访问地址是http://localhsot:8080/admin(manager)。要访问这两个Web应用,需要在
<%CATALINA_HOME%>/conf/tomcat-users.xml中添加如下内容:
<user username="admin" password="1234" role="admin"/>           //对应admin Web应用
<user username="manager" password="1234" role="manager"/>   //对应manager Web应用

admin应用- 把所有可配置的信息分为三类:Tomcat Server、Resources、User Definition。
Tomcat Server-相当于server.xml中的<Server>元素及其子元素,<Service>、< Host>、<Context>、<Resources>、<Date Source>。
Resources -相当于server.xml中的<GlobalNamingResources>,共有四种资源:Date Source(JNDI数据源)、Mail Sessioin(JNDI Mail Session资源)、Environment Entry(环境变量)、User Database(安全域中的用户数据库)。
User Definition-与tomcat-users.xml相对应。

manager应用 -列出来所有Web应用和状态,并提供了Start、Stop、Reload、 Undeploy命令,还可以发布
<%CATALINA_HOME%>/webapps目录下的Web应用或系统文件任意位置的WAR文件。

3. 相关配置

Tomcat里面常修改的配置文件有两个Server.xml和Web.xml。

3.1 Server.xml--文件位置是<%CATALINA_HOME%>/conf/server.xml。该文件配置整个Tomcat服务器,其包含的各个域说明如下所示:

<Server>元素 每个Service元素只能有一个Engine元素.元素处理在同一个<Service>中所有<Connector>元素接收到的客户请求.由org.apahce.catalina.Engine接口定义.

<Engine name="Catalina" defaultHost="localhost" debug="0">

1>className指定实现Engine接口的类,默认值为StandardEngine
2>defaultHost指定处理客户的默认主机名,在<Engine>中的<Host>子元素中必须定义这一主机
3>name定义Engine的名字

在<Engine>可以包含如下元素<Logger>, <Realm>, <Value>, <Host>

 <Host>元素 由Host接口定义.一个Engine元素可以包含多个<Host>元素.每个<Host>的元素定义了一个虚拟主机.它包含了一个或多个Web应用.

  <Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true">

1>className指定实现Host接口的类.默认值为StandardHost
2>appBase指定虚拟主机的目录,可以指定绝对目录,也可以指定相对于<CATALINA_HOME>的相对目录.如果没有此项,默认为<CATALINA_HOME>/webapps
3>autoDeploy如果此项设为true,表示Tomcat服务处于运行状态时,能够监测appBase下的文件,如果有新有web应用加入进来,会自运发布这个WEB应用
4>unpackWARs如果此项设置为true,表示把WEB应用的WAR文件先展开为开放目录结构后再运行.如果设为false将直接运行为WAR文件
5>alias指定主机别名,可以指定多个别名
6> deployOnStartup如果此项设为true,表示Tomcat服务器启动时会自动发布appBase目录下所有的Web应用.如果Web应用中 的server.xml没有相应的<Context>元素,将采用Tomcat默认的Context
7>name定义虚拟主机的名字

在<Host>元素中可以包含如下子元素<Logger>, <Realm>, <Value>, <Context>

<Context>元素 由Context 接口定义.是使用最频繁的元素.每个<Context元素代表了运行在虚拟主机上的单个Web应用.一个<Host>可以包含多个 <Context>元素.每个web应用有唯一的一个相对应的Context代表web应用自身.servlet容器为第一个web应用创建 一个ServletContext对象.

<Context path="/sample" docBase="sample" debug="0" reloadbale="true">

1>className指定实现Context的类,默认为StandardContext类
2>path指定访问Web应用的URL入口,注意/myweb,而不是myweb了事
3>reloadable如果这个属性设为true, Tomcat服务器在运行状态下会监视在WEB-INF/classes和Web-INF/lib目录CLASS文件的改运.如果监视到有class文件被更新,服务器自重新加载Web应用
3>cookies指定是否通过Cookies来支持Session,默认值为true
4>useNaming指定是否支持JNDI,默认值为了true


在<Context>元素中可以包含如下元素<Logger>, <Realm>, <Resource>, <ResourceParams>

Connector元素 由Connector接口定义.<Connector>元素代表与客户程序实际交互的给件,它负责接收客户请求,以及向客户返回响应结果.

<Connector port="8080" maxThread="50" minSpareThreads="25" maxSpareThread="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" />

<Connection port="8009" enableLookups="false" redirectPort="8443" debug="0" protocol="AJP/1.3" />

第一个Connector元素定义了一个HTTP Connector,它通过8080端口接收HTTP请求;第二个Connector元素定义了一个JD Connector,它通过8009端口接收由其它服务器转发过来的请求.

Connector元素共用属性
1>className指定实现Connector接口的类
2>enableLookups如果设为true,表示支持域名解析,可以把IP地址解析为主机名.WEB应用中调用request.getRemoteHost方法返回客户机主机名.默认值为true
3>redirectPort指定转发端口.如果当前端口只支持non-SSL请求,在需要安全通信的场命,将把客户请求转发至SSL的redirectPort端口
HttpConnector元素的属性
1>className实现Connector的类
2>port设定Tcp/IP端口,默认值为8080,如果把8080改成80,则只要输入http://localhost 即可
因为TCP/IP的默认端口是80
3>address如果服务器有二个以上ip地址,此属性可以设定端口监听的ip地址.默认情况下,端口会监听服务器上所有的ip地址
4>bufferSize设定由端口创建的输入流的缓存大小.默认值为2048byte
5>protocol设定Http协议,默认值为HTTP/1.1
6>maxThreads设定在监听端口的线程的最大数目,这个值也决定了服务器可以同时响应客户请求的最大数目.默认值为200
7>acceptCount设定在监听端口队列的最大客户请求数量,默认值为10.如果队列已满,客户必须等待.
8>connectionTimeout定义建立客户连接超时的时间.如果为-1,表示不限制建立客户连接的时间
JkConnector的属性
1>className实现Connector的类
2>port设定AJP端口号
3>protocol必须设定为AJP/1.3

3.2 Web.xml--文件位置是webapps/Web应用/WEB-INF/Web.xml。该文件是Web应用部署描述文件,用于配置其发布信息,主要配置以下内容:

(1)Servlet的定义

(2)Servlet的初始化参数

(3)servlet及jsp的映射

(4)welcome文件清单

(5)资源引用(如数据源引用)

(6)环境变量的定义

3.3 Tomcat中JNDI数据源的配置

(1).  在<%CATALINA_HOME%>/conf/server.xml中加入注意DBTest为你的webapp目录:

<Context path="/DBTest" docBase="/DBTest" debug="0" reloadable="true" crossContext="true">  
        <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"/>
     <ResourceParams name="jdbc/TestDB">
       <parameter>
         <name>factory</name>
         <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
       </parameter>
       <parameter>
         <name>maxActive</name>
         <value>100</value>
       </parameter>
       <parameter>
         <name>maxIdle</name>
         <value>30</value>
       </parameter>
       <parameter>
         <name>maxWait</name>
         <value>10000</value>
       </parameter>
       <parameter>
        <name>username</name>
        <value>sa</value>
       </parameter>
       <parameter>
        <name>password</name>
        <value>cugb201201</value>
       </parameter>
       <parameter>
          <name>driverClassName</name>
          <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
       </parameter>
       <parameter>
         <name>url</name>
         <value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=TestDB1</value>
       </parameter>
     </ResourceParams>
    </Context>

(2)在webapp\WEB-INF\web.xml中加入<resource-ref>元素:

<resource-ref>

<res-ref-name>jdbc/TestDB</res-ref-name>

    <res-type>javax.sql.DataSource</res-type>

    <res-auth>Container</res-auth>

    <res-sharing-scope>Shareable</res-sharing-scope>

  </resource-ref>

(3)本代码以sqlServer为例说明,需要将其相关的jdbc驱动程序拷贝到<CATALINA_HOME>/common/lib目录下.

(4)在程序中通过连接池取得数据库连接:

try{

        Context ctx = new InitialContext();

               if(ctx == null)

                      throw new Exception("no Context!");

               ds = (DataSource)ctx.lookup("java:comp/env/jdbc/TestDB");

}

catch(Exception e){

        System.out.println(e.getMessage());

}


分享到:
评论

相关推荐

    Tomcat简介(PPT)

    ### Tomcat简介及工作原理 #### 一、Tomcat概述 Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个开源的轻量级Web应用服务器,主要用于部署和运行基于Java的Web应用程序。它作为Servlet容器之一,能够支持...

    tomcat简介和用法

    Tomcat是一款广泛使用的开源Web应用服务器,主要作为Servlet和JSP容器。它是Apache软件基金会Jakarta项目的一个核心组件,被JavaWorld杂志评为2001年最具创新的Java产品,并得到了Sun Microsystems的官方推荐。...

    tomcat安全加固手册

    #### 一、Tomcat简介与重要性 Tomcat作为Apache软件基金会(Apache Software Foundation)Jakarta项目的核心组件之一,由Apache、Sun及其他多个机构和个人共同开发完成。得益于Sun公司的积极参与和支持,Tomcat能够...

    tomcat工具

    1. Tomcat简介: Tomcat是符合Java Servlet和JavaServer Pages(JSP)规范的应用服务器,它是基于Java的开源软件,主要用于处理动态网页内容。Tomcat不仅免费,而且易于配置和管理,因此在小型项目或开发环境中特别...

    Linux版本 tomcat 8.5.78 下载

    **一、Tomcat简介** Tomcat是按照Java Servlet和JavaServer Pages(JSP)规范运行的,它是轻量级应用服务器,能够处理HTTP协议。Tomcat与Apache HTTP Server不同,后者是一个完整的Web服务器,而Tomcat专注于Servlet...

    apache-tomcat-8.0.44

    1. **Tomcat简介**:Tomcat作为一个轻量级的Web服务器,其设计目标主要是为了提供一个小型、高效的Java Web应用服务器,用于开发和部署简单的Web应用程序。Tomcat的核心功能包括处理HTTP请求,解析HTTP协议,以及...

    BBS+tomcat

    本项目提供的"BBS+tomcat"是一个基于Java的简单BBS论坛系统,利用Tomcat作为应用服务器运行。 **一、BBS系统核心功能** 1. **用户注册与登录**:BBS系统允许新用户注册,注册时通常需要填写用户名、密码、电子邮件...

    apache-tomcat-8.5.35

    1. **Apache Tomcat简介** Apache Tomcat 是Apache软件基金会的一个项目,它是一个轻量级的Java应用服务器,主要用于部署和运行Java Web应用程序,如JSP和Servlet。Tomcat以其小巧、高效和开源的特点赢得了开发者们...

    Tomcat服务器配置 视频教程 Tomcat视频

    1. **Tomcat简介**:Tomcat是一个开源的、轻量级的Java Servlet容器,用于运行Java Web应用程序,特别是基于Java EE的JSP和Servlet。它由Apache软件基金会维护,是许多Web开发者的首选服务器。 2. **安装与环境配置...

    tomcat9.0.85可用版本压缩包

    1. **Tomcat简介**: Tomcat是由Apache Software Foundation维护的开源项目,它是Java Servlet和JavaServer Pages技术的标准实现。Tomcat服务器是一个轻量级应用服务器,特别适合小型到中型的Java Web应用。 2. **...

    tomcat-8.5.54.zip

    1. **Tomcat简介** Tomcat是Apache软件基金会Jakarta项目的一部分,遵循Apache Software License 2.0发布。它的主要功能是解析并执行Java Servlet和JavaServer Pages(JSP),提供了一个运行Java Web应用程序的平台...

    TOMCAT权威指南.pdf

    1. **Tomcat简介**:Apache Tomcat是一个轻量级的Java EE Web应用服务器,主要负责执行Java Servlet和JavaServer Pages(JSP)技术。它的设计目标是简单且快速,使得开发者能够便捷地搭建和运行Java Web应用。 2. *...

    apache-tomcat-7.0.34 安装版tomcat7

    **一、Tomcat简介** Tomcat是由Apache Software Foundation开发的轻量级Web应用服务器,它主要处理Java Servlet和JSP技术。与其他全功能的Java应用服务器如JBoss或WebLogic相比,Tomcat的体积小、性能高,适合小型到...

    apache-tomcat-7.0.34

    1. **Tomcat简介**:Tomcat是由Apache软件基金会开发的轻量级Web服务器,它主要负责处理HTTP协议。作为Servlet和JSP容器,Tomcat能够运行基于Java技术的Web应用程序。 2. **版本7.0**:Tomcat 7.0是2010年发布的,...

    apache-tomcat-8.5.99-windows-x64.zip

    Apache Tomcat 简介** Apache Tomcat 是一个轻量级的Web服务器和应用服务器,由Apache软件基金会开发并维护。它实现了Java EE的Web部分,特别是Servlet和JSP规范。Tomcat以其高效、稳定和易于管理的特性,成为了...

    官方原版tomcat8.5.19 64位

    1. **Tomcat简介** Tomcat由Apache软件基金会开发,是Java EE(现在称为Jakarta EE)的一部分,主要负责Servlet和JSP的执行。作为轻量级应用服务器,Tomcat相比其他如JBoss、WebLogic等重量级服务器,具有更小的...

    tomcat8.5

    1. **Tomcat简介** - Tomcat是一个轻量级的应用服务器,主要处理Java Web应用,包括Servlet和JSP。 - 它遵循Java EE的Web容器规范,但不包含完整的应用服务器功能,如EJB(Enterprise JavaBeans)支持。 2. **...

    apache-tomcat-8.5.47-windows-x64.zip

    1. **Apache Tomcat简介** Apache Tomcat是Apache软件基金会的一个项目,它是一个轻量级的Java应用服务器,实现了Java EE的Web容器部分,特别是Servlet和JSP规范。Tomcat以其高效、稳定性和易于管理而受到开发者...

    两小时精通Tomcat

    一、Tomcat简介 Tomcat是基于Java的Web应用服务器,支持Servlet和JSP规范,是Java EE(现在称为Jakarta EE)的一部分。它轻量级、易于安装和管理,因此在许多小型项目和开发环境中受到青睐。 二、Tomcat安装与配置 ...

Global site tag (gtag.js) - Google Analytics