Java Servlet
Java Servlet(ジャバ サーブレット)とは、サーバ上でウェブページなどを動的に生成したりデータ処理を行うために、Javaで作成されたプログラム及びその仕様である。単にサーブレットと呼ばれることが多い。Java EEの一機能という位置づけになっている。この機能を用いてショッピングサイトやオンラインバンキングなどをはじめとする多種多様な動的なWebサイトが構築されている。
最新の仕様は、Servlet3.0(JSR-315)である。
概要
Java Servletはサーバサイド技術として登場した。
同様の技術(すなわち対抗技術[要出典])としてはPerlなどを用いたCGI、PHPプログラムのプロセスをApache HTTP Server上で動かすことができるmod_phpなどのモジュール、マイクロソフトが提供するASPなどがある。CGIがクライアントのリクエストのたびに新しいプロセスを起動するのに対して、サーブレットはメモリに常駐して、リクエストのたびにプロセスより軽量なスレッドを起動するので、効率がよい。また、サーブレットはJavaで書かれているのでさまざまなプラットフォームで使うことができる。
Servlet2.3からは、フィルター機能が追加され、Servletの実行前後に処理をさしはさむことが可能となった。
サーブレットの技術の延長としてJSPがあるが、JSPはサーブレットを自動生成して動作している。厳密に言えばサーブレットとJSPは違う技術だが、これらは組み合わせて使うのが一般的なため、JSPもサーブレットの一部として扱われることが多い。
サーブレットの実行環境(実行するためのソフトウェア)はWebコンテナ、またはサーブレットコンテナと呼ばれる。これらの言葉はあまり区別されずに使われることも多いが、純粋にサーブレットの処理を行うものをサーブレットコンテナと呼び、サーブレットコンテナを含みJSPやHTTPサーバとしての機能も含むものをWebコンテナと呼ぶ傾向がある。
Webコンテナとしては、Apache Tomcat, Jetty, BEA WebLogic Server, IBM WebSphere Application Server, Resin, JBossなどがある。
サーバサイドJava
当初、JavaはAppletなどのクライアント側でJavaプログラムを稼動させるクライアントサイドの技術として注目を集めていた。しかし、サーブレットの登場以降、サーバ側でJavaプログラムを稼動させる形態が急速に普及した。こうしたサーバ側でJavaプログラムを稼動させる形態をサーバサイドJavaと呼ぶ。
役割
JSPの登場により、Java Servletはデータの入出力処理(Controller)を担当することが推奨される。これはModel View Controller(MVC)による役割付けである。
歴史
バージョン | リリース | プラットフォーム | 内容 |
---|---|---|---|
1.0 | 1997/01 | -- | -- |
2.0 | JDK 1.1 | Java Servlet Development Kit 2.0の一部としてリリース | |
2.1 | 1998/11 | -- | 公式な初版、RequestDispatcher, ServletContextを追加 |
2.2 | 1999/08 | J2EE 1.2, J2SE 1.2 | J2EEの一部となる |
2.3 | 2001/08 | J2EE 1.3, J2SE 1.2 | Filter機能追加 |
2.4 | 2003/11 | J2EE 1.2, J2SE 1.2 | web.xml にXML Schema を利用 |
2.5 | 2005/09 | JavaEE 5, JavaSE 5 | JavaSE 5必須となる, annotationをサポート |
3.0 | 2009/12 | JavaEE 6, JavaSE 6 | 動的設定, login/logoutメソッドサポート, 非同期Servlet, アノテーションSecurity, Fileアップロード |
Web.xml定義
バージョン | 定義内容 |
---|---|
2.3 | <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> </web-app> |
2.4 | <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> </web-app> |
2.5 | <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.5"> </web-app> |
3.0 | <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> </web-app> |
関連項目
外部リンク
- Servlet2.3JSR-053
- Servlet2.4JSR-154 Final Release
- Servlet2.5JSR-154 Maintenance Release
- Servlet3.0JSR-315