我們在實際的
web
應用開發過程中,在用戶登錄后會向
session
中塞入一些信息(例如用戶信息,菜單信息等),在頁面提交后,會從
session
中取出這些信息,拼成完整的業務記錄,保存到數據庫中。此時就要求
DWR
可以與
Servlet
對象通信。
其實
DWR
已經考慮好了,在
DWR1.1
中可以利用
uk.ltd.getahead.dwr.WebContext
和
uk.ltd.getahead.dwr.WebContextFactory
來和
Http Servlet
的標準對象進行通信,包括:
l????????
HttpServletRequest
l????????
HttpServletResponse
l????????
HttpSession
l????????
ServletContext
l????????
ServletConfig?
?具體調用的方法如下:
import
?javax.servlet.http.HttpServletRequest;?
import
?uk.ltd.getahead.dwr.WebContext;?
import
?uk.ltd.getahead.dwr.WebContextFactory;
?import org.directwebremoting.WebContextFactory; //DWR2.0改成這樣
//
/?
WebContext?ctx?
=
?WebContextFactory.get();?
HttpServletRequest?req?
=
?ctx.getHttpServletRequest();?
???? WebContext 是使用ThreadLocal保存的,你可以看一下uk.ltd.getahead.dwr.impl.DefaultWebContextBuilder源碼,所以可以在任何地方使用它,例如在上一篇的demo中進行測試如下:
頁面里給session設置值
<%@?page?contentType="text/html;?charset=GBK"?%>?
??
<%?
System.out.println("This?is?DWR?servlet?object!");?
??
session.setAttribute("dwr","love?dwr");?
%>?
DWR要調用的類文件
package?test.dwr;?
??
import?javax.servlet.http.HttpServletRequest;?
??
import?uk.ltd.getahead.dwr.WebContext;?
import?uk.ltd.getahead.dwr.WebContextFactory;?
??
public?class?MessageDao?{?
????public?Message?save(Message?message)?{?
??
????????WebContext?ctx?=?WebContextFactory.get();?
????????HttpServletRequest?req?=?ctx.getHttpServletRequest();?
????????
??
????????System.out.println("========HttpServletRequest?Begin=======");?
????????System.out.println("req:"?+?req.getRemoteHost());?
????????System.out.println("req-session:"?+?req.getSession().getAttribute("dwr"));?
????????System.out.println("text:"?+?req.getParameter("text"));?
????????System.out.println("from:"?+?req.getParameter("from"));?
????????System.out.println("=========HttpServletRequest?End========");?
??
????????System.out.println("========Lucky?DWR?Begin=======");?
????????System.out.println("text:"?+?message.getText());?
????????System.out.println("from:"?+?message.getFrom());?
????????System.out.println("=========Lucky?DWR?End========");?
??
????????return?message;?
????}?
??
????public?Message?get()?{?
????????return?new?Message("This?is?the?first?dwr?demo!",?"test");?
????}?
}?
posted on 2006-11-21 23:01
有貓相伴的日子 閱讀(2867)
評論(0) 編輯 收藏 所屬分類:
dwr