DWR整合之Servlet

DWR 与 Servlet  

  有 2 个 Java 类你一般需要用在 DWR 中,是 webContext 和 WebContextFactory

  在 DWR 1.x 它们在 uk.ltd.getahead.dwr 包, DWR 2.0+在 org.directwebremoting 包。这 2 个类给与你访问标准 Http servlet 对象的入口。这些对象是:

  •HttpServletRequest

  •HttpServletResponse

  •HttpSession

  •ServletContext

  •ServletConfig

1.使用 webContext 的方法:

1 import uk.ltd.getahead.dwr.WebContext;
2 import uk.ltd.getahead.dwr.WebContextFactory;
3 //
4 WebContext ctx = WebContextFactory.get();
5 req = ctx.getHttpServletRequest();

  处理 Http request 和 response 做为只读是非常重要的。因为,当 Http headers 也许会通过,那么有些浏览器会忽略它们(比如 IE 忽略缓存参数)。任何尝试改变 Http body 将会导致 DWR 错误。
    WebContext 使用一个本地线程变量,所以你能使用以上的代码放在任何地方。
  也可以看一下 DWR 的 Java 文档 ,或者详细看一下 WebContext 。
  WebContext 代替了 DWR1.1 中的 ExecutionContext。

2.方法选择

  在没有写依赖于 DWR 的代码时,要能够访问 Http servlet 对象是可以做到的(比如 HttpServletRequest,HttpServletResponse, HttpSession, ServletContext or ServletConfig)。DWR 将自动填充它。

  举个例子:  

1 public class Remote {
2     public void method(int param, ServletContext cx, String s) { ... }
3 }

  然后你将可以从 Javascript 中通访问它尽管没有 ServletContext 参数:

Remote.method(42, "test", callback);

  DWR 将为你填充这个参数。
  对这个方法这里有个小小的警告,你要保证你的没有把’callback function’作为第一个参数,而应该把它作为最后一个参数,或者作为元数据对象

走在一起是缘分,在一起走是幸福; 在一起走是缘分,走在一起是幸福
原文地址:https://www.cnblogs.com/tarena/p/3683037.html