tomcat-------------tomcat文件结构及简介

最近没时间写博客,只是把工作中碰到的一些问题归纳总结。希望对以后有所帮助。
这一章主要对tomcat进行一些常用的解释以及对网页的SSI嵌套的使用。

1.tomcat篇

1.tomcat简单介绍

Tomcat在开发之中主要作为web容器,其本身完全由Java代码编写,可以用来作为servlet的容器,并且提供一些额外的功能,例如:Tomcat管理和控制平台,安全域管理,tomcat阀等

当它作为servlet容器的基本功能是负责接收和解析来着客户的请求,下面是作为servlet容器时的工作流程。
tomcat-------------tomcat文件结构及简介_第1张图片

大致为:
1、Web客户向Servlet容器(Tomcat)发出Http请求
客户
2、Servlet容器分析客户的请求信息
3、Servlet容器创建一个HttpRequest对象,将客户请求的信息封装到这个对象中
4、Servlet容器创建一个HttpResponse对象
5、Servlet容器调用HttpServlet对象的service方法,把HttpRequest对象与HttpResponse对象作为参数传给 HttpServlet对象
6、HttpServlet调用HttpRequest对象的有关方法,获取Http请求信息
7、HttpServlet调用HttpResponse对象的有关方法,生成响应数据
8、Servlet容器把HttpServlet的响应结果传给Web客户

2.tomcat的组成结构

tomcat-------------tomcat文件结构及简介_第2张图片

tomcat-------------tomcat文件结构及简介_第3张图片

3.tomcat的目录结构

文件夹 作用
bin 存放启动和关闭tomcat的命令
conf 存放tomcat的配置,所有的tomcat配置均在该目录下
lib 存放tomcat服务器的核心类库,需要扩展的插件,第三方
logs 空目录,保存日志
temp web应用运行过程中的临时文件
webapps 自动部署web应用。将web应用复制到该目录下,Tomcat会自动部署到容器中
work 保存web应用中编译生成的.class文件。可删除,但是每次系统会再次建立该目录

4.tomcat端口的配置

通常tomcat配置的是8080端口
使用该端口号我们才能访问tomcat的web应用
在必要情况下我们需要去修改tomcat的端口号

  • 8080端口:负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。

  • 8009端口:负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器

  • 8005端口:是用来关闭TOMCAT服务的端口

主要有三个

在需要启动两个tomcat时推荐三个都改

<Connector port="8080"  protocol="HTTP/1.1" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="40000" disableUploadTimeout="true" />

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

<Server port="8005" shutdown="SHUTDOWN">

顺便提一下查看端口的命令行命令:netstat -ano

tomcat-------------tomcat文件结构及简介_第4张图片

Tomcat暂时就是总结这些,比较深入的归纳好了再总结。

附件:

Tomcat 配置文件server.xml的配置
转载自:
http://blog.csdn.net/res_cue/article/details/21756357

<web-app>
         
     
     
          
      
          <servlet>
          <servlet-name>defaultservlet-name>
          <servlet-class>
            org.apache.catalina.servlets.DefaultServlet
          servlet-class>
           <init-param>
              <param-name>debugparam-name>
              <param-value>0param-value>
          init-param>
           <init-param>
              <param-name>listingsparam-name>
              <param-value>trueparam-value>
           init-param>
          <load-on-startup>1load-on-startup>
       servlet>
            <servlet>
          <servlet-name>invokerservlet-name>
          <servlet-class>
            org.apache.catalina.servlets.InvokerServlet
          servlet-class>
           <init-param>
              <param-name>debugparam-name>
              <param-value>0param-value>
           init-param>
          <load-on-startup>2load-on-startup>
       servlet>
            <servlet>
          <servlet-name>jspservlet-name>
          <servlet-class>org.apache.jasper.servlet.JspServletservlet-class>
           <init-param>
              <param-name>logVerbosityLevelparam-name>
              <param-value>WARNINGparam-value>
          init-param>
          <load-on-startup>3load-on-startup>
       servlet>    
     
     
        
       <servlet-mapping>
          <servlet-name>defaultservlet-name>
          <url-pattern>/url-pattern>
      servlet-mapping>      <servlet-mapping>
           <servlet-name>invokerservlet-name>
          <url-pattern>/servlet/*url-pattern>
      servlet-mapping>      <servlet-mapping>
          <servlet-name>jspservlet-name>
          <url-pattern>*.jspurl-pattern>
       servlet-mapping>
     
     
            ... ... ......
     web-app>
      <Serverport="8005" shutdown="SHUTDOWN" debug="0">
        
       <ListenerclassName="org.apache.catalina.mbeans.ServerLifecycleListener"debug="0"/>
     <ListenerclassName="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"debug="0"/>
         
        <GlobalNamingResources>
       ... ... ... ...
     GlobalNamingResources>
        
        <Servicename="Tomcat-Standalone">
          
               <ConnectorclassName="org.apache.coyote.tomcat4.CoyoteConnector"
                 port="8080"
                 minProcessors="5" maxProcessors="75"acceptCount="100"
                 enableLookups="true"
                 redirectPort="8443"
                 debug="0"
                 connectionTimeout="20000"
                 useURIValidationHack="false"
                 disableUploadTimeout="true" />
            
           <Enginename="Standalone" defaultHost="localhost"debug="0">
                         
                  <LoggerclassName="org.apache.catalina.logger.FileLogger".../>    
                    
                 <RealmclassName="org.apache.catalina.realm.UserDatabaseRealm" .../>
                
               <Host name="localhost"debug="0" appBase="webapps" unpackWARs="true"autoDeploy="true">
                 
                 <LoggerclassName="org.apache.catalina.logger.FileLogger" .../>
                    
                   <Contextpath="" docBase="mycontext" debug="0"/>
                   <Contextpath="/wsota" docBase="wsotaProject"debug="0"/> 
            Host>     
         Engine>
        Service> 
    Server>

下面讲述这个文件中的基本配置信息,更具体的配置信息请参考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方式记录的值更多

你可能感兴趣的:(杂类)