今回のテーマは、「サーブレットクラスの実行のしくみ」、「リスナー」、「フィルタ」、「アクションタグとEL式」です。今までより技術的な内容が多いですが、それでもまだ基本的な内容です。座学でしっかりと解説して、実際に自分でプログラムを作って体験します。今回のコンテンツです。1-1.サーブレットクラスの実行のしくみサーブレットとは、JavaでWebアプリケーションを作成するときの仕様(仕組み)で、Webサーバー上で動作してWebアプリの中心を担う機能を持っています。具体的には、Webページをはじめとして画面に関する処理は一切行わず、Webブラウザからの要求に応えたり、送られてきたデータを処理したりする役割を持っています。そんなサーブレットを使用する時の具体的な方法や注意点を丁寧に説明していきます。大まかな講義の流れは次の通り。1サーブレットクラスのインスタンス化2サーブレットクラスのライフサイクル3init()メソッドの特徴4destroy()メソッドの特徴1サーブレットクラスのインスタンス化サーブレットは、初回リクエスト時にインスタンス化され、Webアプリケーション終了まで残っています。インスタンス化されたサーブレットは、他のリクエストからも再利用されます。2サーブレットクラスのライフサイクルWebコンテナの中でサーブレットが生成(init())されて消去(destroy())されるまでの過程のことです。2回目以降のリクエストはロード済みのクラスで処理されます。この場面では、今までの講義で実装してきたメソッドがどの部分のメソッドなのかの説明もあり、理解を深める工夫も忘れていません。全体と部分を丁寧に説明している勉強会ですので、当たり前のことですが、すごいですね。3init()メソッドの特徴スーパークラスであるHttpServletから継承しており、決まったタイミングでアプリケーションサーバーが呼び出します。init()メソッドは、インスタンスが生成された直後に実行され、サブクラスでオーバーライドして処理を自由に記述することができます。4destroy()メソッドの特徴init()メソッドと同じく、スーパークラスであるHttpServletから継承しており、決まったタイミングでアプリケーションサーバーが呼び出します。destroy()メソッドは、インスタンスが破棄される直前に実行され、サブクラスでオーバーライドして処理を自由に記述することができます。講義内容をここで詳細にレポートすることはできませんが、基本をしっかりと押さえた講義内容で、みなさん自分の課題制作のことをイメージしながら聞いているのでしょうか、とても真剣ですし質問も積極的です。続いては、「リスナー」です。大まかな講義の流れは次の通り。1リスナーとは2リスナークラスの作り方3リスナーインターフェースの一覧1リスナーとはWebアプリケーションに何らかのイベントが発生した際にそれをプログラムに通知する機能のことです。この機能により、イベントの発生と連動したプログラムが実行できるようになります。2リスナークラスの作り方ポイントは、「@WebListenerアノテーションの付与」と「リスナーインターフェースの実装」です。ここでは、詳しくレポートはしませんが、とても大切ところですが、混乱しがちなところでもありますので、講師も繰り返し説明していますね。3リスナーインターフェース一覧ここでは、代表的なリスナーインターフェースについての紹介です。課題制作にうまく組み込めるでしょうか。1-3.フィルタ続いては、「フィルタ」です。大まかな講義の流れは次の通り。1フィルタとは2フィルタクラスの作り方1フィルタとはフィルタとは、クライアントからのリクエストおよびレスポンスに対して、リソース(Servlet/JSP/HTMLなど)での処理の前および後に何らかの処理を行うオブジェクトのことです。1つのフィルタを複数のサーブレットクラスに対して設定することができ、逆に1つのサーブレットクラスに複数のフィルタを設定することもできます。2フィルタクラスの作り方フィルタクラスは、「javax.servlet.Filterインタフェース」を実装して作成しますが、このインターフェースには3つのメソッド「init()/doFilter()/destroy()」が実装されています。response);」の前後に前処理、後処理を記述するのが大切です。「リスナー」や「フィルタ」など単語としてはよく聞く単語ですが、意味するところは違いますよね。この辺が混乱するところなのですが、実際に実装して動きを確認することができるのがこの勉強会のいいところなのですが、受講生のみなさん、実技まではもう少しだけお待ちくださいね。今日最後の講義は、「アクションタグとEL式」です。大まかな講義の流れは次の通り。1動的インクルード2主な標準アクションタグ一覧3EL式とは4EL式の注意点アクションタグとは、JSPページ内でよく使用する定型的な処理をタグ形式で記述可能にしたものです。アクションタグには最初から用意されている標準アクションと、自分で定義したカスタムタグがあります。1動的インクルード動的インクルードとは、実行時にインクルード先へ処理を委譲し、出力結果を動的にマージすることです。(実行後にインクルード元に処理が戻ってきます)メリットとしては、共通の内容の修正が簡単にできるようになります。標準アクションとはJSPで最初から用意されているタグで、良く使われる機能を実現するためのJavaコードが予め用意されています。ここでは、代表的な標準アクションタグの紹介です。課題制作でうまく使えるものはあるでしょうか。Language」の略で、JSPをより簡単に書くためにJSP2.0より導入されており、JSP上で使用します。演算結果や値の参照の結果を出力するために使用されます。・インスタンスが見つからない場合EL式で指定した属性名のインスタンスがスコープに保存されていない場合、例外はスローされず何も出力されません。リクエストスコープとセッションスコープに同じ属性名が定義されていた場合、常にリクエストスコープに保存されたインスタンスが利用されセッションスコープに保存されたインスタンスが利用できません。アクションタグやEL式については、実は講義ではもっともっと具体的な説明がされており、質問を多く出ましたが、残念ながら今回は割愛とさせていただきます。気になる方は、ぜひ講義を受けに来てくださ~い。以上で今回の座学は終了。みなさんお待ちかねの実技に移ります!今回も実技の課題が盛りだくさんです。1-5.ハンズオン(スッキリわかるサーブレットJSP)ハンズオンでは、座学で学んだことを実際に自分でプログラムを作成して確認します。「覚える」のではなく「作れる」ようになる!!を目指して受講者のみなさん、全力でチャレンジ中!!実は今回の課題は、全部で6つあります。さぁ、時間内におわるのでしょうか。実技も難易度が上がってきていますので、みなさんかなり苦戦しています。講師の方もいつもより質問を受ける回数が増えていますね。早く進んだ人が遅れている人に教えるのが、いつもの風景ですが、今日はそれどころではない様子です。それだけ、難しいところ(といよりはわかりにくいところ)をやっているんですね。これでもまだまだ基本のところです。これを乗り越えないと次に進めませんし、「作れる」ようにはなりませんので、みなさん頑張っていますね。次回のテーマは本日とばした「JDBCプログラムとDAOパターン」、「リーダブルコード」です。当勉強会も最終回です。みなさん、課題は順調ですか?次回の勉強会開催日が提出期限ですよ。今回の参加人数6名、辛口の受講者アンケートでは、満足度が平均「95点」を獲得し、「サーブレットの動作の細かい内容について知る事が出来ました。」「講義はとても良かった。」「演習時間が十分にあり良いと感じました。」など、多くの評価を頂きました。毎回、満足度の高いこの勉強会。講義と実技のバランスがいいのがポイントなんですね。それも経験豊富な講師がポイントを押さえて臨機応変に行っているからなんどと思います。今回は、とてもややこしくてわかりにくいポイントが多くありましたが、1つ1つの内容を実機での動作を確認することで理解できたのではないかと思います。当勉強会では、「覚える」のではなく「作れる」ようになる!を合言葉に、プログラミングを実際に経験してプログラミングの楽しさ、面白さを学んで現場で活躍できることを目指します。そのために、実技多めで楽しく技術を身につけられる様に工夫しています。自分で試してみて失敗しながら経験して技術を身に着けていってください。補講も受け付けていますので、遠慮なく!一緒にプロフェッショナルを目指して頑張りましょう!!本勉強会は、メイン講師2名(によって構成しており、受講者からの質問や問い合わせにも手厚く対応しています。見学に来てね!!私たちは、全てのエンジニアに市場価値を高め自身の望む理想のキャリアを歩んでいただきたいと考えています。今あなたが転職を検討しているのであればこちらの記事をご一読ください。理想のキャリアを実現するためのヒントが見つかるはずです。『技術力』と『人間力』を高め市場価値の高いエンジニアを目指しませんか?私たちは「技術力」だけでなく「人間力」の向上をもって遙かに高い水準の成果を出し、関わる全ての人々に感動を与え続ける集団でありたいと考えています。高い水準で仕事を進めていただくためにも、弊社では次のような環境を用意しています。ボールドでは「キャリア採用」のエントリーを受付中です。以下のボタンより弊社の紹介をご覧いただき、あなたの望むキャリアビジョンをエントリーフォームより詳しくお聞かせください。プログラミング言語とインフラでのインスタンスって?2020.01.15IT業界ヘルプデスクに転職したい。