文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>[ZT]Tomcat简介

[ZT]Tomcat简介

时间:2009-03-25  来源:emailwht

Tomcat简介

一、Tomcat背景
  自从JSP发布之后,推出了各式各样的JSP引擎。Apache Group在完成GNUJSP1.0的开发以后,开始考虑在SUN的JSWDK基础上开发一个可以直接提供Web服务的JSP服务器,当然同时也支持Servlet, 这样Tomcat就诞生了。 Tomcat是jakarta项目中的一个重要的子项目,其被JavaWorld杂志的编辑选为2001年度最具创新的java产品,同时它又是sun公司官方推荐的servlet和jsp容器,因此其越来 越多的受到软件公司和开发人员的喜爱。servlet和jsp的最新规范都可以在tomcat的新版本中得到实现。其次, Tomcat是完全免费的软件,任何人都可以从互联网上自由地下载。Tomcat与Apache的组合相当完美。

 

二、 Tomcat 目录

tomcat
|---bin Tomcat: 存放启动和关闭tomcat脚本 ;

|---conf Tomcat:存放 不同的配置文件(server.xml和web.xml);
|---doc:存放Tomcat文档;
|---lib /japser/common :存放 Tomcat运行需要的库文件(JARS);
|---logs:存放Tomcat执行时的LOG文件;
|---src:存放Tomcat的源代码;
|---webapps:Tomcat的主要Web发布目录(包括 应用程序示例 );
|---work: 存放jsp编译后产生的class文件 ;

