Vol.2benkyokai2019/12/11TweetPocket「覚える」のではなく「作れる」ようになる!を合言葉に開催しているJavaWebアプリ開発勉強会は、開発系の勉強会の中でも資格取得ではなくプログラミングの楽しさや面白さを学んで貰う事を目的としています。そんな実践的で実技多めなJavaWebアプリ開発勉強会の第3回目をレポートします。今回のテーマは、ズバリ「スコープ」です。前回は、Webシステムのフロント部分のベースとなる「フォーム」とWebアプリケーション処理のベースとなる仕組みの「MVCモデル」について学びました。今回は、Webシステムで必要なデータを保持する仕組みの「スコープ」です。スコープとは?から始まり、3つのスコープについての解説のあと実際に自分でプログラムを作って、「スコープ」を体験します。今回のコンテンツです。1-1.スコープまずはスコープの基本から講義が始まります。本日のはじめの1歩ですが、基本の「き」ですから、講師も丁寧に説明をしていきます。大まかな講義の流れは次の通り。1スコープとは2インスタンスが共有できないと。受講者はというと3回目の講義ということもあり、緊張も解けてリラックスした雰囲気で受講していますが、みなさん目は真剣です。されているインスタンスを取得したりすることができる。2インスタンスが共有できないと。ルは処理結果(インスタンス)を取得できません。「JSPファイルにフォワード」は、前回の講義で勉強しましたね。・リクエストスコープ・セッションスコープ・アプリケーションスコープ4スコープとインスタンススコープに保存できるのは「インスタンス」に限られています。ないのでスコープに保存できません。納するIntegerやDoubleなどのクラス)を利用します。ここでは、講義内容を詳細にレポートできませんが、基本をしっかりと押さえた講義内容ですので、受講者もちゃんと講義についてきています。みなさん、実技に向けてイメージを膨らませながら聞いているのでしょうか。1-2.リクエストスコープ3つあるスコープの1つ目、「リクエストスコープ」です。大まかな講義の流れは次の通り。共有することができます。インスタンスのsetAttribute()メソッドを使用します。HttpServletRequestインスタンスのgetAttribute()メソッドを使用します。3リクエストスコープの注意点リクエストを跨いでインスタンスを共有することはできない!!まずは、リクエストスコープから講義です。図を使った処理の流れと実際のコーディング例を対比しながら講義が進みます。講師の方は受講生の様子を見ながら、所々前回までの復習を盛り込んだりととても丁寧です!1-3.セッションスコープ3つあるスコープの2つ目、「セッションスコープ」です。大まかな講義の流れは次の通り。利用したい場合に使用します。getSession()メソッドで取得します。HttpSessionインスタンスのsetAttribute()メソッドを使用します。ユーザー(ブラウザ)ごとに作成されます。ブラウザに設定することで両者を紐付けます。存、送信させるしくみです。クッキーをコンピュータに保存し、以後そのサーバにアクセスする際は、保存したクッキー情報を自動的にHTTPリクエストに付加して送信するようになります。ションIDのやりとりを可能にしています。メモリ不足になり性能の低下を引き起こしてしまいます。インスタンスを不要と判断し、ガーベジコレクションの対象とし、これを「セッションタイムアウト」といいます。続いて、セッションスコープの講義です。図を使った処理の流れと実際のコーディング例を対比しながら講義はリクエストスコープと同じですが、具体的に説明していきます。「セッションID」、「クッキー」、「セッションタイムアウト」など、よく聞く単語が飛び交いますが、聞いたことはあって知っているけど、ちゃんと説明できないって人が意外と多いので、ひとつひとつ丁寧に解説してますね。ここ重要なポイントです!!1-4.アプリケーションスコープ3つあるスコープの最後、「アプリケーションスコープ」です。大まかな講義の流れは次の通り。作成されるスコープです。JSPファイルで利用することができます。ServletContextインスタンスのsetAttribute()メソッドを使用します。ションスコープのインスタンスに不整合が発生する場合があります。発生しないように調停を行う必要があります。ド」とは処理の単位のことで、リクエスト毎にスレッドが作成されます。あるためWebアプリケーションを終了すると消滅してしまいます。ウトがないので、削除しないとメモリにインスタンスが残り続けてしまいます。なるので注意が必要です。最後に、アプリケーションスコープの講義です。「リクエストスコープ」、「セッションスコープ」の復習を兼ねて、スコープの範囲、保存期間などを比較しながら講義が進んでいきます。それぞれのスコープがWebシステムのどの範囲で有効かを繰り返し解説する熱の入った講義です。ここでも受講生から積極的な質問があがり、一つ一つ丁寧に回答していきます。時には現場での経験を交えた具体的なテクニック(プログラミングだけでなく、設計する際の観点など)も披露され、経験豊富な講師陣ならではだなと感心するばかりです。以上で今回の座学は終了。みなさんお待ちかねの実技に移ります!今回は実技の課題が盛りだくさんです。1-5.ハンズオン(スッキリわかるサーブレットJSP)ハンズオンでは、座学で学んだことを実際に自分でプログラムを作成して確認します。「覚える」のではなく「作れる」ようになる!!を目指して受講者のみなさんとても楽しそうに、そして真剣に取り組んでいます。今回は、「リクエストスコープ」、「アプリケーションスコープ」、「セッションスコープ」の3つのスコープを使用したプログラムをそれぞれ作成して違いを確認していきます。実技もだんだんと難易度が上がってきていますので、みなさんちょっと苦戦気味のようですね。講師の方も受講生に声をかけながらサポートしていきます。早く進んだ人が遅れている人に教える、いつもの風景ですが、それが普通にできる雰囲気もこの勉強会の特徴ですね。次回のテーマは「アプリケーション作成」です。当勉強会も折り返しです。今まで勉強した技術をしっかりと復習しながら進めていきます。今回の参加人数6名、辛口の受講者アンケートでは、満足度が平均「94点」を獲得し、「演習時間が長く最後までやり切れた。」「講師のみなさんのサポートのおかげで、理解が深まりました。」など、多くの評価を頂きました。残念ながら、時間内に課題を完成できなかった受講生もいましたが、アンケートの満足度はいずれも高いものでした。実際に自分でプログラミングできる形式の講座ならではの結果だと思います。今回は「スコープ」について勉強しましたが、いずれもWebアプリケーションの基礎となる知識です。間違って覚えている方が多い部分ですが、効率よく処理するアプリケーションを作成するためには、3つの「スコープ」の特徴と注意点を明確に理解をする必要があります。当勉強会では、「覚える」のではなく「作れる」ようになる!を合言葉に、プログラミングを実際に経験してプログラミングの楽しさ、面白さを学んで現場で活躍できることを目指します。そのために、実技多めで楽しく技術を身につけられる様に工夫しています。自分で試してみて失敗してながら経験して技術を身に着けていってください。一緒にプロフェッショナルを目指して頑張りましょう!!本勉強会は、メイン講師2名(2019年10月現在)によって構成しており、受講者からの質問や問い合わせにも手厚く対応しています。見学に来てね!!私たちは、全てのエンジニアに市場価値を高め自身の望む理想のキャリアを歩んでいただきたいと考えています。今あなたが転職を検討しているのであればこちらの記事をご一読ください。理想のキャリアを実現するためのヒントが見つかるはずです。『技術力』と『人間力』を高め市場価値の高いエンジニアを目指しませんか?私たちは「技術力」だけでなく「人間力」の向上をもって遙かに高い水準の成果を出し、関わる全ての人々に感動を与え続ける集団でありたいと考えています。高い水準で仕事を進めていただくためにも、弊社では次のような環境を用意しています。ボールドでは「キャリア採用」のエントリーを受付中です。以下のボタンより弊社の紹介をご覧いただき、あなたの望むキャリアビジョンをエントリーフォームより詳しくお聞かせください。プログラミング言語とインフラでのインスタンスって?2020.01.15IT業界ヘルプデスクに転職したい。