Servlet

4326 ワード

1)サーブレットとは?


📎 Java Webアプリケーション


WASにインストール(配備)して実行するアプリケーション.
HTML、CSS、画像、Java作成クラス(サーブレット、パッケージ、インタフェースなどを含む)、各種設定ファイルなどを含む

🔍 Java Webアプリケーションのフォルダ構造



Java Webアプリケーションのフォルダ構造
libフォルダにjarファイルを入れることができます.
classesフォルダにはjavaのpackageとclassが含まれています.

🔍 サーブレットとは?


  • Java Webアプリケーションのコンポーネントで動的に処理するプログラムの役割

  • サーブレットを定義する場合、WASに役立つJAVAクラスです.

  • サーブレットはHttpサーブレットクラスを継承する必要があります.

  • サーブレットとJSPから最適な結果を得るには、Webページを開発する際に、これらの2つ(JSP、サーブレット)を調整して使用する必要があります.
  • 例えば,ウェブページを構成する画面(HTML)はJSP,複雑なプログラミングはサーブレットで表される.

    2)サーブレットの作成方法


    📎 バージョンに基づいてサーブレットを作成する方法


    1.サーブレット3.0 spec以降の使用方法
    web.xmlファイルは使用しません.
    Java宣言の使用(annotation)
    2.サーブレット3.0仕様不足時の使用方法
    servletを登録するときにwebを使用します.xmlファイルに登録

    👀 3.0以降の練習コード

    package exam;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet implementation class TenServlet
     */
    @WebServlet("/ten")
    public class TenServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public TenServlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		response.setContentType("text/html;charset=utf-8");
    		PrintWriter out =response.getWriter();
    		out.print("<h1>1~10까지 출력</h1>");
    		for(int i =1; i <= 10; i++) {
    			out.print(i+"<br>");
    		}
    		out.close();
    	}
    
    }
                               

    実行画面

    3.0未満の場合はwebを使用します。xmlファイルを追加して登録します。


    3)Servlet Life Cycle


    🔍 LifecycleServlet


  • HttpServeretを上書きする3つの方法

  • init()
    サーブレットが最初に呼び出されると、initメソッドが呼び出されます.

  • service(request, response)
    リクエストが到着すると、応答が必要なコンテンツがサービスメソッドを呼び出す.

  • destroy()
    Webアプリケーションの更新とWASの終了時にdestroyメソッドを呼び出します.

  • servletは、サーバ上に複数のオブジェクトを作成しません.

  • Servlet

    🔍 サーブレットライフサイクル


  • WASは、サーブレット要求を受信すると、そのサーブレットがメモリ内にあるかどうかを確認します.
    if(メモリにありません){

  • 対応するサーブレットクラスをメモリにアップロード

  • Init()メソッドの実行
    }

  • サービス()メソッドの実行

  • 閉じる場合、またはWebアプリケーションが新しい更新を行った場合、destroy()メソッドが実行されます.
  • 🔍 サービスメソッド


    HttpServiceletのサービスメソッドはテンプレートメソッドモードで実現される.
    クライアント要求がGETの場合、クライアントが所有するdoGet(request,response)メソッドが呼び出されます.
    クライアントの要求がPostである場合、クライアントが所有するdoPost(request,response)が呼び出されます.

    4)リクエスト・レスポンス・オブジェクトの理解


    🔍 リクエストとレスポンス


    Webブラウザからサーブレットリクエストを受信すると、WASは次のようになります.
  • リクエスト時の情報を保存するためにHttpServeretRequestオブジェクトを作成する
  • Webブラウザに応答を送信するためのHttpServeretResponseオブジェクトの作成
  • で生成されたHttpServeretRequestは、HttpServeretResponseオブジェクトをServeret
  • に転送する

    🔍 HttpServletRequest

  • HTTPプロトコルの要求情報をサーブレットの
  • に送信する.
  • ヘッダ情報、パラメータ、Cookie、URI、URL等の情報を検索する方法を有する.
  • Body Streamを読み取る方法があります.
  • 🔍 HttpServletResponse

  • WASは、どのクライアントが要求を送信したかを知り、HttpService Responseオブジェクトを作成してクライアントに応答を送信し、ブレード
  • に転送する.
  • サーブレットこのオブジェクトを使用するコンテンツタイプ、レスポンスコード、レスポンスメッセージなどの
  • を送信する.