アフィリエイト広告を利用しています


スキル無しのシステムインストラクターから、システムエンジニアへの転身日記。
◇◆◇ 2013年取得資格
LPICレベル1
LPICレベル2
LPICレベル3 Core
LPICレベル3 Speciality 302
LPICレベル3 Speciality 303
LPICレベル3 Speciality 304

Cisco CCENT
Cisco CCNA

Java SE 7 Silver
Java SE 7 GOLD

OSS-DB Silver

◇◆◇ 2014年取得資格
HTML5 Professional レベル1

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

Java入門書の次の勉強法。

Webアプリケーションエンジニアになって、勉強する手順が見えてきました。
たくさん覚えることはあるので、最初から全部詰め込むなんて無理ですね。

実務に入ってからおいおいでもよいのですが、
実際業務に入ってみて、え?こんな知識も必要なの?と思うことも多いと思います。

Javaの基礎を学ぶ

Javaのサーブレットの基礎を学ぶ

Webアプリケーション開発に必要な知識を学ぶ

この段取りで学習すると、いざ案件に入った時に、全く何をしていいかわからない。
ということも少なくなるかなと思います。

実際、Webアプリケーションを作るとわかると思うのですが、
Javaの勉強だけしたから作れちゃう!なんてことはないと思います。



Javaの基礎を学ぶ


スッキリわかるJava入門 第2版 (スッキリシリーズ)

新品価格
¥2,808から
(2015/11/23 12:48時点)



さらっと読むと、わかった気になりますが、基礎は重要です。
特にオブジェクト指向は重要です。ここをさらっと理解できちゃう人はプログラマにむいています。
私は残念ながら素養はありませんでしたw いまだに怪しいですw
わからない人はあきらめる必要はないですが、また壁にぶつかったときはここに何度も戻ってきます。

Javaのサーブレットの基礎を学ぶ



独習Javaサーバサイド編 第2版

新品価格
¥3,888から
(2015/11/23 12:49時点)



Javaの勉強を進めて、サーブレットに行きつくと、
データベース、Webサーバー、サーブレットコンテナなどを学び、
動かない!エラーいっぱい出た!なんてトラブルにぶつかると思います。
数々の困難を潜り抜け、もといググりぬけて成長します。

Webアプリケーションも手を抜こうと思えば、それなりのものはできてしまいます。
ただ、それは実案件では全く使えないもの。
練習するためには、「世の中にあるものを作る」事が重要になります。
自分で想像したものは、自分でいくらでもルールから作り替えることができてしまうので。
何かしろWebアプリケーションを参考にして、同じ設計や動きを実現するといいかもしれません。
作るのには、1-2か月かかるかもしれませんね。


Webアプリケーション開発に必要な知識を学ぶ


Javaエンジニア養成読本 [現場で役立つ最新知識、満載!] (Software Design plus)

新品価格
¥2,138から
(2015/11/23 12:50時点)



え?Webアプリケーションの開発って、サーブレット作ればそれにアクセスさせてWebサービスとして完成じゃないの?
と思ってしまいますが、実際の開発案件ではそれだけでの知識だと難しくなってきます。

開発したソースのテストを実施する方法、
開発したソースを管理する方法、開発したソースをビルド、デプロイする環境など。

開発はソースコードを書くだけではなく、そのソースコードの改修、管理、ビルド、デプロイの仕組みまで作る。
継続してメンテナンスすることまで考えて完成となります。

う…ここまでやるのかと最初は思いましたが、世の中のサービスはこうやって成り立っているのですね。

設計の大事さと、プログラマとしての価値。

gi01a201501090400.png

みなさん、こんばんは。
危うく、ひと月に一投稿で終わるところでした…。
家に帰ってパソコンを開く習慣が完全になくなってしまい、ブログの更新が怠っています。
息子も大きくなりまして、動き回っていたずらし放題。
嫁さんの負担を少しでも減らすために、なかなか自室でPC作業というのもしづらいものです。

今日は、新米プログラマとして、今月Javaプログラムに触れて感じたことを書きますね。

スッキリわかるサーブレット&JSP入門

Javaの学習書では有名となったスッキリわかるシリーズですが、

