Java のサーブレット
 
このチュートリアルでは、サーブレットとは何か、および Java でサーブレットを作成する方法を紹介します。
サーブレットとは
サーブレットは、Java で Web アプリケーションを作成するために使用されるサーバー側のテクノロジです。動的な Web アプリケーションを作成し、アプリケーションを管理するためのいくつかのクラスとインターフェイスで構成される API を提供します。
サーブレットを使用する利点
サーブレットの前は、CGI(Common Gateway Interface)プログラムを使用して、いくつかのパフォーマンスの問題があるサーバー側プログラムを作成していました。サーブレットは CGI よりも優れており、次の利点があります。
- マルチスレッドの概念によるパフォーマンスの向上
- プラットフォームに依存しません
- ポータブル
- Java バイトコードによる安全で安全。
Java でサーブレットを作成する方法
次のクラスまたはインターフェイスのいずれかを使用するなど、サーブレットアプリケーションを作成する方法はいくつかあります。
- Servletインターフェースを実装する
- GenericServletクラスを継承します
- 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.
  }
}
出力:
このサーブレットコードは、以下のメッセージをブラウザに出力します。

デプロイメント記述子を作成する
これはサーブレットに関する情報を含む 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