setAttribute()したりgetAttribute()するときの識別子はどこで定めたらいいんだ?
今は「ATTRNAME_」で始まる,private final String型定数をサーブレットで定義している.しかしリダイレクトした先のJSPで,どう利用するんだ?コピペなんてしてらんねーぞ.(しかし今はコピペしかない)
JSPではincludeディレクティブ,Servletではincludeメソッド
JSPでのincludeは2つある.
<%@ include file="WEB-INF/jspf/menu.jspf" /* includeディレクティブ */%> <jsp:include page="WEB-INF/jspf/menu.jspf" flush="true"></jsp:include><%-- jsp:include要素 --%>
前者はfileを取り込んだものとして全体のJSPコードがコンパイルされるとのことだ.fileのJSP要素は有効となる.しかし後者は,そのままのデータが飛び出てくる.HTMLは反映されるが,JSP要素はそのまま表示された.さらに参照元のif()などで,includeの実施を制御できるらしい.
取り込まれるファイルは拡張子「.jspf」が標準らしく,また「/WEB-INF/jspf/」以下に配置して,隠すのが普通らしい.ばっちゃ,いやNetBeans IDEがそう言った.
サーブレット側ではforward()と同じノリでinclude()が用意されている.いくつかの説明ページでは,「include()対象へ処理が移るが,forward()と違って,処理完了後にinclude()元へ戻ってくる」「doPost()で処理していたならinclude()側のdoPost()へ飛ぶ」との事.「リダイレクトしていったファイル中のメソッドで定義」なんて,jspfをインクルードすることとは,かけ離れている.
jspfに定義していて,そこでincludeするのはふさわしくない.
暗黙的オブジェクトconfig
<!-- (1)<servlet-name>タグと<jsp-file>タグで JSPプログラムに対するServlet名を指定します。 -->Javaの道:JSP(10.暗黙オブジェクト(config))
なんだこのコメントは.これで確定なんじゃね.複数個に対して作れるのか.
というのは誤解だった.configスコープを使う場合では,JSP側とサーブレット側とで,独立している必要があった.それぞれで同じ事を書かねばならない.2度記述するなどナンセンスだ.