スッキリわかるJava入門 第2版

新品価格
¥2,808から
(2014/10/20 23:16時点)




スッキリわかるJava入門 実践編 第2版

新品価格
¥3,024から
(2014/10/20 23:15時点)




Webアプリケーション開発にステップアップしたい人の為に、

スッキリわかるサーブレット&JSP入門と言う本があります。

スッキリわかるサーブレット&JSP入門

新品価格
¥3,024から
(2014/10/20 23:17時点)




一通り読む事が出来たので書評をしたいと思います。

スッキリわかるシリーズの一冊で、もちろん、スッキリわかるJavaシリーズが
初めてだよ。と言う人にも読めるようになっているし、
シリーズを続けて読んでくると、登場人物と一緒に成長してここまで来た!
と言う感じになり、キャラクターにも愛着が持てる。

IDE環境としては、Eclipseを薦めており、付録にて簡単に使い方の説明などがある。
Javaを勉強せず、いきなりサーブレット!と言う人にも付録で補足するなどしている。

他の本は、JSP→サーブレットといった学習の進み方をする本が多いが、
サーブレット→JSPといった進み方をする。特に違和感は感じないし、
サーブレットとJSPの役割の違いを意識しやすいし、後々に出てくるMVCモデルの理解も入りやすい。

本書が力を入れているなぁと感じたのは、

「MVCモデル」「スコープ」

この二つ。他の参考書よりもわかりやすい。
個人的にWebアプリケーションを作るのであれば、MVCモデルは意識せずとも
アプリケーションは完成する。しかしプロジェクトでアプリケーションを開発するとしたら
そうもいかず、ここで癖を付けていくことが重要。

またスコープに関しても、個人的にWebアプリケーションを作る要となっているので、
サーブレットで作成した処理データをどうやってWEBで公開するのか。
どうやって値を受け渡すのか。といった事を学習しないと動的なページは完成しない。
このスコープの概念は、ちょっと難易度が上がるので、Webアプリケーション難しいと感じてしまうところでもある。
本書では、イラスト多めで丁寧に説明しているのでとてもわかりやすいと思う。

逆に足りないかなぁ…と思ったところもある。
JSP、サーブレットをシンプルに学習する構成をとっている為、
Tomcatが持つコンテキストファイルに記載する方法には触れていないので、
全てWebアノテーションを使用してクラスファイルに直書きといった方法をとっている。
もちろん、個人開発では必要のない技法だが、実際にプロジェクトに入って開発を開始すれば、
全てが全てアノテーションで処理するわけではないというところをどこかで学んでおきたい。

私が学習してきた内容でも、重要と思ったところはしっかり押さえてある。
初学書としては最適。もっと深みを持たせて学習したい!と思ったら、あくまで入門書なので、
次のステップを踏む事を薦める。

知識ゼロから学ぶソフトウェアテスト 【改訂版】

知識ゼロから学ぶソフトウェアテスト 【改訂版】

新品価格
¥2,592から
(2014/10/20 23:12時点)




テストについての知識を身につける本。
一通りプロジェクト全体のテストを齧った段階で読むと理解できる。
言語を学習し始めて、テストから入るだろうから予習!と言うスタンスで
読み始めると難しいんじゃないかなと感じた。
知識ゼロからだと、謎な用語が多すぎて厳しいと感じた。

私に至っては、一通り齧らせて頂いたので、こういう手法だったのか、
こういう設計だったのか。こういう思想の元行うべきなのか…。
なるほど…。と言う感じで1日で読んだ。

だが、この本を読んだから、よし、何かに今すぐ活かそう!という感じではない。
心構えや、考え方などを補強したと言った感じかな。

著者自体は、テストに関してのプロフェッショナルで、経歴も素晴らしい。
本の内容自体も用語の1つ1つが難しいので、スラスラとは行かなかったが、
読みやすいよう工夫をしたんだと言うのは伝わる。

正直、実際のプロジェクトで、UTやFT、IT等を経験して、かなり苦戦した。
まずプロジェクトの要件や設計書を理解して、テストの実装や改修、
ローカルへのテスト環境の構築等々…。一筋縄ではいかなかった。

