『スッキリわかる サーブレット&JSP入門』
localhost:8080 自身のTomcatにリクエスト
サーブレットはサーブレットクラス。クラスはコンパイルとインスタンス化の2つの作業が必要。
コンパイルは、保存すると自動で行われる(.class)
インスタンス化は、サーバ実行で自動で行われる。
サーブレットはブラウザからURLリクエストで実行される
doGet()doPost()はオーバーライドしてる。
WEBアプリに関する設定: アノテーションor web.xml
JSP(JavaServer Pages)
フォワードでしか表示されない。(WEB-INF以下)
フォーム
絶対パスと相対パス。絶対は/から始まる。action指定の際に意識。
doPost()の入力チェックはnullとlength
inputのnameがサーブレットで受け取るgetParameterと対応
MVC
リダイレクトはURLでブラウザに再度リクエストさせる2往復(URL変わる)
リクエストスコープ
VO(Value Object) = Java Beans
リクエストはレスポンス返されるまで
サーブレットでsetAttributeしてJSPで利用するまでの領域
JSPでpage import する
セッションスコープ
カートやログインで使う。
リクエスト跨いでもインスタンスを共有したい
サーバがブラウザごとにセッションIDを作成して区別(Cookie)
EL(Expression Language)式
c:out でXSS対策
${userVO.name}で nameのgetterメソッド自動呼び出し
Core…c, Functions…fn
JSTL(JSPのTag Library)
JDBC(Java DB Connectivity)とDAO
JDBC… JavaからDBを操作するAPI。利用するには、2つ必要。
1. java.sqlパッケージのクラスやインスタンス(Connection, Prepared Statement, Result Set, SQLException)
2. JDBCドライバ(jarファイル)
エラーとの付き合い方
エラーはチャンス。スタックトレースに原因が書かれている。
404(存在しないページ)
URL飛ばした部分を怪しむ
a href, form action
ファイル名
WEB-INF以下かどうか
フォワード、リダイレクト先
405
GET POSTの間違い
form method指定先
doGet()doPost()合ってるか
500(サーバエラー。例外catchされない)
例外が発生し、最後までcatchされないと表示される。
例外読んでそれごとに対応策を考える
「クリーン」サーブレットの変更が反映されない
前のサーブレットクラスのインスタンスが利用されてる。
IllegalStateException(returnでレスポンスは一回にする)
NullPointerException
引数にnullが入ってるからそこの行を見る。デバッグしながら変数を見ると良い。