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.servletjavax.servlet.http
サーブレットクラス
頻繁に使用されるサーブレットクラスは次のとおりです。
GenericServletServletInputStreamServletOutputStreamServletRequestWrapperServletResponseWrapperServletRequestEventServletContextEventHttpServletCookieHttpServletRequestWrapperHttpServletResponseWrapperHttpSessionEvent
サーブレットインターフェース
これらは、頻繁に使用されるサーブレットインターフェイスです。
ServletServletRequestServletResponseRequestDispatcherServletConfigServletContextFilterFilterConfigFilterChainServletRequestListenerHttpServletRequestHttpServletResponseHttpSessionHttpSessionListener