三、Tomcat类加载

    Bootstrap($JAVA_HOME/jre/lib/ext/*.jar)
System($CLASSPATH/*.class 和指定的 jar)
Common($CATALINA_HOME/common 下的 classes,lib,endores 三个子目录 )
Catalina ($CATALINA_HOME/server/ 下的 classes 和 lib 目录仅对 Tomcat 可见 )
&Shared($CATALINA_HOME/shared/ 下的 classes 和 lib 目录以及 $CATALINA_HOME/lib 目录 ) 仅对 Web 应用程序可见 , 对 Tomcat 不可见 WebApp($WEBAPP/Web-INF/* 仅对该 WEB 应用可见 classes/*.class lib/*.jar)

加载类和资源的顺序为:
1 、 /Web-INF/classes

2 、 /Web-INF/lib/*.jar

3 、 Bootstrap

4 、 System

5 、 $CATALINA_HOME/common/classes
6 、 $CATALINA_HOME/common/endores/*.jar

7 、 $CATALINA_HOME/common/lib/*.jar

8 、 $CATALINA_HOME/shared/classes
9 、 $CATALINA_HOME/shared/lib/*.jar

 

四、 server.xml 配置简介 :

下面讲述这个文件中的基本配置信息,更具体的配置信息请参考 tomcat 的文档:
    server:
          1 、 port 指定一个端口,这个端口负责监听关闭 tomcat 的请求
          2 、 shutdown 指定向端口发送的命令字符串
    service:
          1 、 name 指定 service 的名字
    Connector ( 表示客户端和 service 之间的连接 ) :
          1 、 port 指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求
          2 、 minProcessors 服务器启动时创建的处理请求的线程数
          3 、 maxProcessors 最大可以创建的处理请求的线程数
          4 、 enableLookups 如果为 true ,则可以通过调用 request.getRemoteHost() 进行 DNS 查

询来得到远程客户端的实际主机名,若为 false 则不进行 DNS 查询,而是返回其 ip

地址
          5 、 redirectPort 指定服务器正在处理 http 请求时收到了一个 SSL 传输请求后重定向的

端口号
          6 、 acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理

队列中的请求数,超过这个数的请求将不予处理
          7 、 connectionTimeout 指定超时的时间数 ( 以毫秒为单位 )
    Engine ( 表示指定 service 中的请求处理机,接收和处理来自 Connector 的请求 ) :
          1 、 defaultHost 指定缺省的处理请求的主机名,它至少与其中的一个 host 元素的 name

属性值是一样的
    Context ( 表示一个 web 应用程序 ) :
          1 、 docBase 应用程序的路径或者是 WAR 文件存放的路径
          2 、 path 表示此 web 应用程序的 url 的前缀,这样请求的 url 为

http://localhost:8080/path/****
          3 、 reloadable 这个属性非常重要,如果为 true ,则 tomcat 会自动检测应用程序的

/WEB-INF/lib 和 /WEB-INF/classes 目录的变化,自动装载新的应用程序,我们可

以在不重起 tomcat 的情况下改变应用程序
    host ( 表示一个虚拟主机 ) :
          1 、 name 指定主机名
          2 、 appBase 应用程序基本目录,即存放应用程序的目录
          3 、 unpackWARs 如果为 true ,则 tomcat 会自动将 WAR 文件解压,否则不解压,直接

从 WAR 文件中运行应用程序
    Logger ( 表示日志,调试和错误信息 ) :
          1 、 className 指定 logger 使用的类名,此类必须实现 org.apache.catalina.Logger 接口
          2 、 prefix 指定 log 文件的前缀
          3 、 suffix 指定 log 文件的后缀
          4 、 timestamp 如果为 true ,则 log 文件名中要加入时间,如下

例 :localhost_log.2001-10-04.txt
  Realm ( 表示存放用户名,密码及 role 的数据库 ) :
          1 、 className 指定 Realm 使用的类名,此类必须实现 org.apache.catalina.Realm 接口
   Valve ( 功能与 Logger 差不多,其 prefix 和 suffix 属性解释和 Logger 中的一样 ) :
          1 、 className 指定 Valve 使用的类名,如用 org.apache.catalina.valves.AccessLogValve

类可以记录应用程序的访问信息
    directory (指定 log 文件存放的位置):
    1 、 pattern 有两个值, common 方式记录远程主机名或 ip 地址,用户名,日期,第一行

请求的字符串, HTTP 响应代码,发送的字节数。 combined 方式比 common 方式记

录的值更多

 

五、 web.xml 配置简介 :

 1 、默认 ( 欢迎 ) 文件的设置

 在 tomcat4\conf\web.xml 中, <welcome-file-list> 与 IIS 中的默认文件意思相同。

  <welcome-file-list>

 <welcome-file>index.html</welcome-file>

 <welcome-file>index.htm</welcome-file>

 <welcome-file>index.jsp</welcome-file>

 </welcome-file-list>

 

 2 、报错文件的设置

 <error-page>

 <error-code>404</error-code>

 <location>/notFileFound.jsp</location>

 </error-page>

 <error-page>

 <exception-type>java.lang.NullPointerException</exception-type>

 <location>/null.jsp</location>

 </error-page>

如果某文件资源没有找到,服务器要报 404 错误,按上述配置则会调用 \webapps\ROOT\notFileFound.jsp 。

如果执行的某个 JSP 文件产生 NullPointException ,则会调用 \webapps\ROOT\null.jsp

 

 3 、会话超时的设置

设置 session 的过期时间,单位是分钟;

 <session-config>

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

 </session-config>

 

 4 、过滤器的设置

 <filter>

 <filter-name>FilterSource</filter-name>

 <filter-class>project4. FilterSource </filter-class>

 </filter>

 <filter-mapping>

 <filter-name>FilterSource</filter-name>

 <url-pattern>/WwwServlet</url-pattern>

 (<url-pattern>/haha/*</url-pattern>)

 </filter-mapping>

 

过滤:

 1) 身份验证的过滤 Authentication Filters

 2) 日志和审核的过滤 Logging and Auditing Filters

 3) 图片转化的过滤 Image conversion Filters

 4) 数据压缩的过滤 Data compression Filters

 5) 加密过滤 Encryption Filters

 6) Tokenizing Filters

 7) 资源访问事件触发的过滤 Filters that trigger resource access events XSL/T 过滤 XSL/T filters

 9) 内容类型的过滤 Mime-type chain Filter 注意监听器的顺序,如:先安全过滤,然后资源,

然后内容类型等,这个顺序可以自己定。

 

六、管理
     1 、用户配置
      在进行具体 Tomcat 管理之前,先给 tomcat 添加一个用户,使这个用户有权限来进行管理。
      打开 conf 目录下的 tomcat-users.xml 文件,在相应的位置添加下面一行:
    <user name="user" password="user" roles="standard,manager"/>
    然后重起 tomcat ,在浏览器中输入 http://localhost:8080/manager/ ,会弹出对话框,输入上面的用户

名和密码即可。

     2 、应用程序列表
      在浏览器中输入 http://localhost:8080/manager/list ,浏览器将会显示如下的信息:
    OK - Listed applications for virtual host localhost
    /ex:running:1
    /examples:running:1
    /webdav:running:0
    /tomcat-docs:running:0
    /manager:running:0
    /:running:0
     上面显示的信息分别为:应用程序的路径、当前状态、连接这个程序的 session 数

    3 、重新装载应用程序
      在浏览器中输入 http://localhost:8080/manager/reload?path=/examples ,浏览器显示如下:
    OK - Reloaded application at context path /examples    

这表示 example 应用程序装载成功,如果我们将 server.xml 的 Context 元素的 reloadable 属性设为 true ,则没必要利用这种方式重新装载应用程序,因为 tomcat 会自动装载。

 

4 、显示 session 信息
     在浏览器中输入 http://localhost:8080/manager/sessions?path=/examples ,浏览器显示如下:
    OK - Session information for application at context path /examples Default maximum session inactive

interval 30 minutes

5 、启动和关闭应用程序
    在浏览器中输入 http://localhost:8080/manager/start?path=/examples 和

http://localhost:8080/manager/stop?path=/examples 分别启动和关闭 examples 应用程序。

关于作者:

杨晓,计算机硕士,曾在 NEC 、 Softbrain 担任 java 开发工作。

博客: http://blog.sina.com.cn/u/1237288325

相关阅读 更多 +
排行榜 更多 +
骑战烈火之剑作弊菜单版

骑战烈火之剑作弊菜单版

角色扮演 下载
诸神的迷宫

诸神的迷宫

动作格斗 下载
芸生

芸生

购物比价 下载