一番苦戦したのは、要件や改修内容の理解。テスト以前の問題だった。、
次は、各テストの設計ドキュメントの編集。どう書いたらいいものか…。
私の場合はドキュメントの読解力を向上させる為のトレーニングをした方がよいな。

ずれてしまったが、実際にはテスト担当と言うわけじゃなくて、
実装の改修からスタートして、ついでにテストも追加編集する場合もある。
そういった場合は、言語知識は必須だし、JUnit,DBUnitなどの知識も必要…。

この本でテストの概要を補強して、ドキュメントの読解力を高め、
コーディングもできるようになり、テスト手法も身につける…。

プログラマーへの道は、まだまだ遠い。

開発に携われるようになって

こんばんは。もう9月です。一年の3/4が終わりましたよ。
ビックリですね。歳もとるはずだなぁ・・・。と思いました。

開発に携わるようになり、同僚におんぶにだっこですが、
辛いなりにも、自分で関わりたいといった事ですので幸せなことは間違いない。

まず、設計にかかわる資料が読み込めない。
プログラミングの能力以前の問題で、仕事を振られたときに、
どういう風にその仕事をこなすのかを読み取る能力が、ものすごく必要でした。

実際、プログラムの修正より、修正するにはどこをどうすれば正解なのかを考えたり、
資料をどのように修正すれば、痛々しいまでのレビュー結果を返されずに済むのか。
などなど、プログラムにしたら数行の修正でも、
その10倍以上のエビデンス取得や複数の資料、データの修正…。

これがプログラマなのか。どっちかというとSEがする仕事だと思っていたよ。。。
と、自分の思い描いていたプログラマって浅−−−−いプログラマだった。

とにかくDBに関する知識は、まるで足りてない。OSS-DBのSilverじゃ、全然及ばない。
かといって、GOLDが必要かというとそういうわけでもない。プログラマ向けの資格ではなかった。
プログラマとしてDBを追求するならデータの読み書きは勿論だけど、どのようなSQLを組んだら
スピードが遅くならないかなど、チューニングもできるようにならないといけないですな。

更新するときのSQL文なんだっけ・・・とかググってる場合じゃないよ、俺・・・。

あとは、JUnit入門!とかいってテストが楽になるかな。。。なんて言っていたけど、
また、これも全然足りない。本当に入門だわ。これは数こなしていくしかないかもだけれど。

とにかく、本当にスタート地点切ったばっかりだけど、今後の開発案件にグイグイ入っていけるといいな。
と思っております。

相変わらず、更新できてないですが、ネタはたくさんあるのにな・・・。
何とか、これ以上見放されないよう更新頑張りたいですな。

Webアプリケーションを作ってみた

まだまだ初歩ではありますが、成果物を挙げられるようになってきました。

つい、2〜3か月前までは、
jspとは?サーブレットとは?といった状態で、なんとなく出来そうな気がしていました。
しかし、実際にはそう甘くなく、覚える事が盛りだくさんでした。

実際に作ったものは、[ ブログ ] です。
そう、ここで公開しているようなブログの仕組みを一から。
これが結構大変だった。


本のサンプルを用いて写経した事はありましたが、
いざ、自分で組んで見ると、セキュリティホールだらけだし、
ブログとして形をなしていない事がよく分かりました。

Webアプリケーションの仕組みを作るなら、ある程度の時間で作れますが、
SQLインジェクションによる不正なスクリプトを埋め込まれたり、
セッションハイジャックといったセッション情報を利用した悪用、
などなど、簡単に不正使用されてしまうのです。

実際のロジック

実際のロジックとしては、そんなに高度な内容ではなく、

< jsp > ページ

・投稿ページ(ブログの投稿画面)
・閲覧ページ(ブログのトップページ)
・投稿画面に入る為のログインページ
・404エラー、403エラー用の専用ページ

< Servlet > クラス

・文字化け対策用のフィルタ
・投稿された内容の不正文字列チェック
・本文・コメント投稿の振り分け
・データベースへの登録
・データベースから投稿内容用のリストを作成
・投稿内容のリストからを閲覧ページに呼び出し

