You are on page 1of 5

S DNG SERVLET CONTEXT Chng ta xem qua phng php s dng nhng i tng Session duy tr trng thi

hi lin quan n nhng trng khch n trn Server.Nhng lm th no duy tr trng thi cho ng dng web khng c th cho mt ngi dng ring bit no ca chng ta? i tng ServletContext biu din nhng ti nguyn c dng chung bI mt nhm cc servlet.Trong nhng phin bn 1.0 v 2.0 ca servlet API ServletConext ch h tr cc x l v thng tin v mi trng ca servlet nh l : tn ca servlet,nhng nh x kiu MIME,v mt phng thc log() dng vit cc thng ip n file log ca server.Hu ht cc ci t u cung cp mt servlet context cho tt c cc servlet bn trong my ch hoc my ch o. Trong phin bn 2.1 ca API,vai tr ca ServletContext c m rng thc hin c nhiu chc nng cho mt nhm cc ti nguyn my ch m cu thnh ng dng.N cho php cc servlet trong cng mt context dng chung thng tin thng qua thuc tnh context,tng t ng thuc tnh session.Hu ht cc ci t u h tr a context trong cng mt my ch,mI context I din cho mt ng dng ring. Trong phn ny chng ta s tm hiu v : Phng php lp cu hnh servlet conext c nh nhu cu ca cc ng dng ring trn cng mt server. Phng php khI ng mt trng thi ca servlet context t file cu hnh ng dng. Phng php m nhng servlet khc nhau trong ng dng c th x l trng thi context. Lm th no m nhng thay I trng thi context t mt servlet nh hng ngay n nhng phn khc ca ng dng. S LC V MT NG DNG CHAT Mt ng dng chat gm cc chc nng sau: Qun tr phng chat : to mI hoc xa nhng phng chat. Lit k cc phng chat : ni m ngi s dng c th c cc m t ca tt c cc phng v bc vo mt phng. Phng chat : nhiu ngi s dng c th chat vi nhau. Phn tch v thit k cc lp i tng v d liu ng dng chat bao gm 2 kiu i tng : cc i tng d liu (data objects). di tng giao din ngi dng (user interface objects).

Cc i tng d liu : RoomList : mt th hin ca lp ny gi cc tham chiu n tt c cc i tng ChatRoom. i tng ny c nm gi nh l mt thuc tnh ServetContext v th n c th c x l bi tt c cc servlet m cu thnh ng dng. ChatRoom : C mt i tng ChatRoom cho tng room,cha cc thng tin v room v cc i tng ChatEntry trong room . ChatEntry : Mt i tng ChatEntry tng trng cho mt ngi chat c trong room.Mi i tng ny gm c tn ca ngi chat v thng ip. M hnh tng qut : RoomList ChatRoom1
ChatEntry1 ChatEntry2 ChatEntry3

ChatRoom2
ChatEntry1 ChatEntry2 ChatEntry3 ChatEntry4

S cc lp :
ServletContext attributes : HashTable getAttribute : Object setAttribute : void removeAttribute : void ChatRoom RoomList chatRoom : HashTable addRoom : void getRoom : ChatRoom getRooms : Enumeration removeRooms : void name : String description : String chatEntries : Vector addChatEntry : void getChatEntries : Enumeration getDescription : String getName : String ChatEntry avatarName : String chatMessage : String getAvatarName : String getChatMessage : String

Gii thch : RoomList cha mt bng bm vi cc thnh phn l nhng i tng ChatRoom v mi ChatRoom cha mt Vector lu cc i tng ChatEntry.Nh vy i tng RoomList l im nt tr n tt c cc i tng khc,v th mt tham chiu n i tng RoomList c lu tr nh l mt thuc tnh ServletContext. Lp RoomList : package giaulph; import java.util.*; public class RoomList { private Hashtable chatRoom = new Hashtable(); public void addRoom(ChatRoom room) { chatRoom.put(room.getName(),room); } public ChatRoom getRoom(String roomName) { return (ChatRoom) chatRoom.get(roomName); } public Enumeration getRooms() { return chatRoom.elements(); } public void removeRooms(String [] roomName) { for (int i = 0;i<roomName.length;i++) { chatRoom.remove(roomName[i]); } } } Lp ChatRoom : package giaulph; import java.util.*; public class ChatRoom { String name; String description; Vector chatEntries; public ChatRoom(String name,String description) { } public void addChatEntry(ChatEntry chatEntry) { } public Enumeration getChatEntries() { } public String getDescription() { } public String getName() { } }

Lp ChatEntry : package giaulph; import java.util.*; public class ChatEntry { String avatarName; String chatMessage; public ChatEntry(String avatarName,String chatMessage) { this.avatarName = avatarName; this.chatMessage = chatMessage; } public String getAvatarName() { return avatarName; } public String getChatMessage() { return chatMessage; } } CU HNH SERVLET CONTEXT ServletContext c dng nh ngha cc nh x URI n tn cho ng dng v cho php cc servlet trong ng dng thao tc nhng thng tin dng chung. Servlet API 2.1 cho php nh ngha nhiu context trn cng mt server,vi mi context tng ng vi mt ng dng.Trong mi servlet context chng ta c th nh ngha cc vn nh : URI path prefix cho servlet context Tn cho cc lp servlet s khi ng cc tham s cho servlet phng php request cc URI nh x n cc servlet cc tham s session nhng kiu MIME cho cc file tnh Mt URI path prefix duy nht cho tng servlet context URI l mt chui bt k dng xc nh mt ti nguyn internet URL l mt chui c nh dng cho mt nghi thc c th nh l HTTP bao gm : phn nghi thc, tn min ca server, ng dn,v cc tham s chui truy vn c th c. cui cng URI l mt phn ca URL m xc nh ti nguyn bn trong mt server c th,ngha l ch l phn ng dn. cc phn ng dn ca URI c dng nh v servlet context tng ng cho truy vn v sau nh v servlet bn trong context x l truy vn .V th vic u tin ca tt c cc servlet context phi c nh x n mt URI,v d /chat . Khi servlet

engine nhn c mt HTTP request vi mt ng dn bt u vi /chat n bit rng request s c x l bi ng dng chat. Tn servlet v vic nh x ng dn URI cho tng servlet context : Chng ta phi lp cu hnh cch m cc request c x l bn trong context.Chng ta bt u bng vic nh ngha tn cho cc cc servlet trong ng dng chat ca chng ta : ChatAdmin com.wrox.context.chat.ChatAdminServlet ListRoom com.wrox.context.chat.ListRoomsServlet ChatRoom com.wrox.context.chat.chatRoom.Servlet File

You might also like