要加入到你的web.xml最少的代码就是简单地去申明DWR servlet,没有它DWR就不起作用。
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
在DWR2.x里,DwrServlets是类org.directwebremoting.servlet.DwrServlet ,尽管
uk.ltd.getahead.dwr.DWRServlet仍然可以用。在DWR 1.x你不得不使用后者。
有些额外的servlet参数,在有些地方很重要。尤其debug参数
这个扩展DWR的标准结构是使用<init-params>。放在<servlet>内,就像如下使用
<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>
</servlet>
另外,启动服务时,如果报如下错。
java.lang.IllegalArgumentException: DefaultContainer can't find a
classes
是DWR2.0 加入了JDK5的注释(annotations).DwrServlet初始化的时候会去检查注释的类,找不到就
抱错了。如果你不用annotations也可以忽略掉这个错误。不过看起来总是不爽。解决方案如下
<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>
<init-param>
<param-name>classes</param-name>
<param-value>java.lang.Object</param-value>
</init-param>
</servlet>
多个dwr.xml配置和J2EE角色定义
一般来说只需要一个dwr.xml文件,并且会被设为默认位置WEB-INF/dwr.xml。所以你不需要配置。
有3个原因说明你为何需要指定不同位置的dwr.xml文件:
你想保持dwr.xml的文件请参照下面的例子
<param-value>WEB-INF/classes/com/yourco/dwr/dwr.xml</param-value>
你可以有很多的远程方法类并且希望指定文件。在这个例子里将指定不同文件开始配置,不同
的param-name将重复多次DWR将轮流读取它们。
DWR能够使J2EE URL具有给与不同用户组不同权限的安全机制。通过起不同名字,URL和权
限。
就像如下例子去使用
用一个字符串”config” 作为开始,设置param-name,每个param-name必须不同。
<servlet>
<servlet-name>dwr-user-invoker</servlet-name>
<servlet-class>
org.directwebremoting.servlet.DwrServlet
</servlet-class>
<init-param>
<param-name>config-user</param-name>
<param-value>WEB-INF/dwr-user.xml</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>dwr-admin-invoker</servlet-name>
<servlet-class>
org.directwebremoting.servlet.DwrServlet
</servlet-class>
<init-param>
<param-name>config-admin</param-name>
<param-value>WEB-INF/dwr-admin.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-admin-invoker</servlet-name>
<url-pattern>/dwradmin/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>dwr-user-invoker</servlet-name>
<url-pattern>/dwruser/*</url-pattern>
</servlet-mapping>
<security-constraint>
<display-name>dwr-admin</display-name>
<web-resource-collection>
<web-resource-name>dwr-admin-collection</web-resource-name>
<url-pattern>/dwradmin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<display-name>dwr-user</display-name>
<web-resource-collection>
<web-resource-name>dwr-user-collection</web-resource-name>
<url-pattern>/dwruser/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>user</role-name>
</auth-constraint>
</security-constraint>
分享到:
相关推荐
【标题】:“DWR学习笔记-HelloWorld篇” 在IT领域,DWR(Direct Web Remoting)是一个开源的Java框架,它允许JavaScript在浏览器端直接调用服务器端的Java方法,实现了网页与服务器的实时交互,类似于Ajax技术,但...
这篇读书笔记将深入探讨DWR的核心概念、工作原理以及实际应用。 首先,我们要理解DWR的基本理念。DWR的核心是提供一种简单的方式,使得Web开发者可以在浏览器端直接调用服务器端的Java方法,仿佛这些方法就是本地...
本篇笔记将深入探讨DWR的核心概念、功能以及如何在实际项目中应用。我们将通过分析DWR的源码,了解其实现机制,并借助提供的工具进行实战演练。 1. **DWR概述** DWR的核心理念是提供一种安全、高效的方法,使得...
2. **DWR配置**:学习在web.xml和dwr.xml中设置DWR的相关配置,使DWR能够正常工作。 3. **客户端API**:掌握JavaScript中的DWR API,如何创建和调用远程对象,以及处理异步回调。 4. **服务器端API**:了解如何在...
本篇笔记主要介绍了一个具体的AJAX配置示例,它涉及了Spring框架、Direct Web Remoting (DWR) 和Hibernate等技术的应用。下面将详细解析这些配置代码的关键部分及其作用。 #### 二、web.xml配置分析 **1. Spring上...