Servlet


Section 1. Servlet


1.Servlet
クライアントHTTPリクエストを動的に処理して結果を返すJava Webサーバアプリケーションコンポーネント(テンプレートはJava Webサーバアプリケーション自体またはコンポーネント)
  • サーバ+アプリケーション+let(小さい)またはサーバapplet
  • HTTPのjavaxをサポートします.servlet.http.HttpServiceletクラス
  • を継承
  • MVCモードでコントローラとして使用する
  • 2.サーブレットの作成
  • javax.servlet.http.HttpServiceletクラス継承
  • サービス()メソッドカバー率
  • import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    
    public class FirstServlet extends HttpServlet{
    	
    	@Override
    	public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
    		System.out.println("Hello Servlet");
    	}
    }
    3.GET/POSTリクエストの処理
  • 親のサービス()メソッドは、要求がGet/Postであるかどうかを判断し、doGet()/doPost()メソッドを呼び出す.
  • 第1の方法
    -Get/Post動作
  • をサービス()を上書きすることによって内部で実現する.
    public class Myservlet extends HttpServlet{
    	
        @Override
        protected void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
            if(req.getMethod().equals.("GET")){
                System.out.println("GET 요청이 왔습니다.");
            }
            else if(req.getMethod().equals.("POST")){
                System.out.println("POST 요청이 왔습니다.");
            }
        }
    }
  • 第2の方法
    -doGet()/dopost()メソッドオーバーライド
    -サービス()メソッドは、元の親メソッドの内容を実行します.
  • @Override
    protected void doGet(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        System.out.println("GET 요청이 왔습니다.");
    }
    
    @Override
    protected void doPost(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        System.out.println("POST 요청이 왔습니다.");
    }

    Section 2. Servlet Container


    1.サーブレットコンテナ
    クライアントの要求を満たすためにサーバ上のサーバを駆動する管理サーバのコンテナ.
  • サーブレットはクライアント要求
  • を自分で処理できない.
  • Webアプリケーションをサポートする環境-WAS
  • タイプ-Tomcat、WebLogic、WebSphere、Jeus、JBossなど
  • 2. Apache Tomcat
  • Webサーバ-APach/WAS-Tomcat(Apache Tomcatのダウンロード)
  • サーバの実行と終了-インストールフォルダに従って端末上のディレクトリbin/startup.sh (shutdown.sh)
  • サーバ接続画面(8080ポート)
  • 3. Servlet Mapping

  • サーブレットコンテナ指定されたサーブレットにクライアント要求をマッピングする

  • web.xml方式
    -TOmcatフォルダ/webapps/ROOT/WEB-INF/web.xmlファイルの変更
  • <web-app> 태그 안에 지정 
      <servlet>
          <servlet-name> myservlet </servlet-name>		// 어떤 이름으로 사용할 것인지 지정
          <servlet-class> Myservlet </servlet-class>	// 지정할 서블릿 클래스명 지정 (패키지포함)
      </servlet> 
    
      <servlet-mapping>
          <servlet-name> myservlet </servlet-name>		// 해당 이름의 서블릿을
          <servlet-class> /hello </servlet-class>		// URL /hello 요청이 왔을 때 구동 
      </servlet-mapping> 
    </web-app>
  • 注釈方式
    -TOmcatフォルダ/webapps/ROOT/WEB-INF/web.xmlファイルの変更
  • <web-app> 태그 metadata-complete="false" 지정  // 메타 데이터를 모두 xml 에 하지 않았다는 의미
             - @WebServlet宣言をServletクラスに割り当てる
    @WebServlet("/hello")
    public class Myservlet extends HttpServlet{
    ...
    }
    4.サーブレット操作プロセス

        ①サーバコンテナにお客様からのリクエスト
        ② web.xmlまたはarnolationをチェックして指定したテンプレートを駆動
        ③GetまたはPost要求に従ってサービス()を実行する方法でビジネスロジックを処理する
        ④サーバコンテナサーバ処理結果をクライアントに返す