近日闲来无聊,研究DWR,配置了半天终于搞定,遇到的问题记录一下,呵呵
开发环境:NetBeans6.5/Jdk1.6.10/Tomcat5.5.27/Dwr2.0.5
我的web.xml文件配置如下:
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<!--crossDomainSessionSecurity:设置成false能够从其他域进行请求-->
<init-param>
<param-name>crossDomainSessionSecurity</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>allowScriptTagRemoting</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
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="new" javascript="dwrService">
<param name="class" value="com.ffms.system.web.DWRService"/>
</create>
</allow>
</dwr>
页面部分代码如下:
<script type='text/javascript' src='/FFMS/dwr/interface/dwrService.js'></script>
//输入到方法中 参数 格式转换
function objectEval(text){
text = text.replace(/\n/g, ' ');
text = text.replace(/\r/g, ' ');
if (text.match(/^\s*\{.*\}\s*$/))
{
text = '[' + text + '][0]';
}
return eval(text);
}
//本例 alert 展现
var reply = function(data){
alert("ssss");
alert(dwr.util.toDescriptiveString(data, 2));
}
<html:password styleId="newPwd" property="newPwd" name="SmOperMngForm" maxlength="6" onchange="dwrService.checkPassword(objectEval($('newPwd').value), reply);"/>
java类源码如下:
package com.ffms.system.web;
/**
* 采用dwr框架进行动态ajax验证
* @author MalColm Mao
*/
public class DWRService {
public String checkPassword(String pwd){
System.out.println("pssswork is ok:" + pwd);
return "dwr success";
}
}
主要遇到两个问题:
(1)A request has been denied as a potential CSRF attack
解决该问题在web.xml中如上述设置crossDomainSessionSecurity为false即可
(2)allowScriptTagRemoting is false
解决该问题在web.xml中如上述设置allowScriptTagRemoting为true即可
分享到:
相关推荐
### DWR配置详解 DWR(Direct Web Remoting)是一种开放源码的JavaScript库与Java服务器端技术结合的解决方案,它允许网页上的JavaScript调用Java方法,并能够将这些调用的结果回传到客户端。这种机制简化了Ajax...
2. 创建DWR配置文件(通常为dwr.xml):在这个文件中,定义哪些Java类和方法可以被JavaScript调用。 3. 配置Servlet容器:在Web应用的web.xml文件中,配置DWR的Servlet,以便它能在服务器端处理请求。 4. 在...
4. **错误处理**:DWR提供了丰富的错误处理机制,包括JavaScript端的错误提示和服务器端的日志记录。 5. **版本控制**:DWR通过版本号管理JavaScript接口,当后端API有变化时,可以通过更改版本号强制客户端刷新,...
在这个压缩包中,包含了DWR框架运行所需的一些关键组件和配置文件。 1. **dwr2.0.jar**:这是DWR的核心库文件,包含了所有用于处理客户端请求、反序列化数据、调用服务器端方法等功能的类。DWR 2.0版本提供了一些...
这个压缩包包含了使用DWR所需的关键组件和配置文件,以及相关的文档资料。 首先,`dwr.jar` 是DWR的核心库,包含了所有必要的类和接口,用于在客户端JavaScript和服务器端Java之间建立通信。这个JAR文件应该被添加...
2. **XML解析错误**:通常与DWR配置文件中的XML语法有关,需要仔细检查XML文件格式。 3. **使用weblogic的类路径问题**:确保DWR库文件正确添加到了WebLogic服务器的类路径中。 4. **没有cookies的情况下使用DWR**:...
通过`<errorHandler>`标签,你可以自定义DWR遇到错误时的行为,比如返回错误信息,或者记录日志。 6. **预加载和缓存:** DWR支持预加载Java对象和方法定义,提高页面加载速度。`<preload>`和`<cache>`标签可以...
- `.classpath`:这是Eclipse项目的一个配置文件,记录了项目的类路径信息,包括JRE系统库、项目依赖库等。 - `.eos`、`.project`、`eosbuild.properties`、`system.sdvx`:这些可能是特定构建工具或项目配置文件...
6. **调试与日志**:DWR提供了详细的日志记录功能,这对于调试和问题排查非常有用。你可以根据需求调整日志级别,以便在开发过程中获取必要的信息。 在实现DWR的过程中,可能会遇到一些常见问题,例如JavaScript...
4. **DWR配置**: - `dwr.xml`:虽然可以使用注解减少XML配置,但DWR仍然需要一个基本的XML配置文件,用于设置全局参数和拦截器。 - 在`dwr.xml`中,可以使用`<convert>`标签配置转换器,将Java对象转换为...
2. **DWR配置** 在使用DWR之前,我们需要在服务器端进行配置。这通常涉及创建`dwr.xml`配置文件,其中定义了哪些Java类和方法可以被JavaScript访问。在这个聊天应用中,我们可能需要配置一个Java类,该类包含处理...
同时,通过日志配置,可以记录DWR的运行信息,帮助排查问题。 通过"TestDWR"这个例子,你可以学习如何设置DWR的基本环境,编写可远程调用的Java类,以及在前端使用DWR提供的JavaScript API进行交互。这是一个很好的...
- **安全性**:确保DWR配置中只暴露必要的方法,避免敏感信息泄露,同时可以设置过滤机制防止跨站脚本攻击(XSS)。 8. **示例代码** - `PageBean.java`: 包含分页所需的方法,如`getTotalRecords()`和`...
- **调试与日志**:DWR提供了调试工具和日志记录功能,帮助开发者在开发过程中定位问题。 - **错误处理**:了解如何处理客户端和服务器端的错误,确保在异常情况下能够提供良好的用户体验。 - **性能优化**:学习...
2. **Spring托管的Java类暴露给JavaScript**:通过Spring的`@Service`或`@Component`注解标记Java类,然后在DWR配置中声明这些类,使它们可被JavaScript调用。 3. **依赖注入**:DWR中的Java对象可以直接利用Spring...
1. **DWR配置**:首先需要在服务器端配置DWR的`dwr.xml`文件,声明可供JavaScript调用的Java类和方法。这包括设置安全策略、白名单等,确保只有预期的Java对象和方法可以被访问。 2. **Java后端**:创建一个Java类...
4. **配置整合**:在DWR2.0中,通常会有一个`dwr.xml`配置文件来定义Java类和JavaScript接口之间的映射。当与Spring2.0整合时,这部分配置可以被合并到Spring的`applicationContext.xml`中,使得所有配置集中管理,...
- 可以通过配置日志框架(如Log4j)来记录DWR的操作日志。 **2.4 多个dwr.xml配置和J2EE角色定义** - 支持多个`dwr.xml`配置文件,可以定义不同的角色访问不同的服务。 **2.5 插件配置** - 支持各种插件扩展功能,...
`commons-logging.jar`是DWR所依赖的库,用于实现日志记录功能,方便开发者调试和监控应用。 **DwrSpringAnnotations.jar**: `DwrSpringAnnotations.jar`是DWR与Spring框架集成的扩展库。它允许开发者使用Spring的...