我們在實際的 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;

          ?

          ///

          WebContext ctx = WebContextFactory.get();

          HttpServletRequest req = ctx.getHttpServletRequest();

          ?????? WebContext 是使用 ThreadLocal 保存的,你可以看一下 uk.ltd.getahead.dwr.impl.DefaultWebContextBuilder 源碼,所以可以在任何地方使用它,例如在上一篇的 demo 中進行測試如下:

          index.html 頭部增加如下代碼并改名為 index.jsp

          <%@ page contentType="text/html; charset=GBK" %>

          ?

          <%

          System.out.println("This is DWR servlet object!");

          ?

          session.setAttribute("dwr","love dwr");

          %>

          修改 MessageDao.java 的代碼如下

          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-04-07 22:09 野草 閱讀(1350) 評論(0)  編輯  收藏 所屬分類: ajax
          主站蜘蛛池模板: 鸡泽县| 清水河县| 尼木县| 芜湖县| 平阴县| 兴海县| 玛纳斯县| 三亚市| 湘西| 海阳市| 巫溪县| 什邡市| 玛纳斯县| 襄樊市| 黎川县| 青阳县| 辽宁省| 怀来县| 大洼县| 邢台县| 琼结县| 从江县| 淮滨县| 奈曼旗| 海伦市| 天水市| 邹城市| 秭归县| 顺昌县| 特克斯县| 惠水县| 柏乡县| 邹平县| 嘉峪关市| 汤阴县| 永寿县| 太保市| 寿光市| 襄城县| 九龙县| 班戈县|