スッキリわかるサーブレット&JSP入門 第2版 〜振り返り〜
スッキリわかるシリーズの「スッキリわかるサーブレット&JSP入門 第2版
」を読みましたので、振り返ります。
本作はすっきりわかるシリーズの4作目です。
SQL入門は読んでいませんが、他の3作はどれもわかりやすく良質な本でしたので、
Javaを学習するならこれらの本で体系的に学ぶのはオススメです。
ただ、ボリュームが多いのでこれらを全部読もうとすると時間は掛かります。
掛かった読書時間はこんな感じです。
シリーズ | 読了時間 |
---|---|
スッキリわかるJava入門 第3版 | 25時間 |
スッキリわかるJava入門 実践編 第2版 | 20時間 |
スッキリわかるサーブレット&JSP入門 第2版 | 20時間 |
第1章 HTMLとWebページ
HTMLとはWebページを記述する言語のことです。HTMLの説明は少ないので、全然わからないと言う方は別途学習が必要です。
第2章 Webのしくみ
Web通信のしくみ、サーバーとのやりとり、開発環境など学びます。リクエスト、レスポンス、Content-Type、Eclipse、ApacheTomcatなどの用語がでてきます。
第3章 サーブレットの基礎
サーブレットとはサーバーサイドのプログラムを作る技術のことです。サーブレットクラスをサーバー上で実行してHTMLを出力します。サーブレットクラスでの定義方法の仕組みを学びますが、フォーマットはEclipseが自動で生成してくれます。
第4章 JSPの基本
JSPとはJavaSeverPagesの略です。サーブレットと同じくサーバーサイドプログラムの技術のことです。JSPはHTMLにJavaのコードを埋め込む形になり、サーブレットよりもHTMLの記述が楽になります。
第5章 フォーム
formタグを使ってWebページに入力したデータをサーバーサイドプログラムに送信します。GETリクエストとPOSTリクエストを使い分けてリクエストパラメータとして値をサーバーに送り、サーブレットで受け取った値を取得します。
第6章 MVCモデルと処理の遷移
MVCモデルとはModel・View・Controllerの3つに役割を分けて作るアプリケーションの構造のことです。フォワードやリダイレクトを使って処理をクラスからクラスへ移動します。
- モデル(Model) アプリケーションの主たる処理やデータの格納などを行う
- ビュー(View) ユーザーに対して画面の表示を行う
- コントローラ(Controller) ユーザーからの要求を受け取り、処理の実行をモデルに依頼し、その結果をビューに依頼する
第7章 リクエストスコープ
スコープとはインスタンスを保存する領域のことです。サーブレットクラスやJSPファイルでインスタンスをやり取りする際に利用します。スコープで使用するインスタンスはJavaBeansと言うクラスの中に作ります。リクエストスコープ、セッションスコープ、アプリケーションスコープの違いは保存する期間が違います。リクエストスコープで保存したインスタンスはレスポンスが返されると消滅します。
第8章 セッションスコープ
セッションスコープはブラウザを閉じるとインスタンスが消滅します。セッションスコープに保存したインスタンスはリクエストを跨いで使用できますが、セッションスコープはブラウザごとにセッションIDが作成されるのでブラウザ間でのインスタンスの利用はできません。
第9章 アプリケーションスコープ
アプリケーションスコープはWebアプリケーションが終了するまで利用できます。サーバーを停止か再起動した際にインスタンスが削除されます。全ユーザーでインスタンスを共有できます。
第10章 アプリケーションの作成
ログイン機能、ログアウト機能、投稿機能、閲覧機能を持つWebアプリケーションを作成します。この章は一気に開発するプログラムが増えるので一回で理解するのは困難ですが、アプリケーション作成に慣れることができる章です。
第11章 サーブレットクラスの実行のしくみとフィルタ
initメソッド、destroyメソッド、リスナー、フィルタに関して学びます。
- initメソッド サーブレットクラスがインスタンス化した際に最初に実行されます。
- destroyメソッド サーブレットクラスのインスタンスが破棄される直前に実行されます。
- リスナー イベントに応じてメソッドを実行できる特殊なクラスです。
- フィルタ サーブレットクラスごとに共通の処理をさせることができる特殊なクラスです。
第12章 アクションタグとEL式
アクションタグ Javaのプログラムを呼び出すことができるJSPのタグです。動的インクルードは標準アクションタグの一つでJSPの中からJSPを呼び出すことができます。
EL式 ${属性名.プロパティ} スコープに保存したインスタンスを容易に呼び出すことができる記述方法です。
JSTL Java Sever Pages Standard Tag Libraryの略です。JSTLはJSPの標準としてまとめられてる第三者が開発できるカスタムタグの5つのタグライブラリのことです。
第13章 JDBCプログラムとDAOパターン
DBMSと言うソフトウェアを使ってデータベースを管理します。データベースとのやり取りはJDBCドライバを利用します。JDBCドライバとはJava Data Base Connectivity Driverの略でデータベースを操作するために必要なクラスやインターフェースをまとめているライブラリです。DAOとはData Access Objectの略で、データベースの操作を担当するクラスのことです。
第14章 Webアプリケーションの設計
最終章です。要件と設計の作り方を学び、ログイン機能とユーザ登録機能がある簡易的なショッピングサイトを作ります。
すっきりわかるシリーズは読み応えがあり面白かったですが、達成感よりも疲労感がすごいです。このシリーズを読み切るには(=javaに手を出すと同意)覚悟が必要です。
<プログラミングスクール>Tech Academy のエンジニア転職保証コースの内容をまとめました
Javaの復習のために、以前勉強したTechAcademyのテキストを読み直し、まとめました。
TeckAcademyには2019年6月に入会
私が選んだコースはエンジニア転職保証コースです。このコースはテックアカデミーのJavaコースに転職のカウンセリングが追加されたコースです。期間は12週間です。12週経過した後にキャリアカウンセリングを行い、転職活動が始まります。わからないことがあればSlackで質問に答えてくれるサービスがありますが、このサービスがあるからこそ最後まで終わらせることができました。テックアカデミーのテキストは未経験者には独学では難しいです。最終的には日報管理システムを構築できるようになりますが、私にはテキストの内容が難しく、理解できないまま無理やり日報管理システムを終わらせました。
コース:エンジニア転職保証コース(Javaコース)
期間:12週間 → その後、転職活動
学習時間:160時間(目安)
Slackによるチャットサポート
週2回のテレビ電話によるメンタリング
12週間のプランなので、週に13時間 の学習時間を確保する必要があります。
No | レッスン名 | 時間 | 累計 | 12週間 |
---|---|---|---|---|
0 | 事前準備 | 3 | 3 | 1週目 |
1 | 本コースで学ぶこと | 1 | 4 | 1週目 |
2 | HTML/CSS | 12 | 16 | 1,2週目 |
3 | Javaプログラミング基礎 | 10 | 26 | 2週目 |
4 | 制御構文 | 10 | 36 | 3週目 |
5 | オブジェクト指向プログラミング1 | 10 | 46 | 3,4週目 |
6 | オブジェクト指向プログラミング2 | 10 | 56 | 4,5週目 |
7 | データベース(DB) | 5 | 61 | 5週目 |
8 | JDBC1 | 10 | 71 | 5,6週目 |
9 | JDBC2 | 10 | 81 | 6,7週目 |
10 | Webアプリケーションの仕組み | 2 | 83 | 7週目 |
11 | サーブレット/JSP | 30 | 113 | 7,8,9週目 |
12 | Git/GitHub | 5 | 118 | 9,10週目 |
13 | メッセージボードの構築 | 15 | 133 | 10,11週目 |
14 | 日報管理システムの構築 | 27 | 160 | 11,12週目 |
Lesson.0 事前準備
Lesson.1 本コースで学ぶこと
Lesson.2 HTML/CSS
- Webサイトの仕組み
- HTMLとCSSの概要
- HTMLの基本
- head要素内の記述
- body要素内の記述
- id属性とclass属性の設定
- CSSの基本
- Webページのレイアウト
- デベロッパーツール
- ファイルパスについて
Lesson.3 javaプログラミング基礎
Lesson.4 制御構文
Lesson.5 オブジェクト指向プログラミング1
- オブジェクトとは何か
- パッケージ
- オブジェクト思考を使ったJavaプログラミング
- 便利なクラスの紹介
Lesson.6 オブジェクト指向プログラミング2
Lesson.7 データベース(DB)
- データベースとは
- リレーショナルデータベース
- データベースの役割
- データベース作成の流れ
- データベースソフトフェア
- MySQLのインストール
- MySQLへの接続と切断
- データベースの作成
- テーブルの作成
- SQLでテーブルのデータをCRUD操作
- 条件で絞り込み - WHERE句
- ORDER BY句で順番を決める
- 集計関数でレコードを分析する
- テーブルの結合
- グループ化
- (補足)副問い合わせ
- SQLをもっと学習する
- 課題:データベースの作成
Lesson.8 JDBC1
Lesson.9 JDBC2
- DbConnectSample01から05の問題点
- DTOとDAO
- インピーダンス・ミスマッチ
- もっと楽にDTO/DAOとDBのやりとりをする方法
- Hibernateを使う
- 課題:personテーブルからのデータの取得
Lesson.10 Webアプリケーション
Lesson.11 サーブレット
- eclipseのセッティング
- はじめてのサーブレット
- Java WebアプリケーションのURL構造とルーティング
- eclipseでWebアプリケーション開発をする上での注意点
- はじめてのJSP
- JSPの書式の構成要素
- コントローラ(Servlet)からビュー(JSP)を呼び出す
- リダイレクト
- リクエスト・パラメータの受け取り方
- JSPへ値を送るためにスコープを使う
- JSTLとEL式
- フィルタ
- リスナー
- 実践:お問い合わせフォームの作成
- 課題:おみくじサーブレット
- (参考)よくあるエラーの解決方法
Lesson.12 Git/GitHub
- バージョン管理
- Gitとは
- GitHubとは
- Gitの基本概念
- Gitを使う準備
- はじめてのバージョン管理
- GitHubのアカウント登録
- GitHubへ反映する
- Gitで管理しないファイルを指定する
- (補足)過去のコミット情報の閲覧
- (補足)元に戻す
Lesson.13 メッセージボードの構築 目安15時間
- 準備:eclipseから(コマンドプロンプト)を読み出す
- eclipseプロジェクトの作成
- 最初のサーブレットを作ってTomcatの動作を確認する
- MySQLとHiberbateのセットアップ
- EncodingFilterを追加する
- new(新規登録)の作成
- indexとnewのビューの作成
- create(挿入処理)の作成
- show(詳細画面)の作成
- edit(編集画面)の作成
- update(更新処理)の作成
- destroy(削除処理)の作成
- より良いアプリケーションにするTips
- 課題:タスク管理アプリケーションの作成
- (参考)HerokuでWebアプリケーションを公開する
Lesson.14 日報管理システムの構築
- プロジェクトの作成と初期設定
- Employee(従業員)情報の管理機能
- ログイン機能
- Report(日報)情報の管理機能
- トップページに自分の日報一覧を表示する
テキストの内容はわかりづらく、課題が難しいです。Javaの書籍で有名な「スッキリwかるJava入門」と比べると圧倒的に説明が足りません。しかし、チャットサポートやメンタリングでのサポートがあるため、不明点があってもすぐに解決できます。それを踏まえると、実践重視で理にかなっているとも思います。私の場合は結果的に転職が成功しているので、TeckAcademyに通って正解でした。
大規模流通系システムの会計部門の管理システムに関して取りまとめ
大規模流通系システムに携わることになり、プログラムを管理する上で様々なソフトウェアを使っているので取りまとめてみました。
見る人が見れば分かりますが、富士通さんの下で働いているので富士通さんのソフトばかりです。
統合開発環境(IDE)
エディタ、コンパイラ、ビルド、デバッガなどの支援ツールを統合した開発環境のことです。バージョン管理システムと連携、デバッグやプログラムのステップ実行、コンパイル機能などにより生産性を高めます。
Webサーバソフトウェア&サーブレットコンテナ
TomcatはJavaサーブレットやJSPを実行するためのWebサーバ構築に欠かせないソフトウェアです。ApacheとTomcatは別物ですが、2つ合わせてTomcatと呼ばれることが多いです。Apacheはサーバーを構築するためのWebサーバソフトウェアですが、サーブレットの実行はできません。Tomcatはサーバ構築もサーブレットの実行もできますが、Tomcatだけではサーバ構築の性能が低いのでApacheと組み合わせて使われます。
SQL開発ツール
A5SQL
データベース開発における生産性を向上させるためのツールです。SQL入力支援、テーブルの編集、ストアドプロシージャの実行、ER図の作成などができる汎用SQL開発ツールになっています。
運用管理ソフトウェア
System Walker
クラウド上での情報通信環境(ICT)の運用を管理して、ビジネスをサポートするソフトウェアです。ICTリソースを管理、システム構成を管理、業務運用の自動化などの様々なソフトウェアを含んでいる。
資産管理ツール
ARMS
System Walkerの一部の機能になります。そもそもIT資産管理とはセキュリティやコンプライアンスの強化が目的で導入されるシステムです。現場ではリリースをするプログラムを資産として、リリースする際に利用します。
システム構築ツール
富士通のシステム構築ミドルウェアのブランドの総称のことです。現場ではIT、ST、OT、本番の開発環境の管理システムとして使用しています。
帳票作成・運用ソフトウェア
List Creater
Interstageのソフトウェアの1つです。各種伝票や申請書類を設計・出力し、業務の効率化を図るシステムです。帳票を簡単に魅力的な設計ができ、データ形式や運用方法を柔軟に対応できます。
帳票配信管理ソフトウェア
List Manager
Interstageのソフトウェアの1つです。大量の帳票を高速出力やオンライン業務の帳票出力を実現する帳票配信管理ソフトウェアです。セキュリティの向上、高品質な帳票配信出力システム、短期構築など柔軟性を向上する運用をサポートします。
課題管理ツール
Quanpass
システムに問題が発生した際に、IDを発行して課題を管理します。ARMSなどのシステムと連携していて、リリースする際はQanpassの対応状況が進んでいないとリリースができません。
統合業務ソリューション(ERP)
GLOVIA
会計業務、人事業務、生産業務、物流業務、販売業務、などの基幹となる業務を統合して効率化、情報の一元化を図るためのシステムです。
プロジェクト管理ツール
Project Web
現場ではプロジェクト管理と言うよりも、共有フォルダがメインのイントラネットのような扱い方です。共有フォルダ、掲示板、スケジュール、メッセージ、イベントなどを共有・管理するソフトウェアです。
ほかにも細々とあるのですが、まだ把握しきれていません。
本日はここまでです。
将来を見据えるためにプロフィールを作ってスキルの棚卸しをしました
スキルの棚卸しをしてみました。
これから作るポートフォリオサイトに流用できるよう将来の自分に向けて綴ります。
ヒストリー
去年(2019年)までホテルマンでした。最初はグラフィックデザイナーを目指していて、デザインの学校に通ったりデザイン事務所でバイトなどしましたが、某有名ホテルに入社しマーケティング部でホテルの制作物を主に担当しました。他にもWebや広報など幅広く担当しました。その後、マーケティング部から異動しドアマン・ベルマンとして従事しました。今年(2020年)からはSES企業に転職し、プログラマーとして流通システムの保守の業務に携わっています。
ホテルで培ったスキル
主に接客、デザイン、マーケティングに関して担当し、基本的な事務仕事も一通り経験しています。- チラシ、メニュー、パンフレットの作成/進行管理
- 写真撮影のディレクション/スケジューリング/タイムキーパー
- 広告出稿
- プレスリリースの作成
- インタビュー
- 社内冊子の作成
- ホームページの保守
- ホームページの新規ページの立ち上げ
- バナー制作
- 新プランの造成
- 市場調査/資料作成
- ブランディング
- 施設のサイネージ管理
- 社内調整
- 予算管理
- 書類作成
- プロジェクト進行管理
テックアカデミーの受講
デザインからプログラミングに興味が移り、テックアカデミー と言うプログラミングスクールに通いました。- 問い合わせフォーム
- メッセージボード
- 日報管理システム
現在
終わり
HTMLのタグの由来、元ネタ
先日、HTMLとCSSの本を読んだ際、「略している単語やタグの由来がわかれば、もっと覚えやすいのに」と感じたので、由来や元ネタを取りまとめます。
略語、由来の一覧
HTML ... HyperText Markup Language
WWW ... World Wide Web
タグ
<h> ...heading→見出し
<br> ...break→壊す、打ち破る
<p> ...paragraph→(文章の)節
<div> ...division→分割、仕切り
<span> ...span→期間、全範囲
<tr> ...table row row→行
<th> ...table header head→頭
<td> ...table data data→データ
<ol> ...ordered list→順序のあるリスト
<ul> ...unordered list→順序のないリスト
<li> ...list item →リストの項目
<a> ...anchor→錨(いかり)、支え
<href> ...hypertext reference→ハイパーテキストの参照
<article> ...記事
<section> ...部分、仕切られた場所
<script> ...台本、脚本
その他
meta ...meta information meta→高次の、間の
colspan ...col→column column→コラム、欄 span→期間
rowspan ...row→行 span→期間、長さ
src ...source→源泉、情報源
alt ...alternate→代役、交互の
RGBA ...red green blue alpha
alpha ...第一の、はじめ、などで使われるがここでは「透明度」として使用
英語ができる人はわかるのだろうけど、英語ができない人のためにもタグの由来も本に記載してもらえればもっと理解しやすいのに、と思います。
FX初心者がつまづいたポイントや気になった単語をまとめました
FXをはじめてからつまづいたり疑問になったポイントをまとめました。
ほとんどのことがやってみないと分からないです。
やっててもわからないことだらけですが、FXは本当に奥が深いです。
レバレッジの設定
はじめて通貨を購入した時、20倍のレバレッジが自動で掛かりびっくりしました。レバレッジの設定はFX会社によって違うようですが、外為オンラインでは、 通貨÷資金=レバレッジ と自動計算です。
土日は取引不可
FXは土日は取引不可です。なぜレートが動かないんだろう?とFXを初めて3週間経ってようやく気付きました。FX会社によって若干時間は違いますが、月曜日の午前7時前後~土曜日の午前7時前後(米国サマータイム時は6時前後)までが取引できる時間帯です。
pips
異なる通貨を共通の単位で表すことができます。ドル/円では「1pips=0.01円(1銭)」となります。1pipsは為替レートでの最小の単位です。やればすぐに理解できるのに、本を読んでる時は全く理解できませんでした。
スプレッド
取引するときの売値と買値の差のことをスプレットといいます。FXで取引をする上で実質上の取引手数料となります。
スワップポイントで得られる利益のことです。2つの通貨を交換する際に高金利の通貨を買うと金利差分をスワップとして利益を得られます。
リスクオフ
リスクオフとはリスク回避とも呼ばれ、リスクを回避するために不安定な資産から安全な資産に移動する相場状況のことです。
リスクオン
リスクオンとはリスクオフとは逆に、リスクを取ってでもリターンを得る流れになっている相場状況のことを言います。
クロス円
ドル以外の円との通過ペアのことです。ユーロ円やオーストラリアドル円はクロス円です。クロス円はドルストレートと比べると値動きが激しく動きます。
ドルストレート
ドルとの通過ペアのことです。ドル円やユーロドルはドルストレートです。ドルは基軸通貨なのでクロス円に比べて予想がしやすいとのことです。
価格変動の度合いのことです。ボラティリティが高いとは価格の変動が大きいことを表します。
順張り
価格のトレンドに沿って価格が上昇傾向であるならば買い、下落傾向になったタイミングで売ります。逆に下落傾向の通過ペアに対して売りから入り、上がり始めたタミングで売ることも順張りです。
逆張りは上昇トレンドではそろそろ高値を掴んだから下がるだろうと予想をつけて売りから入り、下落トレンドでは底をついたから上がるだろうと予想をつけて買うことです。
ダブルボトム(2番底)
安値が底に届いた時に一度上昇して再度下落して安値を更新して、Wのような形でトレンドが転換すること。
ダブルボトムの上昇版、Mのような形で上昇トレンドから下落トレンドに転換すること。
FXは覚えることが多すぎて終わりが見えません。
大変なものにハマってしまったようです。。。
ドットインストールのプレミアム会員に入会して思ったこと
ドットインストールを利用したので、プロゲートや技術書での学習と比較して取りまとめます。
目次
- ドットインストールに関して
- プロゲートとドットインストールの比較
- 技術書での学習とドットインストールの比較
- まとめ
ドットインストールに関して
急遽PHPでコーディングを行うことになり、サクッと勉強できると噂のドットインストールで学習しました。PHPとCloud9の動画を見ましたが、どちらも簡単で特に問題なく学習を進めることができました。
入会前のドットインストールの知識
- 3分動画で学習
- 老舗でシェアが大きい
- 多くの言語を網羅している
実際にやってみて思ったこと
- あっという間に全体を俯瞰できる
- 全くの初心者には難しい
- 動画の更新日が古いものが多い
- WEB制作関係が特に充実している → HTML/CSS/JavaScript/PHP
とてもスピーディで、動画を見ただけではほとんど頭に入りませんが、サクッと俯瞰できるのは確かです。実際にコーディングしている中で、「あれどうやるんだっけ?」となった時に再度動画を見て思い出します。動画のスピードが早く、ついていくのが難しいので全くの初心者にはオススメしませんが、プログラミングの経験があって使ったことのない言語に挑戦する際にはスピーディにキャッチアップできる便利な学習サイトだと思います。記事を書いている最中に気づいたのですが、動画を見ながら自分でコーディングする実行環境が動画の横に追加されていました。これを使いながら学習すれば全くの初心者でも頭に入ってきやすいかもしれません。
プレミアム会員
月額980円でプレミアム会員なるものがあり、せっかくなので入会しました。私が見たときはPHPの入門編(全30回)の動画は全て無料だったのですが、今は更新され(全34回に増加)プレミアム会員にならないと見れなくなっています。
プレミアム会員の主なメリット
- 見れる動画が増える
- 動画内で使ったコードが見れる
- 動画内で喋った内容の文字起こしを見れる
- 質問できる
- 動画を見ながら自分でコーディングできる実行環境がある
「あれなんだっけ?」と見直す際に、そして動画を再度見るのが億劫な時にはコードや文字起こしを見ていました。私が利用したすぐ後に実行環境が追加されていましたので、きちんと学びたい人は実行しながら進めれば頭に入ってきやすいです。PHPは無料でも学習できる範囲が多いので、はじめて利用する方は見たい動画があるかどうか確認したうえで無料版を見て、プレミアム会員になるかどうか判断するのが良いと思います。質問機能は使いませんでした。
プロゲートに関して
以前プロゲートを利用しましたが、非常に面白かったです。プロゲート内でテキストを読みながら、そのページでそのままコーディングができてストレスフリーでプログラミングの学習できます。環境構築もなくプロゲートに言われた通りにやっていればスムーズに全体が俯瞰できます。ストレスフリーでプログラミングができる感覚が楽しく、まったくの初心者は入りやすいと思います。
プロゲートとドットインストールの比較
- プロゲートは非常に簡単だがドットインストールは少し難しい
- プロゲートはドットインストールに比べて少し時間が掛かる
- プロゲートは無料はないがドットインストールは無料がある
- 金額は同じ月額¥980
技術書と比較して
私の場合は最終的に本当に勉強しようと思ったら技術書になりました。ドットインストールにしろプロゲートにしろ満足感が圧倒的に足りませんでした。はじめての言語に関してサクッと学ぶ場合は良いですが、コーディングしていると不安になってきます。知識を補完するために技術書で体系的に学びなおすのは必要だと思います。
まとめ
- まったくの初心者ならプロゲート
- 中級者ならドットインストール
- 最終的には技術書で補完
もちろん、いくら学習しようが自分で手を動かして開発しないと意味がありません。 勉強はサクッと終わらせて開発に力を注ぐのが重要です。しかし、プログラマーになりたがっている人は勉強するのですが、実際のプログラマーはそんなに勉強している人はいない印象です。私の場合は仕事でアウトプットをできているのでプライベートではインプットをするようにしています。