< 裏方 >
・データベースへのアクセス定義(context.xml)
・ページへのアクセス制御(web.xml)

jspはユーザーがHTMLだと認識する部分で、
何も意識しないで投稿やコメントをしている部分ですね。
サーブレットは、jspから値を受け取ったり、jspに値を渡したりする裏方で、
ユーザーが直接触ることのない部分で、ユーザーに表示される部分は、
全部jspに処理を渡しています。


何気ないボタンにも仕組みが満載

次のページ、前のページといった当たり前についているボタンも、
前に10件投稿がなければ、閲覧ページに「前の10件」ボタンを表示しない。
次に10件投稿がなければ、投稿ページに「次の10件」ボタンを表示しない。
といったロジックが必要となり、jspにモリモリ書くのではなく、
Servlet側に判定させて、前に10件あるかないか(boolean)だけをjspに渡して、
jspは、前に10件ボタンを表示するかしないか判定すればよいのです。

JSTLって凄いね

JSTLというjspの記法があり、最初覚えたjspの記述と大分違うので、戸惑いを覚えましたが、
逆にこれしか使っちゃだめ。スクリプトレット禁止!というわけであれば、大したことは無かった。
何がすごいかと言うと、スクリプトレットを使わない事で、処理が分かりやすい。
逆を言うと、コーダーやフロントエンジニアでも、javaScriptのような感覚で記述ができるので、

プログラマさん、サーブレットへのプログラミングはよろしくね。
jspにページデザインして、JSTLもこっちで書いておいて、値を受け取るだけにしておくから。

JSTLも難しい記法ではないので、処理に関してはプログラマに書かせて、
その結果の値だけは、JSTLで受け取るだけの1行を書いてしまえばいいので、
jspの製作は完全に、デザイナー側に委ねてしまうように分業する事が出来るんですね。

しばらく、ばりばりプログラムを勉強して、他の言語にも挑戦できるようになってきたら、
もうちょっと、フロントエンジニア側にポジションを移して作業を進められたら楽しいかもしれないな。
とやっと実感レベルで思い始めました。


改善点

もう少し、サーブレット側の処理をオブジェクト指向的に記述ができて、
MVCモデルといった仕組みで構築できるとよいかもしれない。
最初設計してから、このブログを作ってみたのですが、
実際作り始めると、無理が生じてきたため、設計を無視して突貫工事を始めてしまい、
結構、汚らしい感じになってしまいました。
設計力の足りなさと、上塗り上塗りのコーディング…素人の建築そのものでした。

世の中に当たり前にあるサービスを自分でロジックを考えて作ってみると、
なかなか勉強になります。もっとコーディング力を上げれるよう勉強していかなきゃですな。

1年以上かけてやっと開発案件へ。その道のり。

先日、やっと、開発案件に入れていただきました。
とはいっても、他の人がやったら1日で終わる内容を3日くらいもらって、
かつ質問もできるという高待遇でのお仕事。
まさに、仕事をやらせていただいている。
といった感じで感謝しながらやらせていただきました。

半年くらい前にも書いたUT(ユニットテスト)をやっています。
テストと言えば、開発の中でも下流工程ですが、コードが読める事、
コードの中身を追える事、フレームワークでの実装を理解する事、
ユニットテストを行える事(JUnitやMockなどを理解している事)などなど。
入門書レベルのJavaの教科書を一通りやっただけでは理解できない領域です。

JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB DB PRESS plus)

新品価格
¥3,564から
(2014/8/12 21:45時点)





一通り、Webアプリケーションについては、下記の教科書で学習しました。

独習Javaサーバサイド編 第2版

新品価格
¥3,888から
(2014/8/12 21:47時点)




とっても分かりやすかったです。一通り学習し終わるまでには、
1〜2カ月かかるかもしれませんが、実際のWebアプリケーションのテストをする際にも、

・Webアプリケーション独特の階層構造を読み取りやすい。
・JSTL、XML、プロパティファイルなどの概念を理解しやすくなる。
・MVC(Model View Controller モデル・ビュー・コントローラ)の流れが分かりやすい。


