読書会(More Java Pitfalls)第5回議事録
[ 戻る ]
日時:9月20日(土) 10:00〜17:00
場所:目黒区東山住区センター第3会議室
参加者(敬称略):高橋(智)、井上、村上、村山、村山、金井、中村、宮本、
根本、高橋(徹)
書記:高橋(徹)
■Item24: JSP Design Errors
Session Variableについては、Item25で扱っている。
ここの流れ
・最初サーブレットだけで書いていたが、print文の山で保守性悪し
・JSPが登場。JSPだけでは、、、
・JSP+Beans → MVC Model1と云われる
・Model1+タグライブラリ
・MVC Model 2
Model2だと、ユーザ認証・パラメータ検証などがJSPとは独立に出来る点がメ
リット。
Model2.5と聞くが、これは?
■Item25: When Servlet HttpSessions Collide
デフォルトでは有効期限30分。クラスタリング時にHttpSessionの内容をレプ
リケーションする必要があるので軽くすることが必要。
hiddenは通信料が多くなる
現実的にはcookieとHttpSessionの組み合わせ
HttpSessionのIDは、同じブラウザなら別なWebアプリケーションに対しても同
じになるか?
→多分同じになる
CookieはAPサーバ(Webサーバ)が自動的にさばいているので、デベロッパに
は見えない。
getValue()とsetValue()はdeprecatedになっている。
→getAttribute()とsetAttribute()を使う。
□昼食
今回は、池尻大橋駅の地下「壽」でランチ。魚系の居酒屋で昼間はランチタイ
ムで刺身定食、海鮮丼、まぐろづけ丼の3品からの選択。
■Item26: When Applet Go Bad
Java Web Startの話題。クライアントの利用者には、リアルタイムに情報を必
要とする「アナリスト」と定型的な情報を必要とする「マネージャ」の2種類
いるよというストーリーからJava Web Startの話題へ展開していく。
timeline:リアルタイムにグラフが表示されるようなものか?
ダウンロードにサーブレットは必要か?
→ なくてもよい。あると、バージョンアップ時に差分だけ送る等の機能あり
通信にはHTTPだけでOKか?
→ ダウンロードして実行するだけならHTTPが通ればOK
■Item27: Transactional LDAP - Don't Make that Commitment
LDAPとRDBMSの棲み分けについての内容。
LDAP:Light Weight Directory Access Protocol
Linuxなら、フリーのOpenLDAPがある
Windowsは? ServerOSならActiveDirectoryがあるけど・・・
→ LDAPDというのがあると宮本さんからの情報。
Googleで検索したら、紹介しているページが見つかりました。
http://muimi.com/j/ldap/
# あら、宮本さんのページだったり
"personalization"の意味は?
→Amazonみたいなものか。CRM(Customer Relation Management)に近いか。
フロントコントローラパターンは、MVC Model2アーキテクチャのコントローラ
ではないか?
サンプルソースのサーブレットのインスタンス変数はこれでいいのか?
リスト27.4の47行目"dc=avey"のdcは、domain componentのこと
同107行目の new Hashtable(11)で11を指定している意味は?
→メモリの節約ではないか?
この節のサンプルコードはおかしな点がいろいろある。
・リスト27.3のclass authenticateHelperはHttpServletを継承する必要がな
い。
・リスト27.4でusernameが別な意味で使用されている
・同コンストラクタの中で、2回フィールドに値を設定している
図27.1 LDAPサーバがWeb Layerにあるのはおかしいではないか?
参加者から、LDAPの使用例としてLDAPサーバ上にキーの片側を置いておき、
ICカードの情報と合わせて使用したものがあると紹介があった。
■Item28: Problems with Filters
#この節のとき、あまりに眠く議事録機能が停止しておりましたm(..)m
■Item29: Some Direction about JSP Reuse and Content Delivery
リスト29.1の6行目:
<%@で始まる必要がある。
ディレクティブ:include先のjspを修正しても、inckude元のjspに変更がなけ
れば再コンパイルされない。
アクション:include先のjspを修正したら、再コンパイルされる。
ディレクティブとアクションの性能差は、forwardが発生するかしないかの差
flushの有無は?
→ 宿題
JSTL:最近は、JSP Standard Tag Libraryと呼ばれる
最近のJSP仕様では、includeでURL指定できるのではないか?
→ 要確認(宿題)
WebDAVの記述にあるdrop-offメカニズムとは?
p.247 コミットされていないと
するとあったが、ここの記述(デフォルト8KB)と違っている。
→JavaDocにp.247の記述と同じような表現がある
■Item30: Form Validation Using Reglar Expressions
サンプルコードの正規表現では誤ったフォーマットでもOKとなってしまう
リスト30.1の36行目: if(!(telephoneNumber.matches("\\+?([0-9]+-)+([0-9]
+-)+[0-9]+")))
これでは、1-2-3-4-5-6-7-8-9にもマッチする。()の後の+が余分。
→ "\\+?([0-9]+-)([0-9]+-)+[0-9]+" (かな?)
SimpleDateFormatはスレッドセーフでないので使用注意。
□2次会
池尻大橋の蕎麦屋「花しずく」で2次会を実施しました。
七輪焼きもの、みそかつ、納豆揚げ(意外とうまい)、などをいくつか頼んで、
麦とろご飯とへぎそばでしめました。とろろは絶妙、そばはうまい。
[ 戻る ]