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


スキル無しのシステムインストラクターから、システムエンジニアへの転身日記。
◇◆◇ 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

広告

posted by fanblog

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モデルといった仕組みで構築できるとよいかもしれない。
最初設計してから、このブログを作ってみたのですが、
実際作り始めると、無理が生じてきたため、設計を無視して突貫工事を始めてしまい、
結構、汚らしい感じになってしまいました。
設計力の足りなさと、上塗り上塗りのコーディング…素人の建築そのものでした。

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

コメント

お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのコメント

hydroxychloroquine generic names
Sung |2020年07月17日(Fri) 18:07
careprost bimatoprost
Galen |2020年06月14日(Sun) 00:52
buy amoxicilina 500 mg online
Lionel |2020年06月03日(Wed) 04:47
×

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

Build a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: