一、uk.ltd.getahead.dwr.DWRServlet,使用dwr.xml文件
(1)、web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>dwr</servlet-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<init-param>
<param-name>config-admin</param-name>
<param-value>WEB-INF/classes/dwr.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
</web-app>
(2)、applicationContext.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd"
default-autowire="byName">
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName"
value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/springapp" />
<property name="username" value="root" />
<property name="password" value="root" />
</bean>
<bean id = "transactionManager"
class = "org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name = "dataSource" ref="dataSource"/>
</bean>
<bean id = "jdbcTemplate"
class = "org.springframework.jdbc.core.JdbcTemplate">
<property name = "dataSource" ref="dataSource"/>
</bean>
<bean id="baseTransactionProxy" lazy-init="true" abstract="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<props>
<prop key="delete*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="update*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="save*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="is*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
<bean id="userService" parent="baseTransactionProxy">
<property name="target">
<bean class="com.logcd.service.impl.UserService"/>
</property>
</bean>
</beans>
(3)、dwr.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
"http://getahead.org/dwr//dwr20.dtd">
<dwr>
<allow>
<create creator="spring" javascript="dwrUser" scope="application">
<param name="beanName" value="userService"/>
<include method="findUserCount"/>
</create>
</allow>
</dwr>
(4)、接口和实现
public interface IUserService {
public int findUserCount();
}
import org.springframework.jdbc.core.JdbcTemplate;
import com.logcd.service.IUserService;
public class UserService implements IUserService{
private JdbcTemplate jdbcTemplate;
public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public int findUserCount(){
return getJdbcTemplate().queryForInt(" SELECT COUNT(*) FROM LOG_USER ");
}
}
(5)、测试页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>DWR Test</title>
<script type='text/javascript' src='dwr/interface/dwrUser.js'></script>
<script type='text/javascript' src='dwr/engine.js'></script>
<script type='text/javascript' src='dwr/util.js'></script>
<script language="javascript">
function showTotal(){
dwrUser.findUserCount(function(data){
DWRUtil.setValue("userCnt",data);
});
}
function clearInput(){
userCnt.value="";
}
</script>
</head>
<body>
<input type="button" value="显示总人数" onclick="showTotal();">
<input type="button" value="清空" onclick="clearInput()"><br>
<input type="text" id="userCnt"><br>
</body>
</html>
二、org.directwebremoting.spring.DwrSpringServlet,去掉dwr.xml
(1)web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >
......
<servlet>
<servlet-name>dwr</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</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
</web-app>
(2)applicationContext.xml。要在名称空间中增加xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.directwebremoting.org/schema/spring-dwr http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd"
default-autowire="byName">
......
<bean id="userService" parent="baseTransactionProxy">
<property name="target">
<bean class="com.logcd.service.impl.UserService"/>
</property>
</bean>
<bean id="dwrUser" class="com.logcd.ajax.DWRUser">
<dwr:remote javascript="dwrUser">
<dwr:include method ="findUserCount"/>
</dwr:remote>
</bean>
</beans>
(3)、注入Service的Java Bean。
import com.logcd.service.IUserService;
public class DWRUser {
private IUserService userService;
public IUserService getUserService() {
return userService;
}
public void setUserService(IUserService userService) {
this.userService = userService;
}
public int findUserCount(){
return this.getUserService().findUserCount();
}
}
测试页面与前面的index.jsp相同。
疑问:
如果不写dwr.xml文件,要写一个AJAX操作类(如上面的DWRUser)。这样还没有直接用dwr.xml方便!初次接触,不大了解这玩意儿。要是可以直接下面这样写就好了。
<bean id="userService" parent="baseTransactionProxy">
<property name="target">
<bean class="com.logcd.service.impl.UserService"/>
</property>
<dwr:remote javascript="dwrUserService"/>
</bean>
分享到:
相关推荐
- **Spring集成示例**:说明如何配置DWR与Spring的集成,以及如何在JavaScript中调用Spring的Bean。 通过理解并实践这些示例,开发者可以更好地掌握DWR的使用,并将其应用于实际的Web应用中,实现高效、便捷的前后...
博文链接提供的 `https://json20080301.iteye.com/blog/1892385` 可能是一个关于DWR与Spring集成的教程或经验分享,可以进一步深入学习。 总之,DWR与Spring的集成是提升Web应用交互体验的有效手段,通过合理的...
### dwr与spring集成的方式 #### 一、引言 DWR(Direct Web Remoting)是一种简化Ajax开发的Java框架,允许在客户端直接调用服务器端的Java方法,从而简化了传统的JavaScript编程复杂度。Spring作为一款流行的企业...
1. **配置DWR Spring集成**:在Spring配置文件中定义DWR相关的bean,如`DWRConfig`和`SpringContextUtil`,以便让DWR能够访问Spring的bean。 2. **Spring托管的Java类暴露给JavaScript**:通过Spring的`@Service`或...
**Spring与DWR集成** Spring框架是Java领域中极为重要的轻量级应用框架,它提供了丰富的功能,包括依赖注入、AOP(面向切面编程)、事务管理等,用于简化企业级应用开发。Direct Web Remoting (DWR) 是一个开源...
在Spring MVC框架中集成DWR,可以进一步提升用户体验,因为Spring MVC专注于处理控制器逻辑,而DWR则负责客户端与服务器之间的通信。 集成DWR到Spring MVC的过程主要包括以下几个步骤: 1. **引入依赖**:首先,你...
将DWR与Spring集成,可以充分利用Spring的管理能力,简化DWR的配置和增强应用的可维护性。 ### 集成步骤 1. **引入依赖** 在项目的`pom.xml`文件中添加DWR和Spring的依赖。确保版本兼容,通常选择最新稳定版本。 ...
通过上述步骤,我们可以实现DWR与Spring的无缝集成,使得前端能够便捷地调用后端的业务逻辑,提高应用的交互性和响应速度。同时,Spring的管理功能可以帮助我们更好地组织和维护代码,提升项目的可维护性。
在IT领域,Spring框架和Direct Web Remoting (DWR)是两种重要的技术,它们在构建分布式Web应用程序中发挥着关键作用。本篇文章将详细讲解如何利用Spring与DWR结合,实现一个基本的功能:判断用户名是否已经存在于...
#### 三、DWR 2的Spring集成步骤 在了解了Spring 2的基本配置之后,接下来我们将详细介绍如何在Spring 2中集成DWR 2。 1. **添加DWR依赖**:首先,确保项目中包含了DWR的依赖库。通常可以通过Maven或Gradle来添加...
2. **Spring集成**: 要将DWR与Spring整合,我们通常会使用Spring的`DwrController`或者自定义一个Spring MVC控制器来处理DWR请求。此外,我们还需要在Spring的配置文件中声明DWR的相关bean,如`DwrConfig`,并将其...
DWR2.0可以与Spring MVC无缝集成,通过Spring的DispatcherServlet处理DWR请求,实现前后端的交互。 6. **单元测试**:Spring框架提供了强大的单元测试支持,包括模拟对象(Mock Objects)和测试工具。整合DWR后,...
通过以上介绍,我们可以看到"Dwr与spring集成,spring jdbc 数据库集成,spring注入例子"是如何将DWR的实时交互能力与Spring的数据库访问和依赖注入功能结合在一起,形成一个高效、易维护的Web应用开发模式。...
在本文中,我们将深入探讨Spring与DWR集成的原理、配置过程以及实际应用。 首先,DWR是一个Java EE框架,它使得JavaScript能够与服务器进行异步交互,仿佛在本地执行函数一样。DWR的核心机制是通过Servlet监听特定...
将DWR与Spring结合,可以创建出高效且易于维护的消息推送系统。首先,我们需要在Spring配置中声明DWR的相关bean,包括`DWRConfiguration`、`CatalinaReverseAjaxServlet`以及应用中定义的远程服务接口。这些配置通常...
将DWR与Spring集成,可以方便地实现富客户端应用,提高用户体验。 在这个"Dwr和Spring集成简单例子"中,我们将探讨如何将这两个强大的工具结合在一起,以便在Web应用中创建动态、交互性强的用户界面。 首先,我们...
总结来说,"dwr+springJdbc例子"展示了如何利用DWR实现实时的前后端交互,Spring提供依赖注入和数据访问抽象,而JDBC则负责与数据库的底层通信。这样的组合使得开发高效、灵活且易于维护的Web应用成为可能。理解并...
下面将详细介绍如何通过注解实现DWR和Spring的集成以及相关知识点: 1. **Spring注解配置**: - `@Configuration`:标记一个类为Spring配置类,可替代传统的XML配置。 - `@ComponentScan`:用于扫描指定包下的...