Java_Servletとは? わかりやすく解説

ジャバ‐サーブレット【Java servlet】


サーブレット

別名:Javaサーブレット
【英】Java Servlet, Servlet

サーブレットとは、Java言語記述された、Webサーバー上で実行されるプログラムのことである。正確にJavaサーブレットであるが、多く場合、単にサーブレットと呼ばれる

サーブレットは、WebブラウザからWebサーバー上のサーブレットが呼び出されると、必要に応じて検索実行してHTML文書動的に生成してWebブラウザ返送する

サーブレットは、一度Webサーバー上で実行される待機状態になり、複数クライアントからの要求に対して並行動作するCGICommon Gateway Interface)のように、リクエストのたびにプログラム読み込まれないため、高速動作するメリットがある。

なお、クライアント動作するJavaプログラムアプレット呼ばれ、サーブレットとは区別されている。


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>

脚注

関連項目

外部リンク


「Java Servlet」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。



固有名詞の分類


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

辞書ショートカット

すべての辞書の索引

「Java_Servlet」の関連用語

Java_Servletのお隣キーワード
検索ランキング

   

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



Java_Servletのページの著作権
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の元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS