□技術メモ - JSP,HTML におけるコードの混在について ※管理人の個人的な技術メモです。サンプルソースを実行した結果について 管理人はいかなる責任も負いかねますのでご自身の責任でお試しください。 ----------------------------------------------------------- ・Webページを動的に作成するコードは多種多様な言語が混在するので これらを整理することがこのページの目的になります。 (1) HTML 静的なWebページを記述する言語がHTML。 他のページにリンクしたり遷移することはできるが、URLが定まれば基本的には静的な画面が表示される。 (2) CGI サーバ側で動的にHTMLを作成する方法の1つ。 拡張子が.cgiならPerlで記述されていることが多い。 標準入出力が可能ならどの言語でも記述でき、VBなどの言語でも記述することができる。 methodがGET の場合はパラメータがURLの一部となるのでブラウザ上に表示される。 methodがPOSTの場合はパラメータが表示されることはないので、ID,passwordなどはPOSTで送信される。 以下のように記述されることが多い。 ----
--- (3) サーブレット サーバ側でJavaにより動的にHTMLを作成する。 JavaのコードとHTMLのコードが混在することになる。 つまりJavaで...までのコードを動的に生成するわけで、 この点ではCGIと大きな違いはない。 ただしCGIはページを生成する度にプロセスを起動するのに対して サ−ブレットはあらかじめプロセスが起動している点が異なる。 (4) JSP (Java Server Page) Javaのコード中にHTMLが存在するのがサーブレットなのに対し、 HTMLにJavaのコードを埋め込むのがJSPと言える。 ---- <% ここにJavaを記述する %> ---- (5) Java Script Webページにおける振る舞いを記述する。 Javaと名前が似ているが、ECMAScriptというのが正式名称。 MicroSoftではJScriptという名称を使用している。 Javaは開発時はOakという名前だったが他社の言語と名前が重なったのでJavaに変更された。 JavaScriptは開発時はLiveScriptという名称だったが、開発会社が業務提供した際にJavaという名前が揃えられた。 以下のようなイベントハンドラを設定できる。 (以下、InternetExploreをIE, NetScapeNavigaterをNNと略して記載する) ・フォーカス、フォーム要素など onFocus、onBlur(フォーカスが外れた時)、onChange ・ボタン押下、選択など onSubmit、onSelect、onReset、onSelectStart(IEのみ) ・キー判定 onKeyUp、onKeyDown、onKeyPress ・マウス関連 onClick、onDblClick、onMouseOver、onMouseOut、onMouseUp、onMouseDown、onMouseMove、onDragDrop(NN4のみ) ・上記以外 onLoad、onUnload、onAbort、onError ・JavaScript未対応のブラウザのために以下のようなコードが書かれることが多い。 ---- ---- はHTMLのコメント。 //はJSのコメント。 上記のような記述をすることで、JavaScript未対応のブラウザでもコードが表示されることはない。 ---- (6) CSS (Style Sheet) HTMLにおいて、文字色、フォント、文字サイズなどをその都度記述すると非常にわかりにくいソースになる。 そのためこれらをクラスとして外部ファイルに定義して、クラス名に指定するタグを書くことで、 タグ内のコンテンツに対して見栄え、スタイルなどを効率的に定義することができる。 以下のように記述されることが多い。 拡張子の.cssは cascading style sheet の略。 ---- ---- (7) JSPにおける暗黙オブジェクト 以下のオブジェクトは宣言することなく使用できる。 request, response, session, application, page, pageContext, out, config, exception (8) JSPの構成要素 ディレクティブ <%@ %> pageディレクティブ,includeディレクティブ,taglibディレクティブ など 宣言 <%! %> 変数、メソッドの宣言 スクリプトレット <% %> JAVAコード 式 <%= %> コメント <%-- --%> アクション 標準アクションと、カスタムタグがある (9) 標準アクション 準備中 (10) カスタムタグ 準備中 (11) Strutsにおけるタグライブラリ ・nestedタグライブラリ 準備中