我們在實際的 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
          主站蜘蛛池模板: 南昌市| 张掖市| 龙陵县| 怀宁县| 容城县| 措美县| 汾阳市| 资阳市| 和林格尔县| 宁都县| 绍兴市| 黄浦区| 资溪县| 专栏| 巴林左旗| 七台河市| 大田县| 定安县| 界首市| 安阳市| 利辛县| 方山县| 陵川县| 肥乡县| 错那县| 定远县| 宣汉县| 松阳县| 酒泉市| 巴彦县| 龙里县| 济南市| 社会| 蕲春县| 西吉县| 曲阜市| 仲巴县| 斗六市| 图们市| 太湖县| 郎溪县|