サーバーサイド Java 入門 基礎編 JSP / サーブレット 研修コースに参加してみた
研修コースの参加レポートの 3 回目は サーバーサイド Java 入門 基礎編 JSP / サーブレット です。
前回レポートした プログラミング(2) オブジェクト指向を理解する で出てきたオブジェクト指向によって、これだけ便利になるのか! ということが実感できた講座でした!
また Web アプリケーションの開発は学ぶ知識が広く、コースが終わってから自身でやってみることが必要になるのですが、その道筋がわかるコースになっていました!
では、どんな内容だったのか、レポートします!!
もくじ
コース情報
想定している受講者 | Java の基本的な言語構文がわかること |
---|---|
受講目標 | Web の仕組みと、 JSP とサーブレットを使った Web アプリの基本的な開発方法がわかる |
講師紹介
前回の Java プログラミング (2) に続き、登壇されたのは 矢沢 久雄 さんです。
『プログラムはなぜ動くのか』(日経 BP 刊)が大ベストセラー
IT技術を楽しく・分かりやすく教える “自称ソフトウェア芸人”
今回はボリュームが多いので、講師紹介はそこそこに受講者の方にアンケートします。
アンケートしてみると、矢沢さんがほぼ想定していた通りの結果でした。
- Java プログラミングの経験は少しだけ
- JSP /サーブレットの経験はほとんどなし
この講座の内容
こちらの途中に、サーバーサイド Java の学習のポイントを教えてもらいました。
サーバーサイド Java のポイント
- オブジェクト指向
- メーカー提供のオブジェクト部品を使いましょう
- 使うオブジェクトの中の仕組みは知らなくて良いよ
- なかなか日本人には感覚的に厳しい
- 分業して作る
- JSP とサーブレットなぜ分かれているのか、それは分業するため
- サーブレットはプログラマが作る
- JSP はデザイナーが作る
- デザイナーが Java を知らなくても良いように JSP に仕掛けがある
分業して得意領域を分けて開発する、というのはとても理にかなっていますね。
このコースでやること
通常 Web アプリケーションは HTML からデータを受け取って、 DB アクセスするのが本来ですが、このコースではフォームからリクエストパラメータを取得するところまでやります。
DB アクセスをやるのは、後続の サーバーサイド Java 入門 応用編 でやりますので、ぜひセットで受講して下さい、とのことでした。
Java 関連の代表的な Web 技術
Web アプリケーション開発に必要な紹介してもらったのですが、とても範囲が広いですね。。
分業したくなるのもわかります。
なお、このコースでは CSS と JavaScript は扱わず、 HTML のみでクライアントを作るものでした。
(ちなみに、 JavaScript は例えば、入力フォームのチェックしたり画面を変化させる仕組みとのことでした)
HTTP リクエストとレスポンス
ここから基本的な Web の仕組みを説明してもらいました。
HTML と CSS
- 昔は HTML で文章を表示したくて、コンピュータにもわかるようにタグ
<> </>
が生まれる - タグに文字の大きさとか色とかデザイン情報も入れていた
- とっても複雑になり、 CSS にデザイン情報を書くようになった
問題を改善する新しい技術はこうやって生まれているんですね。
リクエストとレスポンス
HTML と CSS がなぜあるのかわかった上で、 Web の仕組みの説明です。
基本はクライアントからサーバーにリクエストを投げ、サーバーが処理して、レスポンスをクライアントに返すことをしていて、それを HTTP という仕組みで実現しています。
当然、クライアントからどのサーバーにリクエストを出すのか、サーバーからどのクライアントにレスポンスを返すのか、それぞれのヘッダに郵送物のように送り状のようなものが指定されています。
リクエストの種類
また、クライアントから出すリクエストの種類があり、代表的な GET
と POST
を教えてもらいました。
そのリクエストに対して、レスポンスするときに一緒にステータスコードも返していて、これが 300 や 400 、 500 のように表現していることを知り、インターネットで時々見かける 404 エラー とかはこれかー、と一人で合点していました。
開発ツール
基本的な Web の仕組みがわかったところで、いよいよ開発を進めます。
まず、どのような開発環境で作るのか、その説明です。
すべてフリーソフトウェアとして公開されていて、今回は Pleiades という Java で必要な Web アプリケーション開発環境がオールインワンで揃うものを利用します。(講座では 4.5 を使いました)
ただ Pleiades の扱いで注意点が幾つかありました。
- ファイルサイズがめっちゃデカい。。。ので、注意
- zipファイルを展開するだけでインストールできる // アンインストールはファイル削除
- ディレクトリが深いので、 Windows の場合は
C:\
直下がよい // 展開されないこともある
コースが終わってからでも学習する際、ハマりそうなポイントですね。その他にもコースが終わってからも学習できるよう Eclipse などの設定を学びました。
サーブレット ( Servlet ) を作ろう!
いよいよサーブレットを書きます。
サーブレットは普通、リクエストを受け取って、レスポンスを作るところまでをやり、以降のレスポンスを表示するのは JSP がやります。
ここでは JSP ではなく、 HTML を直接返すプログラムを作ったのですが、手元資料の Eclipse 操作に従って開発を進めたのですが、感動的だったことを紹介します。
- すでに用意された部品を、継承を使って上書き( OverRide )する
GET
やPOST
のリクエストを受け取るメソッドが用意してある- これから作りたいメソッドを画面でポチポチ選択する
- コードが自動生成される!!!
- レスポンスを作るときも
out.println
を使うんだけど、println
というのを多態性で実現している- オブジェクト指向いえーい!!
このように Webアプリケーションに必要なオブジェクトは用意されている ので、プログラマは必要な処理だけを書くことに集中できるということでした。
スゲーぞ、オブジェクト指向!!
JSP を作ろう!
JSP とは
実際にクライアントに表示するページ、JSPを作ります。
JSP とは、HTML を <%
と %>
に囲んで Java のコードを挿入したファイルで、見た目は HTML です。
ただ、ここがわかりにくいところなのですが、サーブレットが JSP を生成するので、実行するのは実はサーブレットである、というところです。
うーむ、難しい。。
JavaScript はクライアント (ブラウザ) 側で動くけど、 JSP はリクエストを受け取ってサーバー側で動くので、そのような仕組みになっています。
作るもの
JSP の実行主体はサーブレットである、ということは、例えば JSP だけでサーブレットを介さず、リクエストを受け取ってレスポンスを返す仕組みも作れます。
このパートでも手元資料の Eclipse 操作に従って、そのプログラムを書いていきました。
ここでも JSP ファイルを作ろうと画面ポチポチすると、勝手に UTF=8 を指定するコードが自動生成されるなど、オブジェクト指向エラい! という場面が随所に出てきました。
フォームのリクエストパラメータを受け取る
サーブレット、 JSP を書いたところで、 Web ページのフォームからリクエストを受け取って、 HTML を返すサーブレットを作ります。
時間の都合上、 JSP は書きませんでしたが、これは後続コースでやるとのことです。あくまでセット受講がオススメです!
なお、題材はおなじみ、じゃんけんゲームです!
入力フォームからサーブレットにリクエストを投げる
まずは、用意されている、ゲームユーザーがじゃんけんの手を選ぶ入力フォーム ( HTML ) を見てみます。
<form action="/practice/JankenServlet" method="post">
リクエスト先のサーブレットと POST
メソッドが指定されていますね。
この指定先に、[名前][値] がペアになって、サーブレットにリクエストされます。
ちなみに、このサーブレットに送るデータを リクエストパラメータ と言います。開発しているとよく聞く単語です。
サーブレットを書く
続いて、コンピュータ側のじゃんけんの手を取得->判定->判定結果を HTML で返す JankenServlet
を作ります。
スライドの手順にしたがって、サーブレットを作成し、サンプルコードを写経します。
最後に、このプログラムを実行して、プログラムを動かして、このコースは修了しました。
まとめ
この研修コースでは Web の仕組みを知って、実際JSP/サーブレットを書いて動かしてみました。
やってみると、とにかく Web アプリケーションらしいところは用意された部品に任せて、作りたいところだけにフォーカスする、ということがわかり、オブジェクト指向の便利さがとても理解できました。
もちろんこの研修コースに参加しただけで、 Web アプリケーションは書けるようになりませんが、分厚い教科書で独習する前に、わかりやすく先に道筋を掴めました!
後続の 応用編 コースで、実際に JSP から Java のコードを隠す方法、 DB にアクセスする方法をやってみて、一通り道筋は完成するということなので、こちらも後日レポートします!!
SEプラスにしかないコンテンツや、研修サービスの運営情報を発信しています。