読書会(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 コミットされていないとでIllegalStateExceptionが発生
するとあったが、ここの記述(デフォルト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次会を実施しました。
七輪焼きもの、みそかつ、納豆揚げ(意外とうまい)、などをいくつか頼んで、
麦とろご飯とへぎそばでしめました。とろろは絶妙、そばはうまい。


[ 戻る ]