などなど…、実際の案件に入って勉強して良かったなぁ…しみじみ。と思うわけです。
Javaの入門書って、分厚いですよね。オライリーしかり、他の教科書でも。
それでも名前の通り入門なんですよね。プログラミングをやりたい!と思う人が挫折してしまうのは、

・教科書の分厚さに眩暈
・楽しいと思えるまでに時間がかかる
・コーディングの細かいお作法にげんなり
・オブジェクト指向の壁


などなど、原因はたくさんあるんですよね。

特にWebアプリケーションを作りたい!!と思っている人が、
ここをどれだけの人が見ているかはわからないですが、
(半数以上は、LPIC関連できていただいていると思っています)
上記の問題たちを乗り越えた(とりあえずわかったかな?といったレベルでも)先には、

・jsp、サーブレットを学習
・Tomcat、Glassfishなどのサーブレットコンテナを学習
・データベースを学習
・JSTL、MVC、beansなどを学習
・デプロイメントディスクリプタを学習
・セキュリティプログラミングを学習
・アプリケーション(サーブレットコンテナ)を動かすためのサーバ知識を学習


と、これから勉強したいな。とりあえず簡単なものを作りたいなと言う人の
夢と希望をぶち壊す勉強内容が待っています。
おわ、敷居が高い…。と思うのが普通で、
私も勉強を開始した時に全貌が見えていたわけではありませんでした。

では、私自身が最初どんな意識でいたかと言うと、

・プログラミングがしたい(できればWeb系)
・Webで公開するには、apache,tomcatを最低限分かっていた方がいいな。

たぶん、これくらいです。
そして、どんなふうに勉強してきたかと言うと、
細かく書くと違うけど以下のような感じ。


シェルスクリプト

オライリー

Webアプリケーション構築入門

LPIC

JAVA

CISCO

OSS-DB

Java入門

AWS

オライリー

JavaEE

これで、学習時間だけを抜粋すると約1年でしょうか。
私はこれくらい学習すれば、プログラミングは普通に肩を並べて行えると思っていた。
けど、やっとスタートラインなのですね。

詰め込みが得意なだけではプログラミングは出来ない。
と感じたのは、結構早い段階からで、今でもそれは感じています「。

まず早いうちに気付いたのは、

あ、俺、オブジェクト指向を受け入れられない!といった事。

次に感じたのは、

設計がろくにできず、最初に考えていたものとは、ほぼ違うものになっている事。

頭に思い描きながら修正しながら一つのものを作り上げていく手法は、
実際のプロジェクトでは許されるわけがありません。
まず仕組みをしっかり作り、どういう実装をしていくと実現できて、
そのためには、各クラスとメソッド、プリミティブ変数を利用しとしっかりと計画を立て、
ドキュメント化した上で、紙上でシステムを作り上げる。
その後、修正が出てしまったものは紙上でも修正し、1つのものを作り上げなければいけません。

目指すべきは、SE領域もできてこその、プログラマなのです。

私も昔はSEの仕事の役割も理解していませんでしたが、
SEって、システムエンジニアの名の通り、システムを作り上げる人なので、
逆に設計ができない人(アプリケーションでもインフラでも)は、システムエンジニアではないですよね。
プログラマなのか、オペレータなのか、サーバエンジニア(SE)なのか。
プログラム書いたことないけど、SEしているっていう人って、ある意味凄いですよね。
プロジェクトに入ってみて、コードの書き方知らないのに、設計できるって、頭脳の作りがすごいな。

説明書を読まずにゲームを始めたり、ベッドを組み立て始めたりと、30年くらいそんな感じでやってきましたが、
開発にかかわる以上は、お作法や段取り、仕様作成など1つ1つの仕事を丁寧に確実におこなう事も必要なんです。

ただし、こればっかりは少しずつ身につけて、私生活も見直しながらやるしかないですね。

オペレータ的な仕事ばかりやってきたので、
「オペレータ独特の、独断で判断して失敗する可能性があるなら、エスカレーションして、自分はやらない。」
といった仕事ばかりしてきたので、調査→検証→実装といった段取りを当たり前にできないのです。
失敗のリスクがあると、リスクばかりが先行して先の事を考えられなくなってしまうのです。
オペレータの仕事も的確に責任範囲の中で確実に行うと言う意味では難しいのですが、
開発をやりたいと少しでも思う人には、ぜひ開発の仕事ができる場所への転職をお勧めします。
私もいろんな会社を経験しましたが、オペレータから開発職(インフラ構築)へスキルアップを
推奨はしているものの、実際に行っている会社は見た事がありません。

