jsp模型為web程序提供了page/request/session/application這四個(gè)基礎(chǔ)性的變量域.
這種變量域的劃分很大程度上是純技術(shù)性的, 與我們的業(yè)務(wù)應(yīng)用中需要的scope支持相去甚遠(yuǎn). 當(dāng)我們把業(yè)務(wù)對(duì)象的生命周期映射到這些變量域的時(shí)候,
經(jīng)常出現(xiàn)不適應(yīng)的情況. 例如我們可能被迫選擇把與某項(xiàng)業(yè)務(wù)相關(guān)的所有數(shù)據(jù)放置在session中并在各處硬編碼一些資源清理代碼.
為了實(shí)現(xiàn)與愈來(lái)愈復(fù)雜的應(yīng)用開(kāi)發(fā)的契合, 我們需要能夠在程序中定義與應(yīng)用相關(guān)的變量域并實(shí)現(xiàn)對(duì)這些變量域的管理,
即我們需要一種自定義scope的支持而不是使用幾個(gè)固定的scope.
JBoss的Seam項(xiàng)目http://www.jboss.com/products/seam 中引入了一種所謂declarative application state management的機(jī)制
http://blog.hibernate.org/cgi-bin/blosxom.cgi/Gavin%20King/components.html, 其中的關(guān)鍵是增加了business process和conversation這兩個(gè)應(yīng)用直接相關(guān)的scope, 它們都是可以根據(jù)需要自由創(chuàng)建的. business process context使用jBPM支持long running的狀態(tài)保持. 而conversation context是對(duì)session使用的一種精細(xì)化, 與beehive項(xiàng)目中的page flow所需的scope支持非常類似 http://beehive.apache.org/docs/1.0m1/pageflow/pageflow_overview.html. 但目前seam中的scope支持仍是非常原始的, 不支持嵌套的context, 這意味著對(duì)于復(fù)雜應(yīng)用尚無(wú)控制和管理能力.
JBoss的Seam項(xiàng)目http://www.jboss.com/products/seam 中引入了一種所謂declarative application state management的機(jī)制
http://blog.hibernate.org/cgi-bin/blosxom.cgi/Gavin%20King/components.html, 其中的關(guān)鍵是增加了business process和conversation這兩個(gè)應(yīng)用直接相關(guān)的scope, 它們都是可以根據(jù)需要自由創(chuàng)建的. business process context使用jBPM支持long running的狀態(tài)保持. 而conversation context是對(duì)session使用的一種精細(xì)化, 與beehive項(xiàng)目中的page flow所需的scope支持非常類似 http://beehive.apache.org/docs/1.0m1/pageflow/pageflow_overview.html. 但目前seam中的scope支持仍是非常原始的, 不支持嵌套的context, 這意味著對(duì)于復(fù)雜應(yīng)用尚無(wú)控制和管理能力.