3 - 3 - 1 : JSPの設問の考え方

JSPの問題は、タグが有効か、有効な場合は正常に動作するか、動作する場合はどのように動作するか?

という設問が多く出題されると予想できる。

もちろん各タグの記述方法を覚えないといけないが、JSP をJSPとして考えると訳がわからなくなってしまう。

JSPはHTMLと<% %>で囲まれたスクリプトレットで構成されるが、この組み合わせ複雑な場合や<%! %>が出現した場合は一旦JSPをコンパイルしたJAVAコードがどのようになっているかをしっかり確認する必要がある。

場合によってはコードを書いてみる。

つまり頭にJSPコンパイラをインプットしている必要がある。

Tomcatであれば WEB-INF と同じ階層 work というフォルダが作成され、その下にJSPをコンパイルしたJAVAソースコードが出力される。

ここに出力されたあるJSPのコンパイルソースを見ると

public class JspDeclare$jsp extends HttpJspBase {

とある。 HttpJspBase クラスは JspPage インターフェースを継承し、 JspPage は javax.servlet.Servlet インターフェースを継承している。

javax.servlet.Servlet

 ↑

JspPage

 ↑

HttpJspBase

つまり JSP1つが1つのサーブレットとして処理される。

これを知った時にJSPに対する考え方が変わった。

元々「所詮JSPはHTMLにJAVAの毛を生やしたようなもんだ」とJ2EEのおまけ的パーツだと決めつけていたが、実は最も簡単に作成可能なサーブレットだったのだ。

まぁ、ほとんど参考書の受け売りなんだけど、JSPを馬鹿にできないことは確か。

(でも最近はVelocityに気持ちが動いていたりする。 JSPを1つも作成しないで開発できちゃうから、この試験のJSPのセクションの意義がなくなるなぁ)