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>
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
分享到:
相关推荐
2. **DWR的跨域解决方案**:DWR通过提供动态生成的JavaScript文件和Servlet来实现跨域。这些JavaScript文件包含对服务器端方法的引用,使得前端可以安全地调用后端服务。DWR的CORS支持可以通过配置文件或注解来启用...
2. **创建可远程调用的Java类和方法**: 标记这些类和方法为可被DWR访问。 3. **生成JavaScript接口**: DWR会自动根据Java类生成对应的JavaScript接口,这些接口可以直接在客户端调用。 4. **在HTML/JavaScript中使用...
确保正确配置DWR的安全设置,例如限制可访问的Java方法、启用CSRF保护等。 9. **调试与监控** DWR 3 提供了内置的调试工具,可以帮助开发者查看和调试DWR请求和响应。此外,通过监控服务器日志,可以了解推送服务...
DWR提供了一些安全特性,如CSRF防护、方法访问控制等。同时,可以通过配置减少网络传输的数据量,比如启用GZIP压缩,或者使用批处理调用来合并多个请求。 **七、实际应用** DWR常用于构建富互联网应用(RIA),例如...
下面我们将详细介绍Dwr3实现消息推送的步骤,并涉及与ScriptSessionListener、跨域问题以及Maven的集成。 首先,我们需要理解DWR3的消息推送机制。DWR的Push功能基于Comet技术,这是一种使服务器能够主动向客户端...
Direct Web Remoting (DWR) 是一个开源Java库,它允许Web应用程序在浏览器和服务器之间进行实时、安全的双向通信。这个资源包包含了DWR的jar文件和...通过深入理解和实践,你可以利用DWR实现高效、动态的Web应用交互。
1. `dwr.xml` 文件是DWR的核心配置文件,它定义了哪些Java对象可以被JavaScript访问。在提供的示例中,有一个名为`MyReverse`的Java类,它会被反转到客户端供JavaScript调用。配置如下: ```xml <!DOCTYPE dwr ...
通过SSH与DWR的整合,开发者可以利用SSH的强大功能进行业务逻辑处理,同时利用DWR实现快速的客户端更新,构建出高效、动态的Web应用。在实际项目中,这种整合可以提高开发效率,减少网络通信开销,提升用户满意度。
**8.4 从其他URL读取数据**:DWR不仅支持从本地服务器获取数据,还可以跨域调用其他服务器的服务。 **8.5 安全性**:DWR内置了一些安全措施来防止常见的攻击手段,但开发者还需要根据实际情况加强安全策略。 #### ...
Direct Web Remoting (DWR) 是一种开源的Java库,它允许JavaScript在浏览器端与服务器端的Java对象进行交互,从而实现动态Web应用程序。DWR的主要功能是通过AJAX技术在客户端和服务器之间进行实时通信,使得用户界面...
在“dwr推送及js访问java代码”的项目中,我们可以看到如何利用DWR进行双向通信。首先,DWR的核心组件包括`DWR Engine`、`Servlet`和`AutoBean`等。`DWR Engine`负责在客户端和服务器之间建立连接,`Servlet`处理...
如果需要跨域访问,配置DWR以允许跨域请求,并在服务器端处理CORS(Cross-Origin Resource Sharing)策略。 总的来说,"dwr消息推送完整示例"旨在展示如何利用DWR实现实时的消息推送,这对于构建交互性强、用户...
5. **安全考虑**:DWR允许跨域访问,因此需要设置合适的安全性控制,例如白名单限制、CSRF令牌等。 **实际应用场景** DWR在实时聊天、股票报价、在线协作工具、游戏等多个领域都有广泛的应用。通过DWR,开发者可以...
- **CORS**:由于DWR支持跨域通信,必须注意CORS(跨源资源共享)设置,防止未授权访问。 - **安全过滤**:使用DWR的白名单或安全过滤器来限制可以暴露给客户端的Java方法。 总结起来,DWR3.0.1jar打包涉及了DWR...
DWR提供了一些安全机制,如跨域访问控制、JavaScript混淆等,以防止未经授权的访问。同时,DWR还支持批处理、缓存策略等优化手段,以提升应用性能。 ### 8. DWR与其他技术结合 DWR可以与Spring、Hibernate等其他...
Remoting允许你在浏览器中直接调用服务器端的方法,Reverse Ajax则是指服务器可以主动向客户端推送数据,而CORS则解决了跨域访问的问题。 2. **DWR架构**:DWR由三个主要部分组成:`Engine`、`Servlet`和`...
同时,由于DWR默认不允许跨域访问,可能需要配置CORS策略或者使用DWR的`crossDomain`属性。此外,对于返回的数据类型,DWR默认支持基本类型和部分复杂类型,如果需要返回自定义对象,需要实现序列化。 综上所述,...
- 可以通过设置`crossDomainEnabled="false"`禁止跨域访问。 7. **调试与优化** - DWR提供内置的调试模式,可以在浏览器的JavaScript控制台看到详细的日志信息。 - 使用DWR的批处理功能,减少网络请求次数,提高...
5. **安全与性能**:DWR支持跨域访问控制(CORS),可以通过配置文件来设定允许的源。同时,为了优化性能,DWR有缓存机制和批处理功能,可以减少网络请求次数。 6. **DWR的调试**:DWR提供了内置的控制台,可以通过...