dwr学习 之 一、dwr+spring的简单集成
转自:http://limingnihao.iteye.com/blog/1074187
1. 环境搭建
我采用的环境为SpringMVC + myBatis + mySql + maven;
关于使用Eclipse构建Maven的SpringMVC项目,请参考: http://limingnihao.iteye.com/blog/830409.
关于mybatis,请参考:http://limingnihao.iteye.com/blog/781671
1.1 web.xml
在配置好SpringMVC的环境之下,需要在web.xml中给Spring的dispatcher在添加一个dwr的servlet-mapping。
Xml代码
1.<!-- spring -->
2.<servlet>
3. <servlet-name>springDispatcher</servlet-name>
4. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
5. <init-param>
6. <param-name>contextConfigLocation</param-name>
7. <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
8. </init-param>
9. <load-on-startup>1</load-on-startup>
10.</servlet>
11.<servlet-mapping>
12. <servlet-name>springDispatcher</servlet-name>
13. <url-pattern>*.do</url-pattern>
14.</servlet-mapping>
15.
16.<!-- dwr设置 -->
17.<servlet-mapping>
18. <servlet-name>springDispatcher</servlet-name>
19. <url-pattern>/dwr/*</url-pattern>
20.</servlet-mapping>
1.2 Spring配置文件
添加dwr的namespace、dwr的controller、注解扫描等标签。给出配置文件全部内容如下:
Xml代码
1.<?xml version="1.0" encoding="UTF-8"?>
2.<beans xmlns="http://www.springframework.org/schema/beans"
3. xmlns:aop="http://www.springframework.org/schema/aop"
4. xmlns:context="http://www.springframework.org/schema/context"
5. xmlns:mvc="http://www.springframework.org/schema/mvc"
6. xmlns:tx="http://www.springframework.org/schema/tx"
7. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
8. xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
9. xsi:schemaLocation="http://www.springframework.org/schema/aop
10. http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
11. http://www.springframework.org/schema/beans
12. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
13. http://www.springframework.org/schema/context
14. http://www.springframework.org/schema/context/spring-context-3.0.xsd
15. http://www.springframework.org/schema/mvc
16. http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
17. http://www.springframework.org/schema/tx
18. http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
19. http://www.directwebremoting.org/schema/spring-dwr
20. http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd">
21.
22.
23. <aop:aspectj-autoproxy />
24. <mvc:annotation-driven />
25. <context:component-scan base-package="liming.student.manager" />
26.
27. <!-- 导入属性配置文件 -->
28. <context:property-placeholder location="classpath:mysql.properties" />
29.
30. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
31. <property name="prefix" value="/WEB-INF/views/" />
32. <property name="suffix" value=".jsp" />
33. </bean>
34.
35. <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
36. <property name="driverClassName" value="${jdbc.driverClassName}" />
37. <property name="url" value="${jdbc.url}" />
38. <property name="username" value="${username}" />
39. <property name="password" value="${password}" />
40. </bean>
41.
42. <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
43. <property name="dataSource" ref="dataSource" />
44. </bean>
45.
46. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
47. <property name="configLocation" value="classpath:mybatis-config.xml" />
48. <property name="dataSource" ref="dataSource" />
49. </bean>
50.
51. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
52. <property name="annotationClass" value="org.springframework.stereotype.Repository" />
53. <property name="basePackage" value="liming.student.manager" />
54. <property name="sqlSessionFactory" ref="sqlSessionFactory" />
55. </bean>
56.
57. <!-- DWR配置 -->
58. <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
59. <property name="order" value="1" />
60. </bean>
61. <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
62. <property name="order" value="2" />
63. </bean>
64. <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
65. <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
66. <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
67. <property name="order" value="3" />
68. <property value="true" name="alwaysUseFullPath"></property>
69. <property name="mappings">
70. <props>
71. <prop key="/dwr/**">dwrController</prop>
72. </props>
73. </property>
74. </bean>
75.
76. <dwr:controller id="dwrController" debug="true">
77. <dwr:config-param name="allowScriptTagRemoting" value="true" />
78. <dwr:config-param name="crossDomainSessionSecurity" value="false" />
79. </dwr:controller>
80. <dwr:configuration></dwr:configuration>
81. <dwr:annotation-config />
82. <dwr:annotation-scan scanRemoteProxy="true" scanDataTransferObject="true" base-package="liming.student.manager" />
83.
84.</beans>
2. 配置文件解说
2.1 controller
添加dwr的dwr:controller标签,debug为true时,可以访问/dwr/index.html的测试页面。还可以可以设置一些参数的值:
Xml代码
1.<dwr:controller id="dwrController" debug="true">
2. <dwr:config-param name="allowScriptTagRemoting" value="true" />
3. <dwr:config-param name="crossDomainSessionSecurity" value="false" />
4.</dwr:controller>
controller常用配置:
参数名称
默认值
说明
jsonpEnabled
false
Set to true to enable DWR's JSONP remoting.
allowGetForSafariButMakeForgeryEasier
false
Set to true to make DWR work in Safari 1.x (where a bug drops the bodies from POST requests). POST requests are slightly harder to forge, so enabling this reduces security slightly.
crossDomainSessionSecurity
true
Set to false to enable requests from other domains. Note that enabling this can be a significant security risk. See the Wikipedia notes on CSRF for more. Do not set this to false without understanding the consequences.
allowScriptTagRemoting
true
Set to true to enable Script Tag remoting. Note that enabling this can be a significant security risk. See the Wikipedia notes on CSRF for more. Do not set this to false without understanding the consequences. There are some cases where you will need to enable Script Tag remoting, but want to leave crossDomainSessionSecurity in place - particularly when you have an http based web page, and an https based DWR service.
debug
false
Set to true to enable the debug/test pages.
scriptSessionTimeout
1800000 (30 mins)
How quickly do scriptSessions timeout?
maxCallCount
20
What is the maximum number of calls that can be done in a single batch. (Helps prevent DoS attacks).
2.2 url-mapping
在Springmvc中,每个url都需要一个controller的映射器(RequestMapping),需要使用<dwr:url-mapping />标签进行声明,这样才可以访问/engine.js, /interface.js, /call/**, /interface/**路径。但是带来的不管是测试页(/dwe/index.html)将不能访问。解决办法是,声明一个SimpleUrlHandlerMapping的bean指定dwr的请求路径:
Xml代码
1.<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
2. <property name="order" value="3" />
3. <property value="true" name="alwaysUseFullPath"></property>
4. <property name="mappings">
5. <props>
6. <prop key="/dwr/**">dwrController</prop>
7. </props>
8. </property>
9.</bean>
2.3 configuration
<dwr:configuration/> 标签用于模仿在 dwr.xml 中可用的配置的行为。主要是声明实体类转换。例如:
Xml代码
1.<dwr:configuration>
2. <dwr:convert type="bean" class="liming.student.manager.data.model.PlaceEntity"></dwr:convert>
3.</dwr:configuration>
2.4 remote
dwr:remote用于声明可以进行js调用的java bean:
Xml代码
1.<bean class="liming.student.manager.web.dwr.DWRDemo">
2. <dwr:remote javascript="DWRDemo">
3. <dwr:include method="getPlaceBaseAllList"/>
4. </dwr:remote>
5.</bean>
2.5 annotation-config、annatation-scan
当使用注解声明bean和实体类转换时,需要声明dwr:annotation-config、annotation-scan。
@ RemoteProxy:注解定义为远程调用的类,可指定name,js调用的名称。
@ RemoteMethod:可远程调用的方法。
@DataTransferObject:实体类转换器。
annotation-config:启用DWR 扫描,在类路径中检测 @ RemoteProxy 与@ RemoteMethod注解的类。
annotation-scan:定义一些注解扫描的参数:
base-package:指定的扫描的包;
regex:将扫描仪类路径中使用正则表达式;
scanRemoteProxy:DWR 是否扫描远程代理类?默认值为 true。
scanDataTransferObject:DWR 是否扫描转换器?默认值为 true。
scanGlobalFilter-默认值为 true。
Xml代码
1.<dwr:annotation-config />
2.<dwr:annotation-scan scanRemoteProxy="true" scanDataTransferObject="true" base-package="liming.student.manager" />
发表评论
-
[转载]WebUtils
2013-03-19 21:20 831http://blog.sina.com.cn/s/blog_ ... -
dwr学习之 二、dwr功能演示
2013-02-25 09:15 891文中代码均已简化。 1. hello world ... -
配置整合DWR3.0和Spring2.5使用annotation注解
2013-02-25 09:11 968这里使用 DWR3.rc1, Spring2.5 and Sp ... -
Spring3.0的任务调度<转>
2013-02-23 12:34 993Spring Security 3.0系列开发出来的时间并不长 ... -
spring集成log4j .
2013-02-20 10:16 10721、 log4j.properties文件 1)文件位置:在 ... -
在servlet中注入spring容器中的bean(转)
2013-01-29 14:49 1147在servlet中注入spring容器中的bean 在使用s ... -
控制台WARN No appenders could be found for logger
2013-01-17 15:36 1147错误:tomcat里的shutdown.bat无法关闭启动的d ...
相关推荐
dwr+spring集成配置 dwr采用annotation自动扫描的方式
dwr+hibernate+spring 集成 实例 dwr+hibernate+spring 集成 实例
完整的struts1.2+hibernate3.2+spring2.5框架集成 完整的dwr2.0+spring2.5集成 处理的dwr2.0+hibernate3.2集成的问题
struts+hibernate+spring+dwr集成开发文档pdf
DWR示例 包括DWR基本配置 DWR传递对象 DWR 反转ajax DWR与spring集成
介绍srping与dwr的集成:系统介绍dwr在spring中的相关配置。
Struts1.3+Spring3.0+Hibernate3.3+DWR2.X框架集成文档v1.4.pdf 包括事务处理配置,个人整理,仅供学习,请务拍砖。呵呵~~
dwr与spring集成的两种方式,来之网上搜索的文档。。
NULL 博文链接:https://tianhengbao.iteye.com/blog/567580
将dwr集成到spring mvc(dwr的配置是基于xml)
dwr和spring集成简单例子!
Spring 集成 Dwr 文件上传和文件下载
Spring+Struts+Hibernate+DWR集成教程.rar saivicky出品!必属精品!
NULL 博文链接:https://json20080301.iteye.com/blog/1892385
Spring_IoC集成原理的应用设计.pdf Sturts2与以其它Web应用框架整合的研究.pdf 图书缺藏网站解决方案.pdf 基于Ajax技术即时通讯系统的设计与实现.pdf 基于Ajax技术的实时数据监测系统的研究与应用.pdf 基于DWR与JST...
Spring与DWR集成开发,DWR相当方便的使用,spring与当外人联合使用越来越多,初学教程
dwr和spring的整合做下整理,以及对网页版的聊天功能做了一个简单的Demo,用了注解的方式,使用dwr框架来把Java代码,通过Javascript方式调用。功能虽不全,但集成是从网络上获取的,加以修改。希望对网友有用。
dwr与spring集成,spring jdbc 数据库集成,spring注入例子
该资源包名为“基于JSP的OA办公自动化管理系统”,它集成了当前主流的Java开发框架,包括Struts1.2、Hibernate3.0、Spring2以及DWR。整个系统以JSP作为前端展示技术,利用Struts1.2进行MVC架构的实现,使得模型、...