close
プログラミング クラウド Microsoft Azure 情報処理資格 基本情報技術者 IT基礎 応用情報技術者 開発・設計方法 オブジェクト指向 内定者・新人研修 プログラミング基礎 アルゴリズム コンピュータ数学 内定者研修 新人研修 ヒューマンスキル プロジェクトマネジメント プレゼンテーション リーダーシップ 組織マネジメント ネゴシエーション ロジカルシンキング Java UI/UX HTTP JavaScript基礎 情報処理資格 ネットワークスペシャリスト ネットワーク インターネットルーティング応用 IPアドレス データベース応用 SQL応用 パフォーマンスチューニング データベース設計 ER図 概念設計(データベース) 論理設計(データベース) IT資格 Linux基礎 OS・システム基盤 セキュリティ TCP/IP OSI参照モデル データベースセキュリティ ファイアウォール 標的型攻撃 SQLインジェクション ネットワーク基本設計 CCNA Cisco プロジェクトマネジメント資格 情報処理資格プロジェクトマネージャ 情報処理安全確保支援士 人事給与 財務会計 管理会計 簿記 生産管理 在庫管理 ERP バランススコアカード 情報処理資格 ITアーキテクト 情報処理資格 ITストラテジスト 情報処理資格 ITサービスマネジメント 情報処理資格 システム監査 PMBOK® PMP® プロジェクト計画 WBS リスクコントロール ITIL ITサービスマネジメント 要求定義 要件定義 見積手法 ビジネスインダストリ 業種・業界知識 業務知識 提案力 ソフトウェアテスト基礎 情報処理資格 データベーススペシャリスト ハードウェア基礎 外部設計(基本設計) 内部設計(詳細設計) データベース基礎 SQL基礎 RDBMS 物理設計(データベース) C++ Ruby MVC基礎 Webアプリケーション開発 JavaEE Javaプログラミング応用 フレームワーク MVC応用 Spring フレームワーク ソフトウェアテスト応用 テスト手法 Junit スマートフォンアプリ開発 Androidアプリ開発 C# 基礎 C# 応用 負荷テスト Javaプログラミング基礎 ソフトウェアテスト コーチング メンタリング HTML/CSS サーバー構築 仮想化技術 KVS (NoSQL) アジャイル スクラム ファシリテーション C言語 ITパスポート JSTQB データサイエンス 単体テスト ユニットテスト キャリアアップ インターネットルーティング基礎 パケット解析 LAN構築 データベース データサイエンティスト トレンド 障害対応 インフラ監視 HTTP/2.0 コンピュータサイエンス VPN ネットワーク物理設計 データベース障害 JavaScript モダンJS (Modern JavaScript) 応用 MVS応用 バックアップ/リカバリ 分散処理 Hadoop Hive Python AI 深層学習(DeepLearning) CentOS Linux応用 Zabbix シェルスクリプト Infrastructure as Code Windowsサーバー基礎 内部設計 Docker DevOps Windowsサーバー応用 NginX chef Ainsible ロジカルライティング R テスト自動化 Jenkins Git 継続的インテグレーション (CI) バージョン管理 Vagrant 要求分析 Redmine 継続的インテグレーション(CI) 継続的デリバリー (CD) ヒューマンリソース管理 Web API マイクロサービス コミュニケーション 業務知識/業界知識 マーケティング 語学 AWS 法務 IoT ビジネスマナー OJT 業務効率化 表計算ソフト オフィスソフト コンプライアンス フロントエンド Subversion PHP 関数型プログラミング Laravel モダンJS (Modern JavaScript) 基礎 Android Studio 機械学習 iOSアプリ開発 ぷプログラミング React 次世代高度IT人材 共創 IPA Raspberry Pi Xamarin スクリプト言語 GoF CUI VBA 資格 ビジネス文書 jQuery 研修参加レポート マネジメント OSPF テーブル設計 アンガーマネジメント クリティカル・シンキング PDU 経営改善 Pマーク 問題解決技法 サイバー攻撃 エンジニア 参加してみた エンゲージメントマネジメント 労働関連法 新人育成 ネットワーク構築 情報セキュリティマネジメント デザインパターン リファクタリング マルチスレッドプログラミング ベンダーコントロール Modern JavaScript 冗長化 VLAN インフラエンジニア チームビルディング テストケース リーダブルコード セキュリティ入門 ネットワーク入門 Node.js npm gulp ビルドツール Python入門 冗長化入門 インフラ実機演習 プロジェクト管理 Active Directory ネットワーク管理 コンテナ 正規化理論 Haskell 品質管理 OpenStack シンギュラリティ DBA中級 プロトコル UX 基本設計 FinTech トラブルシューティング

サーバーサイドJava入門 基礎編 研修コースに参加してみた

unsplash-logoHelio Rosas

研修コースの参加レポートの3回目は↓です!

サーバーサイドJava入門 基礎編

前回レポートした プログラミング(2) オブジェクト指向を理解する で出てきたオブジェクト指向によって、これだけ便利になるのか! ということが実感できた講座でした!
またWebアプリケーションの開発は学ぶ知識が広く、コースが終わってから自身でやってみることが必要になるのですが、その道筋がわかるコースになっていました!

では、どんな内容だったのか、レポートします!!

 

想定する受講者

  • オブジェクト指向を除くJavaプログラミングの経験があること
  • プログラミング<1>を受講もしくは相当の知識があることが望ましい

 

