|
ś - Servlet ԟ ͅ Craig Walker Thomas E. Davis ߜ JavaWorld ˉ ͌ :݇ͅ ͛ ԃ Servlet API ͂ ߅ 鐋߅ ʼn ʼn ̓͂ ̓ ř͋ ˂ ނ 酋 ͕ Ś ڟ ߂ ͘ ޟ ߇ .˟ ˂ ˂ . 韍 ޟ ŋ ͂ ܛ ՜ ޟ ˌ 鐟) ˜˜ Ń ̓ Ŗ ř͋ API ߂ ̓ ˜߅ (Cookie Օ ͟ .˜ ܉ Cookie Ś ̓ ܃ ŋ ߈͂ Craig Walker Thomas Davis 삋 ޟ ř͋ ߅ߛ ͋ ޟ ͛ ڟ ˌ ͋ .˜ ͅ ԟ Ԃ ͅ ͂ ނߛ .ŋ ނ ߅ Ԃ ͕͟ ř͋ ݟ ͟ ݟ ԃ Ù .˜ߜ ͋ ͂ ނ˜ П͋ ނ˜ П͋ ƙ ̓ ː ٟ Java2 Ś ݞ ъ ڟ .˜ ̓ Ђ 錂 Enterprise Edition (J2EE) ͂ ̈́ ˕ ͘ .˜ ܟ Java Server Pages ͂ 酙͋ Є ˌ ԃ ̈́ ˟ ߂ ނ ޟ Java Servlet API ˜ ˂ ߞ ͋ .˟ 雂 Request ڟ ˟ ˝ ܗ Ԝ .˝ 雂 Ο Response ڟ ߛ ܂ ͋ ̓ Ŝ ˌ Session . ߛ ܂ Ŝ ̓ ͋ ŋ .˟ ͟ ߊ ŋ Κ ͂ ͛ ̓ ߇ߛ ł .ŋ ԛ ř͋ ڟ ߛ ŋ Ο ޟ
՜ ˜߄ Пߜ ̓ ڟ ͂ ͊ 雂̓ ޟ ߇ .˜ ř͋ ߅ߛ ͂ ͂՜ 雂̓ .˜ Յ ˜ Ο ̈́ Ō ߛ ˟ 삋 ޟ ԃ ߛ ޟ .͟ ߅ߛ ͂ ߙ ˝ߊ Пߜ ߅ ř͋ ԟ ͅ ߉ ˜ ś ˜ .˜ Ń 霕ͅ ̓ ͞ ͅ ߉ ޟ . ݟߊ şߖ Ã џΕ ̈́ ̓͂ ˟ " . ݟߊ ނ 镂 ̓͂ ͎ ł ř͋ ߅ߛ ͆ ̘͂ ˜ ̓ ͋ ˜ ˂ ߙ ͂ ޟ .˜ ͋ ˟ ˜ ˟ ͝ ߈ .͟ ͅߟ ˜ Ë Ӊ .ŋ ҂ ˃ ͕ ߍ ͋ ڟ ˜ ˟ ڟ ̘͂ ˂ ٙ ͋ ڟ Ԗ ˜ ˟ ޟ̓ ͋ ނ ̓ .͟ ͖ ˂ ř ˊ͈ ͋ ޟ ޟ ˜ 韜 ͛ ͘ ř͋ ߅ߛ ˜͕ ڟ ˟ ܗ ޟ ܉ 韂郜 ŋ ߙ ˟ ˟͊ ܗ ̓ ڟ .˟ ͂ ۂ ߜ .ݟ ɟ߅ ߛ ޟ ͜ ř Cookie 酌ߜ ڟ ͘ ˟ˌ ߛ Cookie ˂ Ԝ ˟ ͅ http://drum.rudiment.net韂 ͜ ˟߅ http://www.drum.rudiment.net霂 . ݂ Cookie 霗 ŋߊ Cookie ˟̓͘ http://drum.rudiment.netނ錜 ߅ߛ ŋ ނ ܂ ޟ ˌ ߜ .ݟ ܉ Ś ͋ ޟ ݝ ܗ ޟ .˝ ͋ ߅ߛ ޟ Ë ͛ ڟ ͖ Ђ ˅ ś ߛ ߘ ޟ .͗ ݟߊ ͐ ř͋ ˗ ˜ߝ ߖ ͂ ̓ ˜ ˂ ˂ łߎߛ ŋ ˟ˇ ނ ڟ ߂ ߇ .˟ ̓ .˝ ނ ߊ ͂ ˜ 雇 ˌ ߜ Ś ޟ ݟ ͂ ˗ ˟ ˟ .ˌ Ɖ ͟ API ˌ ŋ
˜ ь߄ 鞅͋ ޟ ܍ .ˌ API ь߄ ř͋ ԟ ͅ ނ ߟ ޟ ߈ .˟ ˂ ͛ ߟ ڟ ř͋ ߅ߛ ߊ 霝 ь߄ ޟ̓ (˜ ͇ ) ˝ ނ API ŋ ޟ ޟ ˝ .ˌ ş ܃ ͟ ř͋ .ݟ ͂ (ř͋ ߅ ˖ ߈͂) RSEF ܆ ˜ ь߄ 铙 Ε͜ ͂ ŋ Ŗ ޟ ނ ߜ ޟ ߞ 铙 ޟ .͟ ̓ ( ܍) rudiment .韂 ߓ ߈͂ ͛ ͂ ͝ ̓ ˜ߝ ͟ ˂ ̓ RSEF ߍ К .ŋ Ɏ ͖ RSEF Пߜ ̓ ˟ RSEF ߊ̓ ՜ .ŋ HttpServlet ˋ ˟ Пߜ :˟ ߅ ٟ ޟ RSEF HttpServlet ˟
RSEF . javax.servlet.http Ε ͜ 郂 ˝ ߅ javax.servlet.http HttpServlet ͂ RSEF ޟ .˝ ͖ ř͋ ߅ߛ ޟ .˟ ݞ ߙ ߍ API ˗ ˜
߄ ʼn 韙 .˝ ݂ ߊ ˂ ͂ ˂ ͂ ˜߅ RSEF ߜ Ԝ .ˌ ř͋ ь߄ RSEF ͂ ޟͅݞ RSEF ޟ̓ .˜ Session Response Request ܛ ˌ ͗ SessionWrapper ResponseWrapper Requestwrapper 韂 ͂ ͘) John_Vlissides Ralph Richard Erich Gamma .ˌ (˟삛 ͛ Resources ) Design Patterns ݂ ނ (͐ ނ͐ .˜ ؟͐ Decorator ߘ ڟ ߜ ܛ ޟ . ԃ ڟ 싛 Ε :ŋ ޟ ߘ ͜ ̓ ڟ ԃ х˖ Decorator ߘ Request ř͋ .˜ Ë ߄ ԃ ˍ 霝 ь߄ ˜ ͖̓ Ԃ Session Response Ο ˜ ь߄ ߈ ߇ .˜ ߘ ߍ .ŋ Ɏ ޟ Ԃ ̙ ˜ ߊ ܍ ԃ .˟˜ ߊ ˗ ͟ RSEF Λ ߊ̓ ՜ 酕 .˜ ܛ ̈́ ڟ ߜ ˜ ь߄ ߛ ͘ ͅ ˜߅ ̓ ̈́ ߘ ڟ ͕͂ ͘ ޟ ޟ .˝ ͖ ޟΘ ڟ ̓ ͅ ʼn 陗 ޟ ܉ ߉ ̓ ̓ .˟ ˟ߊ ߛ ޟ ː Java_World ͟ Adapter ߘ ڟ ˂ Use Microsoft`s Internet Information Server as a Java Servlet Engine .(˟삛 ͛ Resources ś ) .˟ ͛
.錂 Request ܍ Session ߈ . ͅ ś ނ ՜ .ݟ߄ Request ˂ ݟ߅ .ŋ ڂԊ ݝ ˉ ߈ ˟ߊ ˗ ь߄ ͝ ͗ ݟߊ ߘ ː Ś Ο ˜ͅ ͇ ̓ RequestWrapper ͂ .韂 ߘ ߊ ˜ ь߄ ̓ ˟ ˜ .˟ SessionWrapper ߅ߛ Request ŋ ޟ Ԗ .錂 ResponseWrapper 霏 ܂ ˟ . Ԃ RequestWrapper 韂 ResponseWrapper RequestWrapper 韂 SessionWrapper 鏂 ݝ̓ ݝ ߅ ߅ ԃ ޟ .ˌ ResponseWrapper SessionWrapper RequestWrapper .ߌ ͗ ՜ ܗ ˂ .ߌ ߛ SessionWrapper ܃ ˟ ޟ̓ ͟ ̓ Session ͖ ь߄ ʼn ş싛 RequestWrapper Ŗ ˜ ь߄ ؙ ϟ ˟ Ԉ ː . ˟ ۜ Cookie ۂ RequestWrapper ݟߊ 韂 SessionWrapper ˟ 郂 ł SessionWrapper ͕ ޟ .˟̓ ͂ ˟ ˟ RequestWrapper ߂ ͂ ˟ ˌ ͇ ˖ ͝ .Session ь߄ ܃ ߟ͂ ͝ ̓ ނ雝 ˃ џΕ SessionWrapper RequestWrapper 錂 cut_and_paste ߃ ڟ ޟ ͟ ߌ ډ Ο ̓ .ŋ ߖ ߊ SessionWrapper RequestWrapper ͅ ˗ ˟˃ ͘ ßͅ ˜ ܆ ŋ ݝ ˟̓ ͂ hardcoded ߍ ̓ ˟߅ ˟ ܂ ߊ ˜ ͈ ͋͋ ͎ ͟ ߛ ̓͂ .˟ ݂ .̓ ˟̓ ͂ ˟ߊ ͅ ˟ ԛ ͘ ͂ ͘ ̓ ˟ ˌ ˟ ߍ ̓ ̓ ޟ flag Ԉ .˟ ͅ ͇ ނ ߊ RequestWrapper ˂ ڟ ͟˂ :˟ ˂ .˜ ˜ ͇ ̓ ߍ SessionWrapper ڟ ˂ !錂 韂 ݝ ͅ . ݝ ŕ Ŗ . ŋ .ŋ ߜ ߘ .˜ ڛ ͂ ͕ ͂ ͘ ޟ ނ Design_Patterns Ԝ .ˌ Factory_Method ݟ К ڟ ˂ ̓ ŋ ͅ Factory_Method .... " ˌ "... . ٟߐ ͕ К ߛ ˝ ނ ˂ 雂 RequestWrapper ނ : ނ韃 韝 ڟ RequestWrapper SessionWrapper ˂ ނ SessionWrapper ߜ ͂ߊ .˟ 霜 ˟߅ Ԗ ł͂ .ˌ ͂ ڟ Ԝ ŋ .˜ ߛ ԃ ߍ ߜ ڟ Ԗ ߛ Â Â 霂͂ ˂ .韂 ˟߅ SessionWrapper Ο SessionWrapper_Factory .錂 ܃ RequestWrapper ̓ ͂ ߉ SessionWrapper SessionWrapper ͂ Ԗ RequestWrapper .˜ ܛ ˞ ݝ ͂ ˟ ˗ 酞 ޟ̓ ŋ ͗ ǟ Ùԛ ˂ ܂ ނ ь߄ ˜ ͟ ˗ .ݟ̓ ˗ ͋ ݟ Response ݂ ̓ ߜ ˜ RequestWrapper SOURCE :˝ RequestWrapper ߅ߛ ˌ Request SessionWrapper ޟ . ь߄ ʋ ݂ ŋߊ SessionWrapper 鄋 . ݝߊ ɟ߅ ͍ ԃ ͂ Response Request 镂 ь߄ ̓ ߜ ޟ ͈ . ͂ Session ݂ ̓ ܆ ŋ 鐃 Ś ߋ ޟ ʋ ŋ ݝ ˟ ˖ ԃ 韂 џ˜ͅ ͇ ̓ ˜ ь߄ ͝ ˟˃ Ԗ ߜ .ŕ ݟߊ ݂ ͖ ˜ ь߄ ̓ ̓ ߜ SessionWrapper ڟ ˗ ͈ ߜ .ˌ ɟ߅ ͂ ˌ ߊ Factory_Method ߘ ˟ SessionWrapper ߈ ŋ ˜ SessionWrapper .˝ ˌ ɟ߅ ͂ 韂 RequestWrapper SessionWrapper ߜ ˝ ނ RSEF .˟ ޟ ˜ ˂ :ŋ ˌ ͗ SessionWrapper ԃ 싛 ˅ ˝ ނ ڈߗ ˅ ڟ ԃ ޟ 酛 ޟ ͇ ߉ ː .ˌ ߊ SessionWrapper .̓ ˟ߊ RequestWrapper ܊ ͂ ߈͂ ͂ߊ ˜ 釅 ˟ ݟ߅ ߜ ˟ ߇ 雂 ˝ ߅ ͜ ř͋ RSEF HttpServlet .ݟ ܟ ς ˜ ь߄ ߛ RSEF .ˌ ͟ߍ Ђ 降 Ԗ :˝ ݂ ͂ Service() ˅ .˜ 閕 ͂ Service() ˅ .͇ ͋ ř͋ ߅ߛ ޟ ߛ К ˜ ь߄ Є ŋ Response Request :ŋ ޟ ˗ .˅͕
霈 ߈͂ ޟ ˜˗ ˜ ݂ ͂ ޟ ˅ 韂閛 ȟ˜ ˟ ߋ ޟ ߇ ̓ .ŋ ͛ ݝ Є ͘ ڟ ř͋ ˌ ނ ڟ ͐ ř͋ ߅ߛ ͘ .ݟ 韜 ͟ ڟ ͘ .͟ ͖ ނ ŋ ߘ RSEF 韜 ߌ ͅΛߊ ݐ ˌ ȟ˜ ޟ .ŋ ˜ ߊ
ş ˖ RSEF HttpServlet ˌ ˅ 霗 .˝ ͜ ˜ ͞ ߊ ř͋ ߅ߛ ͇ ߉ ˌ ͗ ߟ͂ ˟˂ ݟ͗ ܛ ͈ ڟ ͅ Cookie ۂ request ˜ ь߄ :˟ ͇ К 霟 .˜ ͟ ł Session ˜ ь߄ :˟삛 ßͅ ͟ ˗ ˂ ߊ BootStrap
雜 .˝ ݂ ͂ ޟ Ο WrapResponse() ˅ . Cookie şߝ ˖ ڟ ߈ ŋ ݂ К ڟ SessionWrapperFactory ˂ ڟ ߌ ͇ ř͋ ͂ ͝ ŋ ڟ ߜ ޟ̓ .(ŏ Օ ˝ ) ˟ .ݟ͘ ՜ ڟ ߎ .˟ߛ ˜͗ ނ˜ ߊ .ŋ ͅ ߈͂ ߜ RSEF 銋 ˜ ߊ ř͋ ŋ ޟ ͛ ޟ͊ :˟
!˟ ͌ ˂ ߜ .˟ ˂ ۜ ̓ ̓ ː ͂ ݟ͗ ͐ ͜ ߈͂ ř͋ ʼn ߇ߛ ̈́ ̓ ˟ şߖ ş 队 Օ ͅ Session ş͟˛ ͂ ː ś .ŋ . ͛ Cookie ߉ ۂ ߋ ś .͗ ݟߊ Ń .˟ RSEF ˖ ˟߅
|
|
|
![]()
Copyright 2001, JavaWorld/International Data Group Corp./PC WORLD Iran. All rights reserved.