DWR之与服务器端的DWR交互

DWR之与服务器端的DWR交互
----------
当编写服务器端代码时, 通常不会意识到该代码会被DWR调用,这一般不会出问题,但是偶尔也会。应注意,DWR提供了一些便捷工具,以便与服务器端代码交互。

在DWR服务器端编码时,首先应考虑两个类:WebContext和WebContextFactory,它们按顺序使用,类似于下面的方式:

org.directwebremoting.WebContext wc = org.directwebremoting.WebContextFactory.get();
一旦有了 WebContext(使用ThreadLocal,因此每个请求线程都有一个),就可以访问大多数标准的servlet对象,包括:
javax.servlet.http.HttpServletRequest request = wc.getHttpServletRequest();
javax.servlet.http.HttpServletResponse response = wc.getHttpServletResponse();
javax.servlet.ServletConfig config = wc.getServletConfig();
javax.servlet.ServletContext context = wc.getServletContext();
javax.servlet.http.HttpSession session = wc.getSession();
也可以调用wc.getContainer(),它返回一个Container对象。这是DWR提供的一个非常基础的IOC容器。 DWR还提供了与当前流行的Spring IOC容器集成的方法
另一个替代方法是把服务器代码和DWR彻底分开(即不需要WebContext)。该方法很简单,只需要在 远程签名中声明所需的对象即可。如:
public void serverSideObjects(final String inParam,final HttpServletRequest request,final HttpServletResponse response,
final ServletConfig config,final ServletContext context,final HttpSession session){
    System.out.println("inParma = " + inParam);
    System.out.println("request = " + request);
    System.out.println("response = " + response);
    System.out.println("config = " + config);
    System.out.println("context = " + context);
    System.out.println("session = " + session);
}
当在javascript中调用该方法时, 不要给最后5个参数传入任何值。DWR将通过一些魔法将适当的对象填入这些参数。 但是应注意,javascript调用必须采取"回调函数作为最后一个参数"或者"调用数据元对象"的方法,不能把回调函数作为第一参数



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值