サーブレットの基礎知識 |
|
サーブレット(以下Servlet)、という名前を聞いて、それ自体は聞いたことがなくても、似たような名前を思い出される方は多いのではないでしょうか。「~let」という名前で有名なものに、Appletがあります。Appletは、主にWebブラウザ上でJavaのプログラムを動作させるための仕組みで、いわばクライアントサイドでのJava実行形態の1つと考えることができます。それに対し、Servletは、主にWebサーバと連携してJavaのプログラムを動作させるための仕組みで、サーバサイドでのJava実行形態の1つと考えることができるものです。
もちろん、サーバ側でJavaを動作させるだけなら、通常のJava Applicationを動作させてもよいわけですが、Servletは、主にWebアプリケーションでの使用を想定し、Webサーバと連携してクライアントと情報のやりとりを行いながら、処理を行っていくのが特徴です(単に、Servletといった場合は、クライアントになりうるものはいろいろあるのですが、ここでは、簡単のためにクライアントをWebブラウザに限定して話を進めていきます)。
通常、Web上のページは、Webサーバ上のファイルとして格納されており、クライアントからのリクエストに応じて、Webサーバが指定されたファイルの内容をクライアントに送信することで、ページが表示されるようになっています。Webサーバだけでページを提供している場合、その内容は固定された静的なもので、どのクライアントに対しても同じ内容しか提供できません。
しかし、Webの利用が時代とともに進むにつれて、静的な内容の提供だけでなく、クライアントごとに異なる内容(サービス)を提供したいという要求が出てくるようになりました。例えば、サーチエンジンのようなページでは、クライアントが検索したいキーワードを入力することで、その入力内容に応じた検索結果を表示する必要があります。そのためには、入力された内容をサーバ側で解析し、その内容に応じた処理を行い、その処理結果をクライアントに送信できる仕組みが必要です。
そういった処理は、Webサーバだけでは提供できませんので、Webサーバの代わりにそういった処理を行ってくれるソフトが必要になります。そのための仕組みの1つがJava
Servletなのです。
[関連記事]
サーブレットとJSPの連携 (@IT
Java Solution)
![]() |
「Java Solution FAQ」 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
![]() |
||
|
||
![]() |
Java Agile 記事ランキング
- AIコーディングで理解する、Javaのクラスとオブジェクト指向、インスタンス化、メソッド、コンストラクタ
- AIにJavaと開発環境について聞いてみた――AIコーディング時代に必要なプログラミング脳を強化しよう
- “Hello World”が3行で収まる、Oracleが「Java 24」を提供開始
- Spring BootとSpring MVCの違い 両者の特徴と使い分けのポイントとは
- COBOL/メインフレームのJava/マイクロサービス化サービスをデロイト トーマツが発表 どう実現しているのか
- AIにJavaのif、else、switchについて聞いてみた――条件分岐はフローチャートの方が理解しやすい
- Javaのfor、while、break、continueとは――繰り返し処理の違いと使い分け、構文をAIに聞いて学ぶ方法
- AIにJavaの変数、データ型、演算子について聞いてみた――GitHub Copilotで始めるAIコーディングの基本
- AIコーディングで理解する、Javaのクラスとオブジェクト指向、インスタンス化、メソッド、コンストラクタ
- AIにJavaと開発環境について聞いてみた――AIコーディング時代に必要なプログラミング脳を強化しよう
- Javaのfor、while、break、continueとは――繰り返し処理の違いと使い分け、構文をAIに聞いて学ぶ方法
- “Hello World”が3行で収まる、Oracleが「Java 24」を提供開始
- Springにおける「RestController」と「Controller」の違いとは
- Spring BootとSpring MVCの違い 両者の特徴と使い分けのポイントとは
- AIにJavaのif、else、switchについて聞いてみた――条件分岐はフローチャートの方が理解しやすい
- AIにJavaの変数、データ型、演算子について聞いてみた――GitHub Copilotで始めるAIコーディングの基本
- 「GitHub Copilot for Eclipse」(パブリックプレビュー)リリース、GitHub CopilotでEclipseの開発体験はどう変わる?
- COBOL/メインフレームのJava/マイクロサービス化サービスをデロイト トーマツが発表 どう実現しているのか