DWR Java API
There are only 2 Java classes that you commonly need to depend on within DWR as a user - WebContext
and WebContextFactory
. In DWR 1.x these are in the uk.ltd.getahead.dwr
package, for DWR 2.0 onwards they are in org.directwebremoting
. These classes give you to access to the standard HTTP servlet objects:
- HttpServletRequest
- HttpServletResponse
- HttpSession
- ServletContext
- ServletConfig
You use WebContext
like this:
import uk.ltd.getahead.dwr.WebContext;
import uk.ltd.getahead.dwr.WebContextFactory;
///
WebContext ctx = WebContextFactory.get();
req = ctx.getHttpServletRequest();
It is important that you treat the HTTP request and response as read-only. While HTTP headers might get through OK, there is a good chance that some browsers will ignore them (IE ignores cache pragmas for example) Any attempt to change the HTTP body WILL cause DWR errors.
WebContext uses a ThreadLocal variable so you can use the line above anywhere in your code (so long as it has been fired off by DWR).
See also the JavaDoc for DWR in general, or the specific page for WebContext.
WebContext replaces ExecutionContext which is deprecated as of DWR 1.1.
Alternative Method
It is possible to get access to the HTTP servlet objects without writing code that depends on DWR - just have the needed parameter (i.e. HttpServletRequest, HttpServletResponse, HttpSession, ServletContext or ServletConfig) declared on your method. DWR will not include it on the generated stub and upon a call of the method it will fill it in automagically.
For example if you have remoted a class like this:
public class Remote {
public void method(int param, ServletContext cx, String s) { ... }
}
Then you will be able to access it from Javascript just as though the ServletContext
parameter was not there:
Remote.method(42, "test", callback);
DWR will do the work of filling in the parameter for you.
There is one slight caveat with this method. You should ensure you are not using the 'callback function as first parameter' idiom, instead use the 'callback as last parameter' or 'callback in meta-data object' idioms. See the scripting introduction
分享到:
相关推荐
通过DWR,开发者可以在不涉及繁琐的AJAX请求和响应处理的情况下,直接在JavaScript中调用Java对象的方法,使得前端和后端的通信变得更为便捷。 **整合SpringBoot与DWR** 1. **添加依赖**:在SpringBoot项目的`pom....
通过"TestDwr"中的示例,你可以看到如何配置DWR,创建可调用的Java服务,以及在JavaScript中如何使用这些服务。这个实例可以帮助你快速理解和上手DWR,进一步探索如何在实际项目中运用这一技术。
DWR的主要目标是简化AJAX(Asynchronous JavaScript and XML)开发,使得开发者能够轻松地在浏览器中调用服务器上的Java方法,就像调用本地JavaScript函数一样。这个技术极大地提升了用户体验,因为数据可以在不刷新...
本文将详细探讨DWR的配置与使用,尤其是如何在JavaScript环境中调用Java方法,帮助初学者快速掌握这一技能。 #### 一、DWR配置详解:web.xml中的关键设置 ##### 1. 最小配置 在web.xml中,DWR的最基础配置涉及创建...
在 DWR 中取得 Session 等信息可以使用两种方法:使用 DWR 的 API 或者在 Java 服务方法中定义参数。后者是推荐的做法,因为它更简洁、更易于维护。无论使用哪种方法,都是为了获取用户信息,以便更好地实现业务逻辑...
DWR,全称Direct Web Remoting,是一种在Web应用程序中实现客户端JavaScript与服务器端Java代码之间直接交互的开源框架。它旨在简化远程方法调用(Remote Method Invocation,RMI)的过程,使得在浏览器环境中可以像...
DWR使得开发者能够轻松地在Web应用中调用后台Java方法,就像调用本地JavaScript函数一样。下面将详细阐述DWR的工作原理、配置过程以及如何使用DWR实现JS调用Java后台方法。 1. **DWR概述** DWR的核心功能是提供一...
通过DWR,开发者可以在客户端JavaScript中直接调用服务器端的Java方法,而无需编写复杂的Ajax代码。这大大降低了开发难度,提高了开发效率。 #### 实现步骤 1. **配置DWR:** - 在项目中引入DWR相关的jar包。 - ...
Java DWR(Direct Web Remoting)是一个开源框架,它允许JavaScript和Java在Web应用程序中进行交互,实现异步通信,即Ajax(Asynchronous JavaScript and XML)功能。DWR简化了客户端与服务器端之间的数据交换,使得...
这个案例是关于如何使用DWR来实现在JavaScript中调用Java代码的一个实例,特别适合初学者了解和学习。 DWR的核心思想是创建一个在客户端和服务器端之间的桥梁,使得JavaScript可以像调用本地函数一样调用远程的Java...
DWR是一种让Java方法可以直接在JavaScript中调用的技术,无需编写复杂的AJAX代码。它通过在服务器端运行一个Servlet,允许前端JavaScript代码像调用本地函数一样调用远程服务器上的Java方法,实现了前后端的无缝通信...
在提供的压缩包中,`js与java相互调用.docx`文档可能详细阐述了如何设置和使用DWR实现Java和JavaScript的交互,包括配置步骤、示例代码和最佳实践。建议仔细阅读这份文档,以深入理解DWR的工作原理和实际应用。 ...
4. **JavaScript调用Java**:在JavaScript中,我们可以使用DWR的API来调用服务器端的方法。例如: ```javascript DWRUtil.useLoadingMessage("正在处理..."); MyService.executeTask(data, { success: function...
dwr (Direct Web Remoting) 是一种开源技术,它允许在Web应用程序中实现在客户端JavaScript与服务器端Java之间进行安全的远程方法调用。DWR简化了前后端交互,使得前端可以直接调用后端的Java方法,就像调用本地函数...
4. **DWR API**:DWR提供了几种主要的API,如`DWRUtil`、`RemoteProxy`等,用于在JavaScript中创建和调用Java对象。例如,`create()`方法用于创建一个与后端Java对象的连接,`call()`方法用于执行远程方法。 5. **...
DWR使用了一种称为“动态远程调用”的技术,它允许JavaScript直接调用Java方法,并将结果返回给调用方。这种方式极大地简化了数据传输过程,同时也减少了网络延迟的影响。 ##### 3. 自动序列化与反序列化 DWR能够...
1. **配置DWR**: 首先,你需要在Java项目的web.xml文件中配置DWR的Servlet。这包括设置DWR的过滤器、安全配置以及允许访问的类等。 2. **创建Java Beans**: 在服务器端,你需要定义一些Java类(通常称为Beans),...
DWR (Direct Web Remoting) 是一种用于在Web应用程序中实现AJAX技术的框架,它允许JavaScript直接调用服务器端的Java方法,从而实现实时的动态数据交换。以下是对DWR调用及传参方式的详细说明: 1. **无返回值和...
1. **配置DWR**:首先,在Java项目中集成DWR,添加DWR库,然后配置DWR的Context配置文件(如dwr.xml),定义允许JavaScript调用的Java类和方法。 2. **创建Java服务**:在Java后端编写需要暴露给前端的方法,这些...