Tomcat 简介之【服务器配置】

5 篇文章 0 订阅
3 篇文章 0 订阅

三、配置Tomcat服务器

 

1、概述

   

Tomcat为用户提供了一系列的配置文件来帮助用户配置自己的Tomcat,Tomcat的配置文件主要是基于XML的;如server.xml、web.xml等,下面将详细讨论Tomcat的主要配置文件以及如何利用这些配置文件解决常见问题。

 

2server.xml 主配置文件

 

server.xml是Tomcat的主配置文件,主要完成如下两个目标:

ü 提供Tomcat组件的初始配置;

ü 说明Tomcat的结构,含义,使得Tomcat通过实例化组件完成起动及构建自身。

观察server.xml,可以发现其中有如下的一些元素。

 

(1)Server元素:

 

Server元素是server.xml文件的最高级别的元素, Server元素描述一个Tomcat服务器,一般来说用户不用关心这个元素。一个Server元素一般会包括Logger和ContextManager两个元素

ü  Logger:Logger元素定义了一个日志对象,一个日志对象包含有如下属性:

1) name:表示这个日志对象的名称。

2) path:表示这个日志对象包含的日志内容要输出到哪一个日志文件。

3) verbosityLevel:表示这个日志文件记录的日志的级别。

一般来说,Logger对象是对Java Servlet、JSP和Tomcat运行期事件的记录

ü  ContextManager:ContextManager定义了一组ContextInterceptors(ContextManager的事件监听器) , RequestInterceptors(的事件监听器)、Contexts(Web应用程序的上下文目录)和它们的Connectors(连接器)的结构和配置。ContextManager包含如下一些属性:

1) debug:记录日志记录调试信息的等级。

2) home:webapps /、conf /、logs /和所有Context的根目录信息。这个属性的作用是从一个不同于TOMCAT _ HOME的目录启动Tomcat。

3) workDir:Tomcat工作目录。

ContextInterceptor 和RequestInterceptors两者都是监听ContextManager的特定事件的拦截器。ContextInterceptor监听Tomcat的启动和结束事件信息。而RequestInterceptors监听用户对服务器发出的请求信息。一般用户无需关心这些拦截器,对于开发人员需要了解这就是全局性的操作得以实现的方法

 

(2)Connector元素:

 

Connector(连接器)元素描述了一个到用户的连接,不管是直接由Tomcat到用户的浏览器还是通过一个Web服务器。Tomcat的工作进程和由不同的用户建立的连接传来的读/写信息和请求/答复信息都是由连接器对象管理的。对连接器对象的配置中应当包含管理类、TCP/IP端口等内容。

 

(3)Context元素:

 

每一个Context都描述了一个Tomcat的Web应用程序的目录。这个对象包含以下属性:

1)docBase。这是Context的目录。可以是绝对目录也可以是基于ContextManage的根目录的相对目录。

2)path。这是Context在Web服务时的虚拟目录位置和目录名。

3)debug。日志记录的调试信息记录等级。

4)reloadable。这是为了方便Servlet的开发人员而设置的,当这个属性开关打开的时候,Tomcat将检查Servlet是否被更新而决定是否自动重新载入它

 

3、配置实例:打开Tomcat下的conf文件夹下的server.xml文件

 

(1)改变Tomcat服务器的端口号

需要使用Connector 元素,Connector表示一个到用户的联接,不管是通过web服务器或直接到用户浏览器(在一个独立配置中)。Connector负责管理Tomcat的工作线程和读/写连接到不同用户的端口的请求/响应。Connector的配置包含如下信息:句柄类、句柄监听的TCP/IP端口、句柄服务器端口的TCP/IP的backlog。修改后,必须重新启动Tomcat的服务器。

注意:可以将端口号改变为80,单要保证80端口没有被占用;另外,也可以同时分配两个端口号,只要产生两个Connector的配置信息。

    <!-- Definea non-SSL Coyote HTTP/1.1 Connector on port 8080 -->

   <Connector port="8080"    maxThreads="150"minSpareThreads="25" maxSpareThreads="75"

     enableLookups="false"redirectPort="8443" acceptCount="100"  debug="0"connectionTimeout="20000" disableUploadTimeout="true" />

              

    <!-- Define a non-SSL Coyote HTTP/1.1Connector on port 8000 -->

    <Connector port="8000"   maxThreads="150" minSpareThreads="25"maxSpareThreads="75"

