Java のサーブレット

Mohammad Irfan 2024年2月15日
  1. サーブレットとは
  2. サーブレットを使用する利点
  3. Java でサーブレットを作成する方法
  4. サーブレットの重要なパッケージ
  5. サーブレットクラス
  6. サーブレットインターフェース
Java のサーブレット

このチュートリアルでは、サーブレットとは何か、および Java でサーブレットを作成する方法を紹介します。

サーブレットとは

サーブレットは、Java で Web アプリケーションを作成するために使用されるサーバー側のテクノロジです。動的な Web アプリケーションを作成し、アプリケーションを管理するためのいくつかのクラスとインターフェイスで構成される API を提供します。

サーブレットを使用する利点

サーブレットの前は、CGI(Common Gateway Interface)プログラムを使用して、いくつかのパフォーマンスの問題があるサーバー側プログラムを作成していました。サーブレットは CGI よりも優れており、次の利点があります。

  • マルチスレッドの概念によるパフォーマンスの向上
  • プラットフォームに依存しません
  • ポータブル
  • Java バイトコードによる安全で安全。

Java でサーブレットを作成する方法

次のクラスまたはインターフェイスのいずれかを使用するなど、サーブレットアプリケーションを作成する方法はいくつかあります。

  1. Servlet インターフェースを実装する
  2. GenericServlet クラスを継承します
  3. HttpServlet クラスを継承します

これらは、サーブレットアプリケーションを作成するために使用されるいくつかのクラスとインターフェイスです。これらには、HTTP リクエストを処理するための doPost()doGet() などのメソッドが含まれています。

サーブレットアプリケーションは、特定のディレクトリ/プロジェクト構造に従い、次のようないくつかの必要な手順で構成されます。

  • サーブレットを作成します
  • デプロイメント記述子を作成します
  • サーブレットアプリケーションをサーバーにデプロイします(apache tomcat)。

前に述べたように、サーブレットを作成するには、HttpServlet クラスを拡張し、そのメソッドをオーバーライドする必要があります。ここでは、doGet() メソッドを使用して Get リクエストを処理しています。

以下は基本的なサーブレットコードです。

サーブレットを作成する

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// Extending HttpServlet class
public class HelloServlet extends HttpServlet {
  private String msg;

  public void init() throws ServletException {
    // Do required initialization
    msg = "Hello Servlet";
  }

  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    // Setting content type for response
    response.setContentType("text/html");

    // printing msg to browser in h1 heading
    PrintWriter out = response.getWriter();
    out.println("<h1>" + msg + "</>");
  }

  public void destroy() {
    // code to execute while destroy servlet.
  }
}

出力:

このサーブレットコードは、以下のメッセージをブラウザに出力します。

java サーブレット

デプロイメント記述子を作成する

これはサーブレットに関する情報を含む XML ファイルであり、Web コンテナはこのファイルからすべての情報を取得します。このファイルは、<web-app><servlet><servlet-mapping> などのいくつかのタグを使用します。

これらはすべて、コンテナの情報を設定するために使用されます。コンテナーはパーサーを使用してこの情報を抽出します。

HelloServlet クラスについては、サーブレット記述子(web.xml)を参照してください。

<web-app>  
  
<servlet>  
<servlet-name>HelloServlet</servlet-name>  
<servlet-class>HelloServlet</servlet-class>  
</servlet>
  
<servlet-mapping>  
<servlet-name>HelloServlet</servlet-name>  
<url-pattern>/helloservlet</url-pattern>  
</servlet-mapping>
  
</web-app>

この XML ファイルを作成したら、サーブレットファイルをコンパイルし、プロジェクト全体を apachetomcat などの Web サーバーにデプロイします。これは Web アプリケーションであるため、実行するにはサーバーが必要です。

プロジェクトをデプロイした後、サーバーを起動し、ブラウザのマッピング URL helloservlet を入力してサーブレットにアクセスします。

サーブレットの重要なパッケージ

サーブレット API には、すべてのクラスとインターフェイスを含む 2つのメインパッケージが含まれています。

  • javax.servlet
  • javax.servlet.http

サーブレットクラス

頻繁に使用されるサーブレットクラスは次のとおりです。

  • GenericServlet
  • ServletInputStream
  • ServletOutputStream
  • ServletRequestWrapper
  • ServletResponseWrapper
  • ServletRequestEvent
  • ServletContextEvent
  • HttpServlet
  • Cookie
  • HttpServletRequestWrapper
  • HttpServletResponseWrapper
  • HttpSessionEvent

サーブレットインターフェース

これらは、頻繁に使用されるサーブレットインターフェイスです。

  • Servlet
  • ServletRequest
  • ServletResponse
  • RequestDispatcher
  • ServletConfig
  • ServletContext
  • Filter
  • FilterConfig
  • FilterChain
  • ServletRequestListener
  • HttpServletRequest
  • HttpServletResponse
  • HttpSession
  • HttpSessionListener

関連記事 - Java Servlet