为什么非要利用Spring来整合DWR呢?
个人见解:
在一个项目中,尤其是利用SSH(Struts+Hibernate+Spring)整合开发的时候通常是利用Spring来进行管理的,因此即使在使用AJAX技术的项目中仍希望由Spring来进行整体的管理整合工作,这样的统一管理思想很喜欢。
dwr的设计构思很是巧妙。
第一、把java类转化为javascript类由dwr自动完成,只需简单的配置。
第二、应用起来极其简单。开发者不要该服务器代码就可以集成。
第三、容易测试。和webwork一样,隐藏的http协议。
第四、及强扩展性。例如与spring集成,只需修改一点代码。
第五、性能。就我与jason,等简单比较,dwr性能可能是最好的。
第六、自动把java对象转化为javascript对象,并且及易扩展。
下面介绍Spring整合DWR的步骤:
步骤一:
下载Spring2.x(http://www.springframework.org)以及DWR2.0(http://getahead.org/dwr),然后将jar包导入到现有的工程下(/WEB-INF/lib/)。(因为DWR2.0中包含DwrSpringServlet类)
步骤二:
修改web.xml文件:
<!-- DWR servlet 配置 -->
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>
org.directwebremoting.spring.DwrSpringServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
<!-- 设置Spring监听器 -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
这样配置可能会存在问题(主要取决与你IDE环境设置),因为侦听器会在/WEB-INF/下寻找applicationContext.xml文件,所以需要一点点小小的改动:
假设我的applicationContext.xml文件放在/src/com/下面,我们需要在web.xml文件中添加下面的语句进行说明。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/com/applicationContext.xml</param-value>
</context-param>
说明:
org.directwebremoting.spring.DwrSpringServlet这个类是dwr专门为整合spring提供的一个servlet,加入这个之后,dwr的配置就可以写入到spring的配置文件applicationContext.xml中,省掉了dwr.xml
这样就ok了。我们继续。
步骤三:
编写java类(用于通过AJAX实现的功能)。例如:验证码的实现(我的Blog验证码java实现的日志中有相关代码,请参考)。
步骤四:
配置applicationContext.xml文件
因为我门要在Spring配置文件中使用DWR的标签,所以要引入DWR标签的定义。
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.directwebremoting.org/schema/spring-dwr http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd">
<!-- DWR 配置开始 -->
<dwr:configuration></dwr:configuration><!-- 必须要configuration -->
<dwr:controller id="dwrController" debug="true" />
<!-- DWR 配置结束 -->
<!-- spring bean配置 -->
<bean id="userService" class="test.bcndyl.service.impl.UserServiceImpl">
</bean>
<bean id="myCode" class="dwr.MyCode">
<!-- 定义调用的js文件 -->
<dwr:remote javascript="myCode"></dwr:remote>
</bean>
<!-- end spring bean配置 -->
</beans>
在这里本人遇到过这样的问题:
如果这样写:
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.directwebremoting.org/schema/spring-dwr http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd"
在<dwr:configuration></dwr:configuration>和<dwr:remote javascript="myCode"></dwr:remote> 处会有错误的提示。将
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd 改为
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd,错误就消失了 。
步骤五:
在需要AJAX的JSP页面中添加AJAX相关:
dwr/engine.js、dwr/util.js、dwr/interface/myCode.js
接下来的编码工作不用我说了!
DWR大大简化了AJAX的编码,很实用的东西啊!
分享到:
相关推荐
spring整合DWR的一些配置问题,如下: 1、web.xml中加入dwr配置 2、由spring接管dwr,配置spring的xml文件 3、配置dwr的service 4、配置页面
网络上Spring整合DWR comet 实现无刷新、多人聊天室 的代码整理,包含jar包,eclipse工程,直接导入即可运行。
使用spring 整合dwr的反推技术,可以运用于在线聊天的实现。
dwr与 spring整合 传对象的例子
spring使用annotation整合dwr笔记 spring使用annotation整合dwr笔记 spring使用annotation整合dwr笔记
此实例作为Spring整合dwr基础入门实例,是菜鸟开始的必备资料!
这是一个SPRING+DWR的整合项目.包括整合的三种方式,最彻底的整合是不需要配置DWRSERVLET+dwr.xml文件.使用annonation实现. 希望对你有用. 一起学习,一起进步...
源码 博文链接:https://callan.iteye.com/blog/166986
精心整理的,dwr与目前流行框架spring和struts2的整合,值得一学
使用dwr+spring实现消息推送 。
Spring+Dwr+Hibernate整合项目,包括所需要的包和数据库
Spring与dwr的整合 环境是Myeclipse7.5 希望对大家有用!!!!
spring-dwr-2.0.xsd spring 与 DWR进行配置
这是一个简单的由DWR调用Spring Bean的简单例子
dwr2.0 spring 3.0 整合示例
struts2+hibernate+spring+dwr(用户注册)struts2+hibernate+spring+dwr(用户注册)
struts2 spring ibatis dwr整合配置 自己整合的,很好用
spring+dwr实现用户名是否存在的判断
springMVC整合dwr完整例子,能让你快速掌握springMVC框架和DWR是如何工作
使用struts2、hibernate、spring、dwr整合的简单项目。包括级联等 注意:csdn上面显示为chm文件。该文件为.7z的压缩文件。用压缩软件可以打开的 csdn弄错了