tomcat基础配置

Server.xml:

默认配置中:   <Server port="8005" shutdown="SHUTDOWN">告诉tomcat启动server的实例对象时监听8005端口的关闭服务器命令,关闭服务器的命令要包含文本"SHUTDOWN"server节点的属性包括classNamenot necessarydefault is org.apache.catalina.core.StandardServer,port(监听关闭服务器命令的端口,tomcat会检查连接来自本地机器),shutdown(指定关闭服务器命令文本)。Server节点的子节点可以包括:Service(由多个connector和一个engine构成),Linstner(非必须),GlobalNamingResources(非必须)。

       Service节点:Service的主要作用是把处理请求的engine和它配置的处理协议和并发的connectors组合在一起。Service节点的属性包括className(指定Service组件的java类,默认情况下是org.apache.catalina.core.StandardService),name(该service组件的名字,用于输出log等,当一个server中包含多个service组件时,必须要给service命名)。Service节点可以包含的子节点:Connector(至少一个),Engine(一个)。

       Connector节点:在了解Connector节点之前,先要知道tomcat有两种运行的模式,一种是tomcat以独立服务器的形式接收处理包含静态和动态的所有请求,另外一种是tomcat以应用服务器的形式接收请求,在前端安装apacheiisweb 服务器接收静态内容和cgi请求等。以第一种模式启动的tomcat使用tomcat 6内置的http连接器,这个http连接器因为安全和性能等原因不能在生产环境中使用,但是在开发场景下,由于能够很好得支持静态和动态的请求,可以使用。为了提高效率,web servertomcat之间的通信协议不是HTTTP,而是AJP协议。

       在默认的server.xml文件中提供的两个connector,一个是HTTP1.1AJP1.3,对应的配置分别为 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"  redirectPort="8443" /><Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />HTTP1.1Connector接收通过HTTP1.1协议来自浏览器或者web服务的请求并交给Engine处理。AJPConnectortomcat为了接收来自web服务器(apache等)的请求,这种情况下,web服务器处理静态内容的请求,而tomcat则处理jspservlet等动态内容的请求。所以,tomcat提供了支持包括HTTP1.0,HTTP1.1,HTTPS/SSL等协议的HTTP连接器和一个AJP连接器。

       Engine节点:Engine代表了一个处理servlet请求处理器的实例。Engine节点可以包含的子节点包括:classNameengine实例的类名,不必填,默认是org.apache.catalina.core.StandardEngine),backgroundProcessDelay(单位为秒,在这个属性所定义的时间之后,此Engine将进入后台处理。如果该值为负,则直接进入后台处理。后台处理一般用于处理低优先级的任务,不必填,默认为10S)defaultHost(Engine把请求路由给指定的Host,如果找不到Host,则把请求路由给这个defaultHost,必填)jvmRoute(不必须,在tomcat负载均衡时使用),nameEngine的名字,用于输出日志和后台应用管理,必填)。Engine可以包含的子节点为:

子元素

描述

数量

Host

