JavaWeb-tomcatコンテナ

5546 ワード

tomcat
下位層でSocket間の通信をサポートするデータ共有は、内部ウェブサーバソフトウェア(コンテナ:servet/jspをオブジェクトの作成、jspをjavaファイルに翻訳、ideがjavaファイルをclassファイルにコンパイル)によって実現され、tomcatはjavaEE(EJBはサポートされていない)を完全にサポートしていないが、ウェブサーバをサポートできる無料ソフトウェアである
コンテナの機能:
1.通信サポート:コンテナが提供する方法を利用して、サーブレットとWebサーバーを簡単に会話させることができ、自分でサーバーSocketを確立したり、ポートを傍受したり、ストリームを作成したりする操作を必要としない.2.ライフサイクル管理クラスをロードし、サーブレットをインスタンス化して初期化し、サーブレットのメソッドを呼び出し、サーブレットインスタンスをゴミ回収できるようにします.3.マルチスレッド処理コンテナは、受信したサーブレット要求ごとに新しいJavaスレッドを自動的に作成します.4.セキュリティあり:XML配備記述ファイルを使用してセキュリティを構成します(サーブレット3.0では注釈記述を使用できます).サーブレットまたは他のクラスにハードコーディングを書き込む必要はありません.
tomcatインストールディレクトリの下のフォルダ:
bin:tomcatの実行可能ディレクトリ
  • startup.bat/startup.sh(linux)
  • shutdown.bat/shutdown.sh(linux)

  • conf:tomcatの構成ディレクトリ
  • web.xml:グローバルパラメータの定義、Webサイト情報の構成
  • server.xmlサーバの構成
  • lib:tomcatでサポートされているjarパッケージ(serlvetとjspパッケージが含まれています)
    バージョン競合を防止するために、mavenプロジェクトで依存を指定する必要がある場合は、provide依存範囲:compile:コンパイルtest:provideのテスト:現在のプロバイダのみ
    logs:ログ記録ファイルtemp:一時ファイルを格納webapp:サイト情報を格納(1つのサイトはフォルダと見なすことができる)、デフォルトアクセスroot(tomcat_home)work:jspファイルを格納(hello.jsp->hello_jsp.java->classファイル)WEB-INF:サイトの構成情報、web.xml(servet/初期化パラメータの構成)
  • classes:バイトコードファイル
  • を格納
  • lib:jarパッケージ
  • を格納
    tomcatを起動するとよく発生する問題:
    フラッシュの原因:tomcat起動時にbinディレクトリのstart.bat起動、java環境変数(JAVA_HOME)解決:JAVAを構成するHOME,tomcatを追加するインストールディレクトリの起動に失敗した原因:1つのコンピュータの上で複数のtomcatがあって、catalina_を配置しましたHOME解決:catalina_を構成しないHOME、tomcatは1つしか残っていません
    tomcat起動後(http://localhost:8080)、tomcatは、現在データ型がサポートされている言語を携帯するリクエストを送信します.
    tomcatデフォルトポート:8080 qq:5555 mysql:306
    servlet:サーバアプリケーションに対して開発するのは実は1つの単一のインスタンスのマルチスレッドの普通のjavaクラスで、webアプリケーションサーバによって解析することができる1種類はそのソースコードが変化するかどうかによって動的資源か静的資源かを区別することができる:静的資源:Html/css/js/.jpg/gifダイナミックリソース:サーブレット
    mavenのwebプロジェクトでuriリクエストを提出すると、webになります.xmlファイルで動的リソースアドレスをクエリーし、ない場合は現在のルートディレクトリで静的リソースをクエリーします.
    コンテナを使用してサーブレットを手動で開発するには、次の手順に従います.
    サーブラーはクライアントからの要求を受信し、処理後にクライアントにデータを応答する(クライアントからの要求を受信し、サーバからの応答)mavenプロジェクトを作成する(ディレクトリはwebエンジニアリング構造に合致する).pom.xmlでwarパッケージを打つ.補完ディレクトリ構造
    src
    	Man
    		java
    		Resource
    		Webapp
    			WEB-INF
    				Web.xml
    

    3.pomファイルに依存インポートjavax.servlet-apiをインポートする必要があるサーブレットを作成し、pomを構成する.xmlファイル
    
    
        4.0.0
    
        war
        com.github.sweeeeeet
        tomcat-http
        1.0-SNAPSHOT
    
    
        
            javax.servlet
            javax.servlet-api
            3.1.0
            provided
        
    
    
    

    4.クラス継承HttpServeretを作成し、doGet()を上書きする:getメソッドのコミットを実行する;doPost()の上書き:postメソッドを使用してコミット
    package com.github.sweeeeeet.tomcat;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    /**
     * Author:sweet
     * Created:2019/4/25
     *     new MyFirstServlet(), tomcat       
     */
    public class MyFirstServlet extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            //    
            resp.setContentType("text/html;charset=utf-8");
            //        
            resp.getWriter().write("hello,       Servlet");
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    
        }
    }
    

    5.webを構成する.xmlファイル
    
    
    
        
        
        
            
            MyFirstServlet
            
            com.github.sweeeeeet.tomcat.MyFirstServlet
        
        
        
            MyFirstServlet
            
            /myFirstServlet
        
         
        
            HelloServlet
            com.github.sweeeeeet.tomcat.HelloServlet
        
        
            HelloServlet
            /helloServlet
        
    
    

    6.mavenを使用してwarパッケージにし、tomcatプログラムに入れる
    要求プロセス:1.tomcatサーバ起動–サーブレットオブジェクトを作成する2.requestオブジェクトをHttpServletにカプセル化し、HttpServletRequest 3となる.HttpServiceletのいくつかの組み込みメソッドを解析して初期化
    mavenのwebプロジェクトではuriリクエストを送信し、tomcatがwebを優先します.xmlファイルでは、動的リソースアドレスがクエリーされ、ない場合は、現在のルートディレクトリで静的リソースがクエリーされます.
    マップパスの書き方
  • は、/ と正確に一致する.ブラウザで要求されたuriは次のとおりです.http://localhost:8080/ファイル名
  • ファジイマッチングa./*;任意の経路b.*.actionを表す.指定した接尾辞名で終わる
  • マッピングパスで正確な一致とファジイの一致で正確な一致が得られない優先度は、ファジイの一致で接尾辞名の末尾を指定する接尾辞名のペーストの一致よりも低い.