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">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<!-- start config dwr can be request by remote -->
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>allowGetForSafariButMakeForgeryEasier</param-name>
<param-value>true</param-value>
</init-param>
<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>
<!-- end config dwr can be request by remote -->
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
</web-app>
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
dwr.xml的配置信息
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd">
<dwr>
<allow>
<create javascript="TestCross" creator="new">
<param name="class" value="com.topking.test.Operator"/>
</create>
</allow>
</dwr>
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
java类代码
package com.topking.test;
import org.directwebremoting.WebContext;
import org.directwebremoting.WebContextFactory;
public class Operator {
public String greeting(String src){
WebContext context = WebContextFactory.get();
String ip = context.getHttpServletRequest().getRemoteAddr().toString();//获取客户端IP
return "hello "+src+" Your IP : "+ip;
}
}
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
页面代码
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'TestDWRCross.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type='text/javascript' src='/Ajax_chat/dwr/engine.js'></script>
<script type='text/javascript' src='/Ajax_chat/dwr/util.js'></script>
<script type="text/javascript" src='http://www.myspace.com:8080/DWR_cross/dwr/interface/TestCross.js'></script>
<script type="text/javascript">
function sendMsg(){
DWREngine.setMethod(DWREngine.ScriptTag);
TestCross.greeting(DWRUtil.getValue("userName"),function(data){alert(data);});
}
</script>
</head>
<body>
Input Your Name:<input type="text" id="userName"/> <input type="button" value="Submit" onclick="sendMsg();"/> <br>
</body>
</html>
分享到:
相关推荐
**一、DWR跨域访问** 1. **什么是跨域访问**:跨域是指浏览器出于安全原因,不允许不同源的页面之间进行交互。源由协议、主机名和端口号组成。DWR通过设置CORS(Cross-Origin Resource Sharing)策略,允许不同源的...
2. **创建可远程调用的Java类和方法**: 标记这些类和方法为可被DWR访问。 3. **生成JavaScript接口**: DWR会自动根据Java类生成对应的JavaScript接口,这些接口可以直接在客户端调用。 4. **在HTML/JavaScript中使用...
它处理了跨域问题,自动序列化和反序列化数据,并且支持异步调用,减少了页面刷新的需求。 2. **DWR的核心组件**: - **Engine**:引擎是DWR的核心,负责处理所有与远程调用相关的任务,包括安全、缓存、转换等。 ...
**8.4 从其他URL读取数据**:DWR不仅支持从本地服务器获取数据,还可以跨域调用其他服务器的服务。 **8.5 安全性**:DWR内置了一些安全措施来防止常见的攻击手段,但开发者还需要根据实际情况加强安全策略。 #### ...
DWR简化了跨域问题,让开发者可以像调用本地函数一样调用远程服务。 6. **学习和开发**: 对于初学者,可以通过阅读官方文档和示例代码了解如何配置DWR,以及如何在项目中使用它。熟练掌握DWR后,可以尝试自定义...
Remoting允许你在浏览器中直接调用服务器端的方法,Reverse Ajax则是指服务器可以主动向客户端推送数据,而CORS则解决了跨域访问的问题。 2. **DWR架构**:DWR由三个主要部分组成:`Engine`、`Servlet`和`...
在“dwr推送及js访问java代码”的项目中,我们可以看到如何利用DWR进行双向通信。首先,DWR的核心组件包括`DWR Engine`、`Servlet`和`AutoBean`等。`DWR Engine`负责在客户端和服务器之间建立连接,`Servlet`处理...
DWR提供了一些安全机制,如跨域访问控制、JavaScript混淆等,以防止未经授权的访问。同时,DWR还支持批处理、缓存策略等优化手段,以提升应用性能。 ### 8. DWR与其他技术结合 DWR可以与Spring、Hibernate等其他...
1. **远程调用**:DWR创建了一个安全的跨域JavaScript API,允许浏览器端的脚本直接调用服务器端的Java方法,实现数据的实时更新。 2. **批量调用与异步更新**:DWR支持批量调用多个服务器方法,以及异步处理,提高...
- **Web Remoting**:远程调用技术,让客户端能够跨域访问服务器端的资源。 - **AJAX**:异步JavaScript和XML,用于创建更动态、响应更快的网页,无需刷新整个页面即可更新内容。 - **JavaScript Framework**:...
DWR的配置包括设置允许跨域访问,暴露Spring Bean为JavaScript可用的方法,以及处理错误和异常。这样,当用户点击提交按钮时,JavaScript可以立即发送请求到服务器,验证验证码的正确性,然后根据结果给出反馈。 ...
3. **DWR与Spring集成**:为了使DWR能访问到Spring管理的Bean,我们需要在DWR的`web.xml`配置文件中添加Spring的`ContextLoaderListener`,以及DWR的`ContextProvider`,以便在DWR初始化时加载Spring上下文。...
同时,由于DWR默认不允许跨域访问,可能需要配置CORS策略或者使用DWR的`crossDomain`属性。此外,对于返回的数据类型,DWR默认支持基本类型和部分复杂类型,如果需要返回自定义对象,需要实现序列化。 综上所述,...
- **CORS**:由于DWR支持跨域通信,必须注意CORS(跨源资源共享)设置,防止未授权访问。 - **安全过滤**:使用DWR的白名单或安全过滤器来限制可以暴露给客户端的Java方法。 总结起来,DWR3.0.1jar打包涉及了DWR...
同时,需要在Web-INF目录下配置dwr.xml文件,定义允许客户端访问的服务器端方法。 4. **HelloDwr文件**: 这个文件很可能是项目中的一个示例,用于演示如何使用DWR。通常,它会包含一个简单的服务器端Java类,暴露一...
DWR提供了一些安全特性,如CSRF防护、方法访问控制等。同时,可以通过配置减少网络传输的数据量,比如启用GZIP压缩,或者使用批处理调用来合并多个请求。 **七、实际应用** DWR常用于构建富互联网应用(RIA),例如...
例如,你可以在这里指定允许跨域访问的IP或域名,以及启用或禁用CSP(内容安全策略)。 4. **DWR配置说明**: - 在`dwr.xml`中,你可以配置`<allow>`元素来指定哪些Java类和方法可以暴露给JavaScript。例如: ```...
3. **生成配置文件**:使用DWR生成器生成dwr.xml配置文件,定义允许客户端访问的Java方法。 4. **编写JavaScript代码**:使用DWR提供的API调用服务器方法,处理响应数据。 **4. DWR的典型应用场景** - **实时数据...
DWR处理了跨域问题,提供了安全机制,以及对异步调用的异常处理。 2. Maven: Maven是Java项目管理工具,主要用于构建、依赖管理和项目信息管理。它通过一个XML文件(pom.xml)来定义项目配置,包括项目信息、依赖...