每个<Host>元素都表示一个由Engine支配的虚拟主机(virtual host

1 or more

Context

一组属性-元素的配置集合。在默认的context定义的属性可以被Engine中所有的web应用程序所使用。

0 or 1

Realm

用于身份验证等安全机制,EngineContext都可以由Realm。如果不指定,则使用EngineRealm

0 or 1

Valve

Standard Valve用于登陆日志,请求过滤等

0 or more

Listener

用于tomcat生命周期控制

0 or more

      server.xml文件中,Engine节点之后的配置为<Realm className="org.apache.catalina.realm.UserDatabaseRealm"resourceName="UserDatabase"/>,这个配置声明了一个UserDatabaserealm,它会加载tomcat-user.xml中的内容来做tomcat默认应用的权限控制。

       接着是host节点,它定义了tomcat服务器中的一个虚拟主机,一个host指明了一个请求的目的地,一个Engine中可以包含多个Host虚拟主机。默认的server.xml文件中的配置为:

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false">,再设置另外一个Host

<Host name="localhost2"  appBase="test"

            unpackWARs="true" autoDeploy="true"

            xmlValidation="false" xmlNamespaceAware="false">

            </Host>

只要把应用的war包放在$catalina_home/test目录下,使用localhost:8080/appname/**来访问就可以。

appBase属性指定了该host下的应用放在$catalina_home/webapps目录下。Host节点可以包含的属性包括:

属性

描述

必需?

className

默认为org.

apache.catalina.core.StandardHost

appBase

web应用程序文件存放的位置,相对路径为CATALINA_HOMEM

autoDeploy

设为true,则web.xml发生变化时,tomcat自动重新部署程序。实现这个功能必需允许后台处理

name

virtual host的名称

backgroundProcessingDelay

Engine中的backgroundProcessingDelay类似

deployOnStartup

若为true,则当这个Engine启动时,tomcat将自动部署这个host,默认为true

deployXML

这个属性的目的是为了提高tomcat的安全性,控制web应用程序是否能使用META-INF/contex.xml。如果设为false,则各应用程序只能访问

$CATALINA_HOME/conf/<engine>/<host>/<app>.xml。默认值为True

errorReportValveClass

定义host使用的error-reporting Valve,默认值为

org.apache.catalina.valves.ErrorReportValve

unpackWARs

tomcatwebapps文件夹中发现war文件时,是否自动将其解压

workdir

tomcat使用这个目录来放工作着的servletjsp(以servlet形式),这里面的servlet都是是编译好的class文件。默认为$CATALINA_HOME/work

可以包含的子标签为:

子元素

描述

数量

Context

为了实现服务器配置和应用程序配置的分离,一般不会在server.xml中设置这个标签的内容。所有应用程序的配置都可以在$CATALINA_HOME/conf/<engine>/<host>目录下维护,名称为:应用程序名.xml。程序员可以通过在META-INF目录下维护自己的context.xml,这个context.xml会被自动以应用程序名.xml”放到$CATALINA_HOME/conf/<engine>/<host>

0 or more

DefaultContext

host不知将请求发给哪个context时,就发给它

0 or 1

Realm

这个Host所使用的Realm

0 or 1

Context描述文件:

tomcat6中,web应用程序的具体配置是在$CATALINA_HOME/conf/<engine name>/<host name>目录下的应用程序名.xml”中定义的。在war包(或文件夹)的META-INF中的配置文件叫做嵌入式配置文件(embedded),默认tomcat在部署时使用这些配置文件,管理员可以通过修改deployXML属性来禁止解析这种嵌入式配置文件。

$CATALINA_HOME/conf目录下的context.xmltomcat默认的context.xml文件,tomcat下所有的应用程序都使用这个文件的配置。因为它是公共的,因此里面的内容必须是所有web应用程序通用的,默认的context.xml内容只有一行:

<Context>  

<WatchedResource>WEB-INF/web.xml</WatchedResource>  

</Context>  

       Context可以指定的属性包括:

属性

描述

必需?

className

Contextjava类,默认为org.apache.catalina.core.StandardContext

allowLinking

在像linux这种允许符号链接(symbolic link)的操作系统中,这个选项为True则运行该文件被链接到web应用程序树之外。在windows中,这个选项必需为false。默认值为false

antiJARLocking

使用特殊的类加载器来尽量避免JAR文件的锁定,默认为false

antiResourceLocking

使用特殊方法来尽量避免文件锁定,默认为false

backgroundProcessDelay

同其他backgroundProcessDelay

catcheMaxSize

设置资源缓存(resource cache)的最大值,默认为10240,单位为KB

catcheTTL

验证cache的间隔时间,单位为微秒,默认值为5000

cachingAllowed

决定静态资源(配置文件,图片等)是否可以加载进cache中,默认为true

caseSensitive

决定tocmat是否进行大小写检查,默认为true

cookies

使用cookie来进行session管理,默认为true。如果设为false,则需要使用url重写的方式维护session

crossContext

当使用ServletContext.getContext()方法时,允许同一个virtual host下的程序跨Context访问,默认为false

docBase

在这个Context下运行的web应用程序的文档根目录,通常被称为Context root。如果web应用程序是以war文件的方式部署的,那么这个属性的默认值为webapps/<name of war file>

override

指示本地的context.xmlwar中的META-INF/context.xml)是否可以覆盖全局的context.xmlCATALINA_HOME/conf/context.xml),默认值为false

path

表示web应用程序的context路径。如果你想将这个web应用程序作为此host的默认应用程序,使用这个值:“”;默认值为docBasewar包名,或者应用程序Context文件名

privileged

默认值为false,大部分程序这个值设为false就可以了

processTlds

设置当Context启动时对TLD进行预处理,默认为true

reloadable

默认值为false。设置tocmat是否应该监视/WEB-INF/classes/WEB-INF/lib中的变化,如果有发生改变,则自动重新部署

swallowOutput

默认为false。设置System.outSystem.error的内容是否应该记录到日志文件中

tldNamespacheAware

设置tld的处理和验证是否是namespace-aware,默认为false

unloadDelay

tomcat等待web应用程序卸载的微秒数,默认为2000

unpackWAR

默认为true。设置tomcat自动解压docBase中的war文件。

useNaming

默认为true。给web应用程序创建一个JavaEE-JNDI兼容的
InitialContext
。如果web应用程序使用数据库连接,这个选项是必需的
 

workdir

为在这个host中运行的servlet定义一个工作目录。这个host下的应用程序可以通过javax.servlet.context.tempdir属性来活动这个目录的位置。默认为CATALINA_HOME/work

wrapperClass

设置一个实现了org.apache.catalina.Wrapper接口的类r来包装servlets

Context可以包含的子元素为:

子元素

描述

数量

Loader

配置用于从一个web应用程序中加载类的ClassLoader

0 or 1

Manager

配置Contextsession managerSession Manager创建,维护并保持服务器端的session。通常情况下不需要替换默认配置。

0 or 1

Realm

这个Context中运行的web应用程序使用的Realm

0 or 1

Resources

用于获取resource。使用实现org.apache.naming.resources.FileDirContext接口的类来实现。

0 or 1

WatchedResource

当特定的资源发生改变时,用于通知AutoDeployerweb应用程序进行重新部署

0 or 1

Tomcat-user.xml:用于给tomcat的管理工具做权限验证。在tomcat中,用户只有被赋了manager权限才能访问manager应用程序。

Web.xml:在servlet2.5规范中,所有的应用程序在WEB-INF目录下都必须有一个web.xml文件用与应用程序的部署描述。在CATALINA_HOME/CONF下的web.xml文件为所有应用配置共有的默认属性。

以下的配置指定了名为defaultservlettomcat以独立服务器的模式启动时处理静态文件,并且提供目录展示:

   <servlet>

        <servlet-name>default</servlet-name>

        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>

        <init-param>

            <param-name>debug</param-name>

            <param-value>0</param-value>

        </init-param>

        <init-param>

            <param-name>listings</param-name>

            <param-value>false</param-value>

        </init-param>

        <load-on-startup>1</load-on-startup>

    </servlet>

Listings设置为false表示不支持目录结构的显示,设置为true时,可以想apache一样访问应用的文件和目录结构(应用的WEB-INF目录除外)。

配置一个invoker servlet可以用于直接访问servlet,也就是说可以访问web.xml文件中没有配置mappingservlet

    <servlet>

        <servlet-name>invoker</servlet-name>

        <servlet-class>

          org.apache.catalina.servlets.InvokerServlet

        </servlet-class>

        <init-param>

            <param-name>debug</param-name>

            <param-value>0</param-value>

        </init-param>

        <load-on-startup>2</load-on-startup>

    </servlet>

JspServlet配置,jspServlet用于解析jspservlet

    <servlet>

        <servlet-name>jsp</servlet-name>

        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>

        <init-param>

            <param-name>fork</param-name>

            <param-value>false</param-value>

        </init-param>

        <init-param>

            <param-name>xpoweredBy</param-name>

            <param-value>false</param-value>

        </init-param>

        <load-on-startup>3</load-on-startup>

    </servlet>

Jspservlet还可以配置的参数包括:

参数

描述

development

默认值为true,说明jsp文件还处于开发阶段,因此Jasper应该按modificationTestInterval参数对jsp文件进行检查,当jsp发生更改时,则对其进行重编译

fork

默认值为true。指示使用不同的JVM编译JSP,这样可以消除资源竞争和在开发阶段的类加载器冲突

checkInterval

单位为秒,规定Jasper按这个时间间隔检查jsp是否需要重编译,默认为0,指示使用后台程序处理

modificationTestInterval

主要在developmenttrue时发挥作用,默认值为4Jasper将按这个频率检查jsp文件是否可以验证是否修改过。

compiler

读取资源时使用的缓存大小,默认为2KB

classdebuginfo

写资源时使用的缓存大小,默认为2KB

keepgenerated

默认值为true。指示Jasper在两次调用servlet之间在工作目录中保留那个servlet,这样可以大大提高tomcat的效率

mappedfilegenStrAsCharArray
dumpSmaptrimSpaces
supressSmap

这些是jsp开发者使用的优化和调试选项。

scratchDir

Jasper在编译jsp时使用的临时文件夹,默认为$CATALINA_HOME/work下的一个临时文件夹

xpoweredBy

默认为false。功能为生成X-Power-By头(header

compilerTargetVM

编译生成的servlet的目标VM

compilerSourceVM

生成servlet的源VM

以下的url mapping配置指定了相应的url将触发的先前配置过的不同servlet

    <servlet-mapping>

        <servlet-name>default</servlet-name>

        <url-pattern>/</url-pattern>

    </servlet-mapping>

    <servlet-mapping>

        <servlet-name>invoker</servlet-name>

        <url-pattern>/servlet/*</url-pattern>

    </servlet-mapping>

    <servlet-mapping>

        <servlet-name>jsp</servlet-name>

        <url-pattern>*.jsp</url-pattern>

    </servlet-mapping>

    <servlet-mapping>

        <servlet-name>jsp</servlet-name>

        <url-pattern>*.jspx</url-pattern>

</servlet-mapping>

先前配置的Invoker servlet,需要在本处指定url-pattern才可以访问到,因为默认情况下,invoker servlet相关的配置由于安全原因是被注释掉的。

接下来的是session超时的配置:

    <session-config>

        <session-timeout>30</session-timeout>

    </session-config>

它指定了服务器端维持session的时间,在session没有被持久化的情况下,网站管理员需要在session消失导致服务器超载的可能和存储过多的session之间做平衡。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
配置IDEA中的Tomcat,您可以按照以下步骤进行操作: 1. 首先,您需要下载Tomcat。您可以访问Tomcat官方网站,然后选择您需要的Tomcat版本进行下载。 2. 下载完成后,解压缩Tomcat文件夹到您的计算机上的目标位置。 3. 打开IDEA,并转到“File”菜单,然后选择“Settings”选项。 4. 在“Settings”对话框中,选择“Build, Execution, Deployment”类别下的“Application Servers”选项。 5. 在右侧窗格中,点击“+”按钮来添加一个新的Tomcat服务器。 6. 在弹出的对话框中,选择“Tomcat Server”并点击“Next”。 7. 在“Tomcat Home”字段中,选择您之前解压缩的Tomcat文件夹的路径。 8. 在“Tomcat base directory”字段中,选择一个目录作为Tomcat服务器基础目录。 9. 在“Application server”字段中,选择您的Tomcat服务器版本。 10. 点击“Next”并在下一个对话框中为您的Tomcat服务器指定名称和端口号。 11. 点击“Finish”完成Tomcat服务器配置。 12. 现在,您可以在IDEA中创建或导入您的项目,并将其部署到配置好的Tomcat服务器上。 总结: 1. 下载并解压缩Tomcat。 2. 在IDEA中打开“Settings”对话框。 3. 在“Application Servers”中添加一个新的Tomcat服务器。 4. 配置Tomcat服务器的路径和版本。 5. 完成配置后,可以将项目部署到Tomcat服务器上。 希望这些步骤对您有所帮助!如果您还有其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值