我们讲到了后端纯Java Code的Dwr3配置,完全去掉了dwr.xml配置文件,但是对于使用注解的类却没有使用包扫描,而是在Servlet初始化参数的classes里面加入了我们的Service组件的声明暴露,对于这个问题需要后面我们再细细研究下这篇文章,主要分析介绍前端怎么直接调用后端
Direct Web Remoting (DWR) 是一个开源的Java库,允许JavaScript在客户端与服务器端进行交互,使得前端能够直接调用后端的Java方法。在Dwr3.0版本中,配置过程可以更加简洁,通过纯Java代码配置,不再依赖传统的dwr.xml配置文件。本文将深入探讨如何在Dwr3.0中实现这种纯注解配置,并讲解前端如何调用后端的方法。
让我们回顾一下后端的配置。在纯Java配置的Dwr3.0中,我们不再需要在dwr.xml中声明暴露的服务。相反,我们可以在Servlet的初始化参数中指定Service组件,让DWR知道哪些类和方法应该被暴露给前端。这通常涉及到在web.xml中配置DWR的Servlet,并在其中设置`init-param`来包含我们的Service组件。
例如,我们可能会有如下配置:
```xml
DWRServlet
org.directwebremoting.spring.DWRSpringServlet
initClasses
com.example.MyService
```
在这个例子中,`com.example.MyService`是我们想要暴露给前端的Service组件。为了使DWR识别和处理注解,我们需要在Service类中使用`@RemoteInterface`和`@RemoteMethod`注解。
一旦后端配置完成,我们可以进行前端的调用测试。通过访问`http://localhost:80/[Web 名称]/dwr/`,如果配置正确,会显示出DWR的接口列表,包括所有可用的Java方法。值得注意的是,只有标记了`@RemoteMethod`的方法才能在前端直接调用,否则会引发错误。
接下来,我们需要在HTML页面中引入DWR的JavaScript库,包括`engine.js`、`util.js`以及特定Service组件的接口文件。例如:
```html
```
`remote.js`文件是DWR自动生成的,它包含了后端Service类的方法,以便在JavaScript中直接调用。例如,如果我们在`SessionExpiredParam`类中有一个`setEnableDwrUpdate()`方法,并且已经用`@RemoteMethod`注解,那么在JavaScript中可以这样调用:
```javascript
(function($) {
remote.setEnableDwrUpdate();
})();
```
在这个例子中,`remote`对象代表了后端的`SessionExpiredParam`类,其`setEnableDwrUpdate()`方法就像本地JavaScript函数一样使用。
Dwr3.0的纯注解配置简化了服务暴露的过程,使得前端和后端的交互更加直接。通过正确的配置和JavaScript调用,前端可以无缝地访问后端的Java方法,极大地提高了开发效率。然而,这种紧密的集成也需要注意安全问题,确保只有授权的方法可以被前端调用。在后续的文章中,将会探讨后端如何反向调用前端,进一步扩展DWR的功能。