サーブレットとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > デジタル大辞泉 > サーブレットの意味・解説 

サーブレット【Servlet】

読み方:さーぶれっと

ジャバサーブレット


Java Servlet

(サーブレット から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/06/11 16:36 UTC 版)

ナビゲーションに移動 検索に移動

Java Servlet(ジャバ サーブレット)とは、サーバ上でウェブページなどを動的に生成したりデータ処理を行うために、Javaで作成されたプログラム及びその仕様である。単にサーブレットと呼ばれることが多い。Jakarta EEの一機能という位置づけになっている。この機能を用いてショッピングサイトやオンラインバンキングなどをはじめとする多種多様な動的なWebサイトが構築されている。

概要

MVCアーキテクチャにおけるJava Servlet, JSP, JavaBeansの位置づけ

Java Servletはサーバサイド技術として登場した。

同様の技術(すなわち対抗技術)としてはPerlなどを用いたCGIPHPプログラムのプロセスを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

当初、JavaはAppletなどのクライアント側でJavaプログラムを稼動させるクライアントサイドの技術として注目を集めていた。しかし、サーブレットの登場以降、サーバ側でJavaプログラムを稼動させる形態が急速に普及した。こうしたサーバ側でJavaプログラムを稼動させる形態をサーバサイドJavaと呼ぶ。

役割

JSPの登場により、Java Servletはデータの入出力処理 (Controller) を担当することが推奨される。これはModel View Controller (MVC) による役割付けである。

歴史

Servletの歴史
バージョン リリース プラットフォーム 内容
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.4, J2SE 1.3 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アップロード
3.1 2013/05 JavaEE 7 クラウド対応, ノンブロッキング処理用I/O APIの追加, WebSocket等へのプロトコルアップグレードの対応, セキュリティ機能の強化[1]
4.0 2017/09 JavaEE 8 HTTP/2サポート

以下は、service()メソッドが何回呼ばれたかを出力する単純なサーブレットである。

サーブレットはServletインタフェースを実装する必要がある。サーブレットの実装は通常、プロトコルに依存しない抽象クラスであるGenericServletか、HTTP用のサブクラスであるHttpServletクラスを継承することで行う。この例ではHttpServletクラスを継承している。

service()メソッドはサーブレットのリクエストごとの処理を記述するメソッドである。HttpServletクラスを継承する場合、ここからさらにdoGet(), doPost(), doPut(), doDelete()といったHTTPメソッドごとのメソッドに分岐させることができる。ただし、以下の例ではその機能を使わず、直接service()メソッドをオーバーライドしている。

import java.io.IOException;
 
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ServletLifeCycleExample extends HttpServlet {
 
    private int count;
 
    @Override
    public void init(ServletConfig config) throws ServletException {
        super.init(config);
        getServletContext().log("init() called");
        count = 0;
    }
 
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        getServletContext().log("service() called");
        count++;
        response.getWriter().write("Incrementing the count: count = " + count);
    }
 
    @Override
    public void destroy() {
        getServletContext().log("destroy() called");
    }

}

Web.xml定義

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/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.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>

3.1 <?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">

</web-app>

脚注

関連項目

外部リンク


サーブレット

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/08 02:09 UTC 版)

Javaの文法」の記事における「サーブレット」の解説

詳細は「Java Servlet」を参照 Webサーバ上で実行されるJavaコードであり、その出力 (一般的にHTMLXML) は典型的にウェブブラウザに対して送信される

※この「サーブレット」の解説は、「Javaの文法」の解説の一部です。
「サーブレット」を含む「Javaの文法」の記事については、「Javaの文法」の概要を参照ください。

ウィキペディア小見出し辞書の「サーブレット」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「サーブレット」の関連用語

サーブレットのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



サーブレットのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2025 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【サーブレット】の記事を利用しております。
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのJava Servlet (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのJavaの文法 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS