この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。
出典検索?: "Java Servlet"
Java Servlet(ジャバ サーブレット)とは、サーバ上でウェブページなどを動的に生成したりデータ処理を行うために、Javaで作成されたプログラム及びその仕様である。単にサーブレットと呼ばれることが多い。Jakarta EEの一機能という位置づけになっている。この機能を用いてショッピングサイトやオンラインバンキングなどをはじめとする多種多様な動的なWebサイトが構築されている。目次
1 概要
2 サーバサイドJava
3 役割
4 歴史
5 例
6 Web.xml定義
7 脚注
8 関連項目
9 外部リンク
概要 MVCアーキテクチャにおけるJava Servlet, JSP, JavaBeansの位置づけ
Java Servletはサーバサイド技術として登場した。
同様の技術(すなわち対抗技術)としてはPerlなどを用いたCGI、PHPプログラムのプロセスをApache HTTP Server上で動かすことができるmod_phpなどのモジュール、マイクロソフトが提供するASPなどがある。CGIがクライアントのリクエストのたびに新しいプロセスを起動するのに対して、サーブレットはメモリに常駐して、リクエストのたびにプロセスより軽量なスレッドを起動するので、効率がよい。また、サーブレットはJavaで書かれているのでさまざまなプラットフォームで使うことができる。
Servlet 2.3からは、フィルター機能が追加され、Servletの実行前後に処理を差し込むことが可能となった。
サーブレットの技術の延長としてJSPがあるが、JSPはサーブレットを自動生成して動作している。厳密に言えばサーブレットとJSPは違う技術だが、これらは組み合わせて使うのが一般的なため、JSPもサーブレットの一部として扱われることが多い。
サーブレットの実行環境(実行するためのソフトウェア)はWebコンテナ、またはサーブレットコンテナと呼ばれる。これらの言葉はあまり区別されずに使われることも多いが、純粋にサーブレットの処理を行うものをサーブレットコンテナと呼び、サーブレットコンテナを含みJSPやHTTPサーバとしての機能も含むものをWebコンテナと呼ぶ傾向がある。
Webコンテナとしては、Apache Tomcat, Jetty, BEA WebLogic Server, IBM WebSphere Application Server, Resin, JBossなどがある。 当初、JavaはAppletなどのクライアント側でJavaプログラムを稼動させるクライアントサイドの技術として注目を集めていた。しかし、サーブレットの登場以降、サーバ側でJavaプログラムを稼動させる形態が急速に普及した。こうしたサーバ側でJavaプログラムを稼動させる形態をサーバサイドJavaと呼ぶ。 JSPの登場により、Java Servletはデータの入出力処理 (Controller) を担当することが推奨される。これはModel View Controller (MVC) による役割付けである。 Servletの歴史バージョンリリースプラットフォーム内容 以下は、service()メソッドが何回呼ばれたかを出力する単純なサーブレットである。 サーブレットはServletインタフェースを実装する必要がある。サーブレットの実装は通常、プロトコルに依存しない抽象クラスであるGenericServletか、HTTP用のサブクラスであるHttpServletクラスを継承することで行う。
サーバサイドJava
役割
歴史
1.01997/01----
2.0JDK 1.1Java Servlet Development Kit 2.0の一部としてリリース
2.11998/11--公式な初版、RequestDispatcher, ServletContextを追加
2.21999/08J2EE 1.2, J2SE 1.2J2EEの一部となる
2.32001/08J2EE 1.3, J2SE 1.2Filter機能追加
2.42003/11J2EE 1.4, J2SE 1.3web.xml にXML Schema を利用
2.52005/09JavaEE 5, JavaSE 5JavaSE 5が必須となる, annotationをサポート
3.02009/12JavaEE 6, JavaSE 6開発容易性の実現, 動的設定, login/logoutメソッドサポート, 非同期Servlet, アノテーションSecurity, Fileアップロード
3.12013/05JavaEE 7クラウド対応, ノンブロッキング処理用I/O APIの追加, WebSocket等へのプロトコルアップグレードの対応, セキュリティ機能の強化[1]
4.02017/09JavaEE 8HTTP/2サポート
例
Size:22 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)』
担当:undef