Changeset 54
- Timestamp:
- 04/28/05 20:11:17 (4 years ago)
- Files:
-
- trunk/dsp/servlet/IDSPRequest.d (modified) (1 diff)
- trunk/dsp/servlet/IDSPResponse.d (modified) (1 diff)
- trunk/dsp/servlet/ServletRegistry.d (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/dsp/servlet/IDSPRequest.d
r49 r54 29 29 30 30 interface IDSPRequest : IServletRequest{ 31 void setException(Exception e);32 31 } trunk/dsp/servlet/IDSPResponse.d
r49 r54 27 27 28 28 private import mango.servlet.model.IServletResponse; 29 private import mango.http.HttpWriter; 29 30 30 31 interface IDSPResponse : IServletResponse{ 31 32 HttpWriter getWriter(); 33 void setException(char[] e); 34 bit isExceptionSet(); 35 char[] getException(); 32 36 } 33 34 class HttpWriter{35 void put(char[] value){36 }37 }trunk/dsp/servlet/ServletRegistry.d
r49 r54 31 31 alias void function(IDSPRequest request,IDSPResponse response) ServletHandle; 32 32 33 34 33 class ServletRegistry{ 35 34 static ServletHandle[char[]] registry; 36 35 37 static void register(ServletHandle handle,char[] path){ 38 registry[path] = handle; 36 static void register(ServletHandle handle,char[] name){ 37 //TODO: enable use of nested servlets 38 registry[name] = handle; 39 39 } 40 40 41 static synchronized void doService(char[] path,IDSPRequest request,IDSPResponse response){ 42 if(path in registry){ 43 try{ 44 registry[path](request,response); 45 } 46 catch(Exception e){ 47 request.setException(e); 48 } 49 catch(Object o){ 50 request.setException(new Exception("general exception: " ~ o.toString())); 51 } 41 static /*synchronized*/ void doService(IDSPRequest request,IDSPResponse response){ 42 //TODO: enable use of nested servlets 43 char[] name = "default"; 44 45 if(name in registry){ 46 registry[name](request,response); 52 47 } 53 48 else{ 54 re quest.setException(new Exception("servlet not found"));49 response.setException("servlet not found"); 55 50 } 56 51 } … … 61 56 } 62 57 63 export void service(char[] path,IDSPRequest request,IDSPResponse response){ 64 ServletRegistry.doService(path,request,response); 58 extern(C) export void service(IDSPRequest request,IDSPResponse response){ 59 try{ 60 ServletRegistry.doService(request,response); 61 } 62 catch(Exception e){ 63 response.setException(e.toString()); 64 } 65 catch(Object o){ 66 response.setException("general exception: " ~ o.toString()); 67 } 65 68 }