enableLookups="false"redirectPort="8443" acceptCount="100"  debug="0"connectionTimeout="20000" disableUploadTimeout="true" />

 

(2)增加新的虚拟目录并指向物理目录

 

设立一个虚拟工作目录是比较简单的,只需要在server.xml文件中添加一个Context对象就可以了。如,要在webapps\下增加一个WebMis文件夹以存放jsp页面文件,并且让用户可以使用http://127.0.0.1:8080/WebMis虚拟目录访问,则:需要使用Context 元素,每个Context提供一个指向你放置你Web项目的Tomcat的下属目录。每个Context包含如下配置: 

l Context放置的路径,可以是与ContextManager主目录相关的路径;

l 纪录调试信息的调试级别;

可重载的标志,开发Servlet时,重载更改后的Servlet。这是一个非常便利的特性,你可以调试或用Tomcat测试新代码而不用停止或重新启动Tomcat。要打开重载,把reloadable设为true即可。

其中:path="/WebMis"说明其相对web URL的路径,是一个虚拟的路径,如:http://127.0.0.1:8080/WebMis,docBase="WebMis"说明其相对webapps的位置,是物理存在的目录,同时需要在webapps\下增加一个WebMis物理文件夹。

 

(3)   加入自己的日志文件

 

添加Logger对象就可以加入自己的日志文件,添加工作相当简单,只需要将作为示例的Logger对象复制一份,然后修改一下前面介绍的几个属性就可以了。在设定了Logger以后,就可以在自己的Servlet中使用ServletContext.log()方法来建立自己的日志文件。

 

4、配置实例:打开conf文件夹下的web.xml文件

 

(1)web.xml文件:它包含了描述整个Web应用程序(Web应用程序由一整套Web文件jsp、servlet、html、jpg、gif、class等组成)的信息。下面以一个web.xml文件为例,讲解里面的各个对象。

 

<!DOCTYPE web-appPUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"

"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">

<web-app>

<display-name>My WebApplication</display-name>

<description>在这里加入Web应用程序的描述信息</description>

<!-

下面定义了Web应用程序的初始化参数,在JSP或Servlet文件中使用下面的语句

来得到初始化参数

String value =

getServletContext().getInitParameter("name");

这里可以定义任意多的初始化参数

-->

<context-param>

<param-name>webmaster</param-name>

<param-value>myaddress@mycompany.com</param-value>

<description>这里包含了初始化参数的描述</description>

</context-param>

<!-

下面的定义描述了组成这个Web应用程序的Servlet,还包含初始化参数。在Tomcat中,也可以将放在Web-INF/classes中的Servlet直接以servlet/Servlet名访问,但是一般来说,不推荐这样使用。而且这样的使用方法还会导致Servlet的相关资源组织的复杂性。所以一般来说推荐将所有的Servlet在这里定义出来。初始化参数可以在Servlet中使用如下语句来获得:

String value=getServletConfig().getInitParameter("name");

-->

<servlet>

<servlet-name>controller</servlet-name>

<description>这里加入这个Servlet的描述</description>

<servlet-class>com.mycompany.mypackage.ControllerServlet</servlet-class>

<init-param>

<param-name>listOrders</paramName>

<param-value>com.mycompany.myactions.ListOrdersAction</param-value>

</init-param>

<init-param>

<param-name>saveCustomer</paramName>

<param-value>com.mycompany.myactions.SaveCustomerAction</param-value>

</init-param>

<!-

服务器启动后这个Servlet加载的时间

-->

<load-on-startup>5</load-on-startup>

</servlet>

<servlet>

<servlet-name>graph</servlet-name>

<description>这个Servlet的描述</description>

</servlet>

<!-

Servlet映射对应了一个特殊的URI请求到一个特殊的Servlet的关系

-->

<servlet-mapping>

<servlet-name>controller</servlet-name>

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

</servlet-mapping>

<servlet-mapping>

<servlet-name>graph</servlet-name>

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

</servlet-mapping>

<!-

设定缺省的Session过期时间(单位为分)?单位为分?

-->

<session-config>

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

</session-config>

</web-app>

(2)配置实例:会话(session)超时修改,修改conf\web.xml中的如下数据值(单位为分)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值