我們?cè)趯?shí)際的 web 應(yīng)用開發(fā)過程中,在用戶登錄后會(huì)向 session 中塞入一些信息(例如用戶信息,菜單信息等),在頁(yè)面提交后,會(huì)從 session 中取出這些信息,拼成完整的業(yè)務(wù)記錄,保存到數(shù)據(jù)庫(kù)中。此時(shí)就要求 DWR 可以與 Servlet 對(duì)象通信。

          其實(shí) DWR 已經(jīng)考慮好了,在 DWR1.1 中可以利用 uk.ltd.getahead.dwr.WebContext uk.ltd.getahead.dwr.WebContextFactory 來和 Http Servlet 的標(biāo)準(zhǔn)對(duì)象進(jìn)行通信,包括:

          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 中進(jìn)行測(cè)試如下:

          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 野草 閱讀(1337) 評(píng)論(0)  編輯  收藏 所屬分類: ajax
          主站蜘蛛池模板: 清丰县| 通许县| 车致| 米易县| 阜城县| 厦门市| 泾源县| 东乡族自治县| 成都市| 永平县| 高安市| 临邑县| 罗源县| 苏尼特右旗| 闽侯县| 昭苏县| 祥云县| 来安县| 叙永县| 宁国市| 赫章县| 满城县| 永丰县| 会理县| 定日县| 司法| 灵石县| 通化市| 双城市| 北宁市| 盘锦市| 威宁| 昌吉市| 金昌市| 县级市| 宜章县| 武平县| 邯郸县| 平江县| 舒兰市| 泸西县|