我們在實(shí)際的 web 應(yīng)用開發(fā)過程中,在用戶登錄后會(huì)向 session 中塞入一些信息(例如用戶信息,菜單信息等),在頁面提交后,會(huì)從 session 中取出這些信息,拼成完整的業(yè)務(wù)記錄,保存到數(shù)據(jù)庫中。此時(shí)就要求 DWR 可以與 Servlet 對象通信。
其實(shí)
DWR
已經(jīng)考慮好了,在
DWR1.1
中可以利用
uk.ltd.getahead.dwr.WebContext
和
uk.ltd.getahead.dwr.WebContextFactory
來和
Http Servlet
的標(biāo)準(zhǔn)對象進(jìn)行通信,包括:
l???????? HttpServletRequest
l???????? HttpServletResponse
l???????? HttpSession
l???????? ServletContext
l????????
ServletConfig?
?具體調(diào)用的方法如下:
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();?
頁面里給session設(shè)置值
??
<%?
System.out.println("This?is?DWR?servlet?object!");?
??
session.setAttribute("dwr","love?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");?
????}?
}?