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