脱線してきてしまいましたが、プログラマとして仕事をこなすには、
まだまだだぞっていう位置にいるってことでした…。

まだまだ報告したいことはたくさんあるので、別の機会に書きたいと思います。

Webアプリケーションを作るために最低限学習しなければならないこと

おはようございます。7月になりましたね。
まだ、こちらでは梅雨も明けておらず、毎日しとしとと雨が降っております。

6月は、サーブレットの学習をメインで行っており、
Webアプリケーションの構造をより理解することができました。

Tomcatに配備されるウェブアプリケーションには、
web.xml、context.xml、server.xmlなどのXMLファイルが一緒に配備されていますが、
アプリケーション単位で必要なもの、アプリケーション全体で必要なもの、
Tomcatに必要なものなど、それぞれの役割を理解してきました。

そして、よくあるWebアプリケーションの動きも、
あらかた自分の知識とリンクするようになってきました。

例えば、ログインページの認証の動きをどう実装するか。だとか、
存在しないページにアクセスするときのエラーページの返し方とか、
エラーコード別の処理の返し方だとか、今までクリックして当たり前に返ってきているページも、
XMLファイルの設定で作られていたり、リクエストヘッダに情報を渡して実現していたり。

apacheと、Tomcatの連携についても、ぼんやりとは理解していたのですが、
server.xmlやhttpd.confなどで制御していたんだ。。。
この設定が足りないと、503で、この設定が足りないと404になるのね。。。

などなど。

そういう処理の動きが、理解できてきたところですね。

まず、Javaの入門書を読んでも、Webアプリケーションは作れるようになりません。
私が学んだ最低限必要だなと思った項目は下記の通りです。

・HTMLの理解(CSSもあるとよい)
・Webサーバの理解
・ヘッダ、セッション、クッキーの理解
・Tomcatの学習
・データベースの学習(JDBC)
・Servletの理解(Response,Request)
・jspの学習
・JSTLの学習
・MVCモデルの理解
・コンテキストファイルの役割
・セキュリティ

PHPやWordpressが人気あるのも分かります。
なぜなら学習することが多くて、敷居がとても高いですし、サーバの環境構築も簡単ではないです。
簡単なものなら、Jspとtomcatがあれば作成できると思います。
逆を言うと、複雑なものや処理速度などを考えると、上記だけでも足りず、
クライアントサイド技術のJavaScriptや、HTML5などの理解も必須になるでしょう。

私が挙げた項目は、JavaのWebアプリケーションプログラマにとって
最低限の基礎知識の部分であります。
大変そうだな。という記事を書きたいのではないのです。
手間暇かけて、基礎を抑えるだけでさえ、なんだって作れそうな気がしてくるのです。

まずは、開発環境の構築が重要になってくると思います。
おいおい、開発環境構築の記事も記載していきます。

Webアプリケーション、プログラミング知識をつける日々

去年学習した内容を再度学習していますが、いやー忘れてしまいますな。
基本的なJavaの使い方や、jsp,サーブレットの復習をしております。

最近は、練習用にプログラムを書かなきゃな・・・と思い、
お題を見つけて、設計をまず始めるのですが、設計の段階で、
この処理は、このクラスに持たせて…、インスタンスはListに格納して、
参照先を別のクラスに渡して…、いや、このクラスに、このメソッドを持たせるのおかしくないか?
など、プログラムを書く前の段階で頭の中でぐるぐるしてしまいます。

そして、Webアプリケーションなので、サーバーサイドで処理させるのか、
クライアントサイドで処理させるのか。というところで、
これはHTMLのフォームアクションで、POSTデータとしてjspに処理を渡して…、
いや、ここまではJavaSriptでデータを形成したほうが…、あれ、
クライアントサイドで成形したデータをjspにうまく渡せてない…。

