
今回は…
というテーマでお送りします。

興味津々です。よろしくお願いします。

どんな内容か、期待しています。よろしくお願いします。
目次
【1】 サーブレットとは
サーブレットとは…
そして…
1つずつ見ていきましょう。
① Webコンテナ上で動くJavaによるWebアプリの一部
Webブラウザは HTTP通信を行い
Webサーバにリクエストを出し、レスポンスを受け取ります。
Webサーバは、受け取ったリクエストに応じた処理を
APサーバに依頼します。
APサーバには、Webコンテナがあって…
この Webコンテナ上で動きます。
そして…
Webアプリケーションの一部
という位置づけになるのです。
② リクエストに応じた処理をする Javaプログラム
また、リクエストに応じた処理をする Javaプログラム
という点についてです。
前回お話したように、URLは
以下の4つの部分に 分かれます。
✅ サーバ名の部分
✅ Webアプリ固有のコンテキストルートの部分
✅ Webアプリ内で定められた URLパターンの部分
そして、1つの Webアプリの中では
に応じて、サーブレットが動くことになります。
すなわち、サーブレットとは
と言えるのです。
【2】 サーブレット定義
まず、サーブレットの位置づけを見ておきましょう。
javax.servlet.http パッケージの HttpServlet という
抽象クラスを 継承したクラスです。
そして、doGet()メソッド・doPost()メソッドを
必要に応じて オーバーライドします。
私達 Webアプリ開発者は HttpServlet を継承した
サーブレットを URLパターン毎に作成します。
そして、その時に…
対応するか、紐づけをしておきます。
Webコンテナは、リクエストを受けると
URLパターンから 該当のサーブレットを特定します。
そして、初回のリクエスト時にインスタンス化を行い
2回目からは既存のインスタンスを使用します。
更に、Webコンテナは、リクエストを受けた時に
その種類によって サーブレット内のメソッドを 呼び出します。
リクエストの種類は2種類で…
GETリクエストと POSTリクエストです。
POSTリクエストの場合には doPost() メソッドを呼び出します。
2つのリクエストの違いは、いくつかありますが…
URLを指定した場合(アドレスバー や リンク)の
リクエストは GETリクエストになります。
Webブラウザの画面から入力して、ボタンを押すことで
リクエストを出す場合には…
GETリクエストの場合と POSTリクエストの場合の
両方があります。
今回は…
という事を 押さえておきましょう。
そして、この 図の
❸・❹ は Webコンテナの仕事となりますので…
私達 Webアプリ開発者は ❶・❷ を
すれば良い こととなります。
❷ の URLパターンとサーブレットの紐づけは
次のコーナーで お話します。
ここでは、サーブレットの作成について
確認しておきましょう。
サーブレットを定義する時には…
必ず javax.servlet.http パッケージの
HttpServlet を 継承して クラスを作成します。
HttpServlet クラスは 抽象クラスで
サーブレットの雛形となるクラスです。
そして、必要に応じて doGet() メソッド
doPost() メソッドをオーバーライドして…
…該当サーブレット 独自の処理 を実装します。
GETリクエストに対応した処理を
doGet() に定義して…
POSTリクエストに対応した処理を
doPost() に定義します。
このあたりは、eclipse を使うと
間違えずに 作成できます。
【3】 URLマッピング
次に、URLマッピングについて見ていきましょう。
…ですが、これは
URLパターンとサーブレットを結びつけることです。
先ほど、URLパターンに応じたサーブレットが動く
というお話をしましたが…
そのために…
結びつける必要があります。
この事を URLマッピングと言います。
そして、このURLマッピングの方法としては…
サーブレット定義の直前に
@WebServlet 丸括弧 ダブルクォーテーション で
/URLパターン を記述します。
この事によって、URLパターンと
サーブレットが結びつくこととなるのです。
ここでは、サーブレットの doGet() メソッド
doPost() メソッド実行までのイメージを見ておきましょう。
HTTP通信で リクエストを出す時に
Webブラウザでは URLを指定します。
この時に、サーバ名によって サーバを特定して…
コンテキストルート(名)は Webアプリ毎に
決められているので Webアプリを特定します。
そして、URLパターン に対応するサーブレットは…
@WebServletアノテーションによって
サーブレットにURLマッピングされて特定できます。
また、呼び出すメソッドは
リクエストの種類によって…
doGet()メソッド または doPost()メソッド
が選ばれる事となります。
このイメージ、基本になりますので
押さえておきましょうね。

一通り理解しました。順々に考えれば大丈夫そうです。

復習もしながら進めていきます。
【4】 レスポンスの生成
サーブレットの中での
レスポンスの生成について 見ていきましょう。
サーブレットの
doGet()メソッド、doPost()メソッドは…
リクエストに関する情報 と レスポンスに
関する情報 を パラーメータで受け取ります。
HttpServletRequest型の request
HttpServletResponse型の response
です。
このうち、私たちは response を使って
レスポンス内容を作ることとなります。
続いて、このレスポンス生成 3ステップを
見ていきましょう。
① コンテンツタイプ&エンコーディング方式を設定
レスポンスが、text 文字の情報で html である事と
文字コードが UTF-8 であることを示します。
response の setContentType() メソッドを使用します。
② 内容 書き出しオブジェクトの取得
response の getWriter() メソッドを呼び出して…
レスポンス内容を書き出す
PrintWriter型の オブジェクトを取得します。
③ 内容 書き出し
②で取得した PrintWriter型オブジェクト
(この例では 変数 out としている部分です)の…
println() メソッドを使って、HTMLのコンテンツを
書き出していきます。
この①~③をしておくと、後は Webコンテナが
レスポンスを クライアント側に 送り出してくれるのです。
【まとめ】
JavaによるWebアプリの一部。
✅ リクエストに応じた処理をする
Javaプログラム。
継承して クラスを作成する。
✅ 必要に応じて doGet() と
doPost() をオーバーライドする。
結びつけること。
✅ @WebServlet アノテーション
を使う。
① コンテンツタイプ&
エンコーディング方式を設定。
② 内容 書き出し
オブジェクトの取得。
③ 内容 書き出し。



今回も、ご覧いただき、ありがとうございます。