SSH+DWR整合,有图片,有实例,有说明,非常详细
【SSH+DWR 整合详解】 SSH (Struts + Spring + Hibernate) 是一个流行的Java Web开发框架,它集成了MVC(Model-View-Controller)模式、依赖注入和持久层管理,为开发者提供了强大的后端支持。DWR (Direct Web Remoting) 是一个JavaScript库,用于在Web浏览器和服务器之间进行实时的、异步的数据交换,从而实现Ajax功能,提升用户体验。 整合SSH和DWR的主要目的是利用SSH的强大后端功能与DWR的前端交互能力,使得Web应用能够提供更流畅、无需刷新页面的用户交互体验。 **SSH整合DWR的步骤:** 1. **配置DWR:** 你需要在项目的WEB-INF目录下添加dwr.jar,并在web.xml中配置DWR的Servlet和过滤器,以启用DWR服务。 2. **创建DWR接口:** 在服务器端创建Java类,定义需要在客户端调用的方法。这些方法通常处理业务逻辑,并且需要通过DWR允许的注解(如`@RemoteProxy`)进行标记。 3. **映射DWR接口:** 在DWR的配置文件(通常为dwr.xml)中,指定刚刚创建的Java类及其可暴露的方法,以便DWR知道哪些方法可以在客户端调用。 4. **配置Spring:** 如果你的项目已经使用了Spring框架,你需要将DWR的配置整合到Spring的配置文件中,例如通过`<bean>`标签创建DWR的相关bean。 5. **生成JavaScript接口:** DWR会自动生成JavaScript库,使得客户端可以直接调用服务器端的方法。这通常发生在DWR初始化时,生成的JavaScript代码会被自动包含在HTML页面中。 6. **在客户端使用DWR:** 在HTML或JavaScript代码中,你可以像调用本地函数一样调用服务器端的方法,DWR会自动处理与服务器的通信,包括数据序列化、请求发送和响应接收。 **示例:SSH+DWR整合用户验证** 以下是一个简单的SSH+DWR整合示例,用于验证用户名是否已被占用: 1. **服务器端:** 创建一个名为`UserService`的类,其中有一个方法`checkUsernameAvailability`,该方法接受一个用户名参数并返回一个布尔值,表示用户名是否可用。 ```java @RemoteProxy public class UserService { public boolean checkUsernameAvailability(String username) { // 实现查询数据库判断用户名是否已存在 return !isUserNameExist(username); } } ``` 在dwr.xml中配置UserService: ```xml <allow> <create creator="new" javascript="UserService"> <param name="class" value="com.example.UserService"/> </create> </allow> ``` 2. **客户端:** 在HTML页面中,使用DWR生成的JavaScript接口调用`UserService.checkUsernameAvailability`,并在接收到服务器响应后更新界面。 ```html <script type="text/javascript" src="/dwr/interface/UserService.js"></script> ... <script type="text/javascript"> function checkUsername() { UserService.checkUsernameAvailability(document.getElementById('username').value, function(isAvailable) { var resultElement = document.getElementById('result'); if (isAvailable) { resultElement.innerHTML = '用户名可用'; } else { resultElement.innerHTML = '用户名已被占用'; } }); } </script> ... <form onsubmit="return validateForm()"> <input type="text" id="username" name="username" onblur="checkUsername()" /> <span id="result"></span> <input type="submit" value="提交" /> </form> ``` 在这个例子中,当用户在用户名字段失去焦点时,`checkUsername`函数会被调用,DWR会异步地调用服务器端的`UserService.checkUsernameAvailability`方法,然后更新结果显示。 通过这种方式,SSH+DWR整合使得用户在输入用户名时就能立即得到反馈,而无需等待页面刷新,极大地提高了用户体验。同时,SSH框架提供了强大的后端支持,确保了业务逻辑的高效执行和事务管理。
剩余6页未读,继续阅读
- qiuqiu01152013-03-22对于初学者学习不错,例子较简单!
- 粉丝: 0
- 资源: 9
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助