ディレクトリ構造
binディレクトリの実行
liux上のShファイル、Windows上のbatファイル
LIB
依存するJARパッケージ
confに
パーミッション関連するcatalina.policy権は、TomcatはJVM、いくつかのデフォルトの権限で実行されています。
server.xmlの:サーバーノード - >サービス - >キュータ(スレッドプール)、コネクタコネクタ
スレッドプールを使用してコネクタのコネクタは、その後、maxThreadsの内部コネクタは無効です。
言葉キュータ(スレッドプール)maxThreadsのではなく、デフォルトの設定は、一般的に200であります
web.xmlの
デフォルトサーブレットのデフォルト、ロード静的ファイル、HTML、JS、JPGおよびその他の静的ファイル。
JspServletは、JSPと特異的に対処します。
MIMEマッピングファイルタイプは、ファイルタイプTomcatが実際に処理されます。
ジャーナル
私たちの問題Tomcatのcatalina.xxxx.log、ファイルを探して起動しません
三つの配置モード
暗黙の展開:ディレクトリをwebappsに。warファイルやTomcatのWebアプリケーションへのアプリケーション全体をコピーします。
明示モード:
1)ホストは、Context(server.xmlのパスとファイルアドレスを指定)-----リロード=「true」に熱負荷を加え
< ホストのappBase = "Webアプリケーション" オートデプロイ= "true"の名= "localhost"をunpackWARs = "真" > < コンテキストパス= "/ DEMO1" 文書ベース= "D:/ DEMO1" リロード= "true"を> </ コンテキスト> < / ホスト>
2)ファイルパスのconf /カタリナ/ localhostのを作成-----、xmlファイル(ホットデプロイ)でのconf /カタリナ/ localhostのファイル名へのアクセスパスを作成します
<?XMLバージョン= "1.0"エンコード= "UTF-8" ?> < コンテキスト文書ベース= "D:/ DEMO1" リロード= "true"を> </ コンテキスト>
Tomcatのアーキテクチャ
2つのコアコンポーネント
コネクタコンポーネント:コネクター、Tomcatは、クライアントとの通信のために責任があります
コンテナコンポーネント:サーブレットコンテナ
要求処理の流れ
HTTPConnectorのはリンカーであります
httpProcessorは、クラスの特定の処理であります
コンテナは、コンテナである(サーブレット)
1.モニタサーバポートは、クライアントからのリクエストをお読みください。
2.要求データ解析は、指定されたプロトコルを話します。
要求アドレスは、処理のために正しいコンテナに一致します。
4.応答がクライアントに返されます。
非ブロックコネクタ(NIO)
チャンネル(チャンネル)、バッファー(緩衝液)、セレクタ(セレクタ)
Tomcatコンテナ
責任パターンのコンテナチェーン
コネクタは、アセンブリ1要求を受信し、リクエストとレスポンスのオブジェクトを作成します。
リクエストとレスポンス2.Connectorコンテナ、パイプラインコンポーネントエンジン弁を介して各通過の内部を通って最初に。
3.ホストは、アセンブリおよびフィルタバルブの内部を通るパイプラインへの転送を要求します。
4.コンテキスト要求パイプラインのアセンブリへの転送、およびフィルタバルブの内部を通ります。
5.请求流转到Wrapper的pipeline组件中,并且经过内部的Valve的过滤。
6.Wrapper内部的WrapperValve创建FilterChain实例,调用指定的 Servlet实例处理请求。
7.返回
Tomcat Server处理一个HTTP请求的过程
1、用户点击网页内容,请求被发送到本机端口8080,被在那里监听的Coyote HTTP/1.1 Connector获得。
2、Connector把该请求交给它所在的Service的Engine来处理,并等待Engine的回应。
3、Engine获得请求localhost/test/index.jsp,匹配所有的虚拟主机Host。
4、Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机),名为localhost的Host获得请求/test/index.jsp,匹配它所拥有的所有的Context。Host匹配到路径为/test的Context(如果匹配不到就把该请求交给路径名为“ ”的Context去处理)。
5、path=“/test”的Context获得请求/index.jsp,在它的mapping table中寻找出对应的Servlet。Context匹配到URL PATTERN为*.jsp的Servlet,对应于JspServlet类。
6、构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet()或doPost().执行业务逻辑、数据存储等程序。
7、Context把执行完之后的HttpServletResponse对象返回给Host。
8、Host把HttpServletResponse对象返回给Engine。
9、Engine把HttpServletResponse对象返回Connector。
10、Connector把HttpServletResponse对象返回给客户Browser。