スマートフォン用の表示で見る

servlet

コンピュータ

Servlet

さーぶれっと

Java Servlet は、Java Platform, Enterprise Edition? (Java EE) に含まれる Javaサーバーサイド技術。

Java Servlet に含まれる要素

Servlet について

Servlet は、Java 技術をベースとした web コンポーネントであり、動的なコンテンツを生成するものである。 Servletservlet コンテナによって管理される。

他の Java 技術ベースのコンポーネントと同様に、servletプラットフォーム非依存の Java クラスである。 Servletコンパイルして生成されるクラスファイルは、Java EE に対応した web サーバー上に動的にロードされ、実行される。

コンテナ (しばしば servlet エンジンと呼ばれる) は、servlet 機能を提供する web サーバーの拡張である。 Servlet は、servlet コンテナにより実装されるリクエスト・レスポンスの方法論にのっとって Web クライアントとやりとりを行う。

Servlet コンテナについて

Servlet コンテナ (servlet container) は、Web サーバーの一部、またはアプリケーションサーバーの一部である。 リクエストとレスポンスのやり取りを行うネットワークサービスを提供し、MIME ベースのリクエストのデコードMIME ベースのレスポンスの整形を行う。 Servlet コンテナは、servlet の保持と管理も行う。

Servlet コンテナは、Web サーバーに組み込まれることもあれば、Web サーバーネイティブな拡張 API を通してアドオンとしてインストールされることもある。 また、Web 機能を持ったアプリケーションサーバーに組み込まれていることもある。 場合によっては、アプリケーションサーバーにインストールされることもある。

すべての servlet コンテナは、リクエストとレスポンスのプロトコルとして HTTP をサポートしている。 HTTPS (HTTP over SSL) などの他のプロトコルについては、必ずしもサポートされるわけではない。

利点

Servlet は、他のサーバー拡張機構に対して次のような利点を持っている:

Java EE との関係

Java Servlet API 3.0 は、Java EE 6 に含まれている。

実態

登場当初は、CGI/Perl代替技術として注目された。 一般的な CGI とは違い、ページを開くたびに新たにプロセスが立ち上げるわけではなく、1 つのプロセスが複数のリクエストを処理するため、登場当時は CGI と比べて高速であるとして注目された。 しかし、現在では、Perl やその他のスクリプト言語でも 1 つのプロセスが複数のリクエストを処理するようにして使われることが多く、Servlet (Java) よりも記述が楽であるという理由などで、検索系サイトやポータルサイト、ちょっとしたコミュニティサイトなどではスクリプト言語が使われることが多い。

一方で、ミッションクリティカルな領域、金融系、基幹系業務では COBOL代替として使われ、数多くの情報システムが COBOL から Java へとリプレースされている。 Java はこのようにセキュリティ分野に強い言語であるため、証券会社金融システムなど確実な処理を必要とする領域では PerlPHP よりも Java Servlet がよく使われる。

現在もっとも使われている Java 技術のひとつとされている。 JSFStrutsSeasar2 などは Servlet をベースにしている。