受講目標

  • Javaでクラスを作るポイントがわかる / Javaでクラスを使うポイントがわかる
  • オブジェクト指向プログラミングの用語と概念がわかる
  • オブジェクト指向プログラミングをJavaで実践するポイントがわかる
  • オブジェクト指向プログラミングの効果的な学習方法がわかる

 

皆さまの自己紹介

今回はボリュームが多いので、講師紹介はそこそこに受講者の方にアンケートします。
(講師は矢沢久雄さんです)

アンケートしてみると、ほぼ想定していた通りの結果でした。

  • 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 という仕組みで実現しています。

当然、クライアントからどのサーバーにリクエストを出すのか、サーバーからどのクライアントにレスポンスを返すのか、それぞれのヘッダに郵送物のように送り状のようなものが指定されています。

 

リクエストの種類

また、クライアントから出すリクエストの種類があり、代表的な GETPOST を教えてもらいました。

そのリクエストに対して、レスポンスするときに一緒にステータスコードも返していて、これが 300 や 400 、500 のように表現していることを知り、インターネットで時々見かける 404 エラー とかはこれかー、と一人で合点していました。

 

開発ツール

基本的なWebの仕組みがわかったところで、いよいよ開発を進めます。
まず、どのような開発環境で作るのか、その説明です。

すべてフリーソフトウェアとして公開されていて、今回は Pleiades というJavaで必要なWebアプリケーション開発環境がオールインワンで揃うものを利用します。(講座では 4.5 を使いました)

ただ Pleiades の扱いで注意点が幾つかありました。

  • ファイルサイズがめっちゃデカい。。。ので、注意です
  • zipファイルを展開するだけでインストールできます // アンインストールはファイル削除
  • ディレクトリが深いので、C:\ 直下が良いです // 展開されないこともある

コースが終わってからでも学習する際、ハマりそうなポイントですね。その他にもコースが終わってからも学習できるようEclipseなどの設定を学びました。

 

Servletを作ろう!

いよいよサーブレットを書きます。
サーブレットは普通、リクエストを受け取って、レスポンスを作るところまでをやり、以降のレスポンスを表示するのはJSPがやります。
ここではJSPではなく、HTMLを直接返すプログラムを作りました。

ここでは手元資料のEclipse操作に従って開発を進めたのですが、感動的だったことを紹介します。

  • すでに用意された部品を、継承を使って上書き(OverRide)する
    • GETPOST のリクエストを受け取るメソッドが用意して
    • あるこれから作りたいメソッドを画面でポチポチ選択する
    • コードが自動生成される!!!
  • レスポンスを作るときも out.println を使うんだけど、 println というのを多態性で実現している
    • オブジェクト指向いえーい!!

 

  • (参考)Eclipeseで画面ポチポチしてServletクラスを作る様子

このように 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カレッジが気になった方はこちらからお気軽にお問合わせください!

お問い合わせフォーム

SEカレッジの詳細をご覧になりたい方はこちら!!

SEカレッジ

特集・キャンペーン

よくある質問集

タグ一覧

研修参加レポート参加してみたJava基本情報技術者Linux基礎プログラミングセキュリティコミュニケーションプログラミング基礎オブジェクト指向SQL基礎マネジメントソフトウェアテストプロジェクトマネジメントアルゴリズムSQL応用情報処理資格PythonエンジニアIoTRaspberry PiJavaプログラミング基礎新人研修データベース設計Javaプログラミング応用ファイアウォールコーチングJavaScriptトレンド単体テスト障害対応ロジカルシンキングAIビジネスマナーRDBMSデザインパターンデータベースDocker物理設計(データベース)Linux応用テーブル設計マルチスレッドプログラミングビジネス文書JavaScript基礎データベース基礎jQuery内定者研修パフォーマンスチューニングテストケーステスト自動化ITIL関数型プログラミングパケット解析ネットワークアジャイルActive Directory経営改善LAN構築冗長化要求定義VLANOSPFUI/UXリファクタリング資格データベース障害インフラエンジニアデータサイエンスZabbixSQLインジェクション新人育成ソフトウェアテスト基礎C# 基礎CCNAプロトコルネットワーク構築IPAプロジェクト管理JavaEEModern JavaScript情報セキュリティマネジメントITサービスマネジメントIT基礎スクラムGoFエンゲージメントマネジメントVPNセキュリティ入門PマークPMBOK®ネットワーク入門要件定義Junit問題解決技法データベース応用WBS表計算ソフトDBA中級プレゼンテーション正規化理論ロジカルライティングWebアプリケーション開発アンガーマネジメントシェルスクリプト仮想化技術ネゴシエーションnpmAWSHaskellC# 応用クリティカル・シンキングInfrastructure as CodeCiscoUXTCP/IPgulp品質管理インフラ監視リーダブルコード継続的インテグレーション (CI)モダンJS (Modern JavaScript) 基礎インターネットルーティング応用内部設計簿記基本設計CentOSOSI参照モデルビルドツールOpenStackヒューマンスキルER図ネットワーク管理機械学習テスト手法IPアドレスPython入門業務効率化FinTechITパスポートシンギュラリティ労働関連法業務知識/業界知識コンテナ次世代高度IT人材データサイエンティストchef冗長化入門MVC基礎クラウドトラブルシューティングHTTPHTML/CSSOS・システム基盤Node.jsマーケティング共創サイバー攻撃チームビルディングリスクコントロールインフラ実機演習フロントエンドベンダーコントロール

過去の記事