applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.directwebremoting.org/schema/spring-dwr
http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd"
default-autowire="byName" default-lazy-init="true">
<description>Spring公共配置</description>
<!-- 启用 annotation 配置模式 -->
<context:annotation-config />
<!-- 使用annotation 自动注册bean,并保证@Required,@Autowired的属性被注入 -->
<context:component-scan base-package="com.wpms.user.*" />
<!-- DWR 配置 BEGIN -->
<!-- 启动 DWR 注解配置模式 -->
<dwr:configuration />
<dwr:annotation-config />
<dwr:url-mapping />
<!-- 开启dubug状态 -->
<dwr:controller debug="true" />
<!-- DWR 配置 END-->
</beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- spring config url start-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:config/dwr3/applicationContext.xml
</param-value>
</context-param>
<!-- spring config url end-->
<!-- 著名的 Character Encoding filter -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<!--Hibernate Open Session in View Filter-->
<!-- 假设在你的应用中Hibernate是通过spring 来管理它的session.如果在你的应用中没有使用OpenSessionInViewFilter
或者OpenSessionInViewInterceptor。session会在transaction结束后关闭,此时会抛出session is close 的异常-->
<!-- struts2 start-->
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- struts2 end -->
<!-- 过滤器映射 -->
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- dwr配置 -->
<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>
<!--Spring ApplicationContext 载入 -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<!-- 扩展spring bean的作用域有request,session,global session等-->
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>
<!-- Spring 刷新Introspector防止内存泄露 -->
<listener>
<listener-class>
org.springframework.web.util.IntrospectorCleanupListener
</listener-class>
</listener>
<!-- 开始页面 -->
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<error-page>
<error-code>404</error-code>
<location>/pagenotfound.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error.jsp</location>
</error-page>
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml" />
<package name="default" extends="struts-default">
</package>
</struts>
HTML source:
<head>
<title>DWR Test</title>
<script type='text/javascript' src='http://localhost:8080/wpms/dwr/interface/UserController.js'></script>
<script type='text/javascript' src='http://localhost:8080/wpms/dwr/engine.js'></script>
<script type='text/javascript' src='http://localhost:8080/wpms/dwr/util.js'></script>
</head>
<script type='text/javascript'>
function update() {
var name = dwr.util.getValue("demoName");
UserController.getUserName(name, reply0);
}
var reply0=function(data) {
dwr.util.setValue("forward", data, { escapeHtml:false });
}
</script>
<p>
String:
<input type="text" id="demoName" />
<input value="Send" type="button" onclick="update()" />
<br />
Reply:
<div id="forward"></div>
</p>
UserController.java
import java.io.IOException;
import javax.servlet.ServletException;
import org.directwebremoting.WebContext;
import org.directwebremoting.WebContextFactory;
import org.directwebremoting.annotations.RemoteMethod;
import org.directwebremoting.annotations.RemoteProxy;
import org.springframework.stereotype.Controller;
@Controller
@RemoteProxy
public class UserController {
public String getUserName(String id) throws ServletException, IOException {
System.out.println("id=" + id);
WebContext wctx = WebContextFactory.get();
return wctx.forwardToString("/my/forward.html");
}
}
分享到:
相关推荐
然而,在DWR3中,文档的缺乏使得找到正确的实现方式成为一个挑战。 在DWR3中,你可以使用`Browser.withPageFiltered()`方法来针对特定页面开启线程,这些线程可以用于实时推送消息。这个方法接受三个参数:页面...
3. **前端JavaScript代码**:DWR提供了一个JavaScript库,可以包含在HTML页面中。这个库提供了`DWREngine`对象,用于执行远程调用。JavaScript代码将使用`DWREngine`来调用后端的Java方法,接收返回的数据,并更新...
DWR3是DWR框架的一个版本,它引入了更多的改进和新特性,以适应不断发展的Web开发需求。DWR3主要包含以下关键组件和功能: 1. **自动AJAX**:DWR自动处理JavaScript和Java之间的通信,开发者只需要编写简单的...
Direct Web Remoting (DWR) 是一个开源Java库,它允许JavaScript在Web浏览器中与Java服务器进行通信,实现Ajax功能。DWR简化了在客户端和服务器之间传递数据和调用方法的过程,使得开发者无需手动处理复杂的JSON或...
通过以上步骤,我们可以利用DWR3构建一个实时消息推送系统,使得页面间的消息传递变得高效且实时。需要注意的是,虽然DWR3已经是一个较老的框架,但其核心思想——Web上的远程调用和实时推送,仍然是现代Web开发中的...
Direct Web Remoting (DWR) 是一个开源Java库,它允许Web应用程序在浏览器和服务器之间进行安全、简单、异步的通信。DWR的核心功能是将JavaScript与Java方法直接绑定,使得前端开发者能够调用服务器端的方法,就像...
而Spring框架则是一个全面的企业级应用开发框架,提供了依赖注入、面向切面编程等特性。本篇文章将详细介绍如何结合Dwr3和Spring3,利用全注解的方式进行集成与配置。 首先,我们需要理解Dwr3的基本概念。DWR3是DWR...
在这个"DWR3消息推送(聊天Demo)"项目中,开发者提供了一个使用DWR3实现的简单聊天应用,让我们来详细了解一下这个示例中的关键知识点。 首先,我们要理解DWR3的核心特性。DWR3是DWR(Direct Web Remoting)的第三个...
**DWR (Direct Web Remoting) 是一个开源的Java库,它允许JavaScript在客户端与服务器端之间进行直接的异步通信,从而实现AJAX(Asynchronous JavaScript and XML)应用程序的功能。DWR使得开发者无需手动编写复杂的...
DWR3.x是DWR的一个版本,提供了许多增强的功能和改进,使得开发人员能够更方便地构建动态、交互式的Web应用。 在这个"Dwr3.x demo 实例 例子"中,我们可以学习到以下几个关键知识点: 1. **反转Ajax**:DWR的核心...
Direct Web Remoting (DWR) 是一个开源Java库,它允许JavaScript在Web浏览器中与Java服务器端进行交互,实现AJAX功能。这个压缩包包含了DWR的三个主要版本:DWR1.0、DWR2.0和DWR3.0的jar包,这些jar包是运行DWR应用...
DWR (Direct Web Remoting) 是一个开源的Java库,它允许JavaScript在浏览器端与服务器端的Java对象进行交互,从而实现AJAX(Asynchronous JavaScript and XML)应用。在DWR 3版本中,它提供了丰富的API和工具,使得...
首先,DWR3 提供了一个安全、高效的机制,使得开发者可以方便地在浏览器端调用服务器端的Java对象和方法,仿佛它们是本地JavaScript函数。这一特性极大地增强了Web应用的交互性和用户体验。 在项目中,`web.xml`是...
DWR3的主要功能和特点包括: 1. **实时Web应用**:DWR允许JavaScript直接调用Java方法,就像它们是本地函数一样,这使得Web应用能像桌面应用一样实时更新。 2. **安全和性能**:DWR提供了安全机制,如CSRF保护,并...
在本项目中,我们看到的"**dwr3实现的无刷新文件上传**"是一个简单的示例,旨在展示如何使用DWR3来实现在不刷新整个页面的情况下上传文件。这对于提升用户体验非常关键,因为它使得用户能够在不离开当前页面的情况下...
DWR (Direct Web Remoting) 是一个开源的Java库,它允许JavaScript在浏览器端与服务器端的Java对象进行直接交互,实现动态Web应用。通过DWR,开发者可以在不刷新整个页面的情况下更新部分网页内容,提高了用户体验。...
在这个“dwr3ReverseAjax示例”中,我们将深入探讨如何利用DWR 3.x版本来构建一个基于Ajax的简单Web聊天应用。 首先,DWR的核心功能是通过HTTP协议实现在客户端JavaScript和服务器端Java之间的远程方法调用(Remote...
Direct Web Remoting (DWR) 是一个开源的Java库,它允许JavaScript在浏览器端与服务器端的Java代码进行交互,从而实现动态Web应用。在DWR3中,"推送消息"功能是其特性之一,它使得服务器能够主动向客户端推送数据,...
例如,如果有一个名为`UserService`的服务,里面有一个返回`List`的方法`getUserList()`,那么在`dwr.xml`中会有如下配置: ```xml ``` 然后,在`UserService`类中,我们需要实现`getUserList()`方法,...