など、設計段階で、頭の中でごちゃごちゃになってしまいます。
設計している途中に、いろんなアイデアが出てきちゃうものだから、
今まである程度形にしたものも、一度ぶっ壊してみたり・・・

そして、HTML5の知識も必要になってきました。
最初はWebデザイナー向けの資格かなぁと思っていましたが、
今やクライアント側の処理として、使うのが一般的になっていて、
プログラマも分かっていなければいけない知識なんだ。と思いました。

なので、近いうちに画面に絵を書いたりするのに使うCanvasに
サーバサイドか、クライアントサイドのJavaから値を渡して図形を生成するようなものを
ちょっと練習でやってみようかなと思います。


Webアプリケーションなので、プログラムの概念だけではなく、
GET,POST,クッキー、セッション、ヘッダリクエスト、ヘッダレスポンスなど、
ブラウザ自体の処理自体も学習しなければいけません。
jspを使って、他のページにリダイレクトするには、

<%
response.sendRedirect("http://yahoo.co.jp/");
%>

jsp側に上記のように書くだけで、開発者ツールなどで解析していくと、
レスポンスヘッダのLocationヘッダに、リダイレクト先が入っており、
指定先をリクエストをかけ直す動きをしていることがわかりました。

こういった処理も理解していかないと、値の受け渡しをして
ページを別ページに展開するといった処理ができないですからね。

まぁ、またしても覚えることいっぱいではありますが、
自分の作りたいものに必要な知識であることは間違いないので、
今年こそはしっかり勉強できるよう頑張ります。

【Java】Servletで掲示板を作るロジックを学ぶ

プログラミングプログラミング言っているけど、大したプログラム書いたことないな。
と思っているのが実情でして、なかなかまとまった時間が取れないことを言い訳に
書いていないわけですが、そもそも設計がしっかりできていれば、
ロジックごとに一つ一つプログラムを書けばいいわけで、時間がなくてもできるのだよ。というのが、真実です。

とりあえずは、本に書いてある掲示板をServletで動かすまでのプログラムの構成を見てみました。
さらっと読みましたが、ブログなどの作成にも応用できるなと思いました。

構成は以下の通りでした。

・1記事を表すクラス

連番、タイトル、内容、投稿日時などの情報を取得、保持、送出するクラス。

・掲示板のロジックを書くクラス
掲示板記事の一覧を取得。掲示板に投稿する。

・リクエストエンコードフィルタのクラス
文字化けしないようにするフィルタ


・投稿サーブレット
記事の投稿を行うサーブレット

・閲覧サーブレット
記事の閲覧を行うサーブレット


・index.jsp
トップ画面

・read.jsp
掲示板の閲覧や投稿を兼用する画面


・web.xml
Webアプリの設定ファイル


こういった構成をまず考えるのが大事なわけですね。
動きとしては、

1.
index.jspを読み込むと、閲覧サーブレットが呼ばれ、
ロジックを書くクラスや、記事の内容が呼び出され、read.jspの処理内容が表示され、
投稿画面と、過去に投稿した記事の一覧が表示される。

2.
read.jspの投稿画面にて記事を投稿すると、投稿サーブレットが呼び出されて、
ロジックを書くクラスに記事を表すクラスに値をあてはめ、処理を渡す。
そして、read.jspをリロードし、投稿した内容を表示。

うーん、理屈はよくわかるが、これを設計して、
一つ一つ書いていくというのは中々できそうで出来ないですな。


また、メモリ上で処理をさせているので、掲示板の投稿内容が保持されるのは、
Tomcatが起動している間だけ。本格的な掲示板を作るには、JDBC.そうデータベースの構築が必要。

過去にもJDBCの記事を書きましたので割愛しますが、
もし、改修するなら掲示板のロジックを書くクラスに、データベースへの追記に関してのプログラムの改修。
データベースに接続するクラスを追加する必要があります。

これくらいは一人でできて当然なんだろうな。
まずは、本を参考に作ってみて、次は見ないで調べながら作ってみて・・・と慣れていこうかな。
この辺をなれていけば、サーブレットを使ったゲーム作成とかも可能なはずなんだよな。
    >>次へ
×

この広告は30日以上新しい記事の更新がないブログに表示されております。