我們在實際的 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 野草 閱讀(1340) 評論(0)  編輯  收藏 所屬分類: ajax
          主站蜘蛛池模板: 嵊州市| 景泰县| 二连浩特市| 黄冈市| 威信县| 台东市| 香港| 赤峰市| 北安市| 龙井市| 高雄市| 西昌市| 东平县| 麻阳| 布拖县| 化德县| 永宁县| 中方县| 邯郸县| 邓州市| 手机| 永福县| 定襄县| 平原县| 阳东县| 黄龙县| 卢龙县| 桐乡市| 安阳市| 蕲春县| 剑川县| 洛南县| 略阳县| 夹江县| 年辖:市辖区| 安达市| 泽库县| 宁南县| 太仆寺旗| 和林格尔县| 怀宁县|