zoukankan      html  css  js  c++  java
  • DWR中web.xml配制【转】

    现在来看看web.xml的配置。web.xml中一般是这样来写的:

    <servlet>
    
      <servlet-name>dwr-invoker</servlet-name>
    
      <display-name>DWR Servlet</display-name>
    
      <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
    
      <init-param>
    
         <param-name>debug</param-name>
    
         <param-value>true</param-value>
    
      </init-param>
    
    </servlet>
    
    <servlet-mapping>
    
      <servlet-name>dwr-invoker</servlet-name>
    
      <url-pattern>/dwr/*</url-pattern>
    
    </servlet-mapping>
    
     

    一般来说,你只需要一个dwr.xml文件,并且放置在默认的位置:WEB-INF/dwr.xml,如上面配置,就可以很好的工作了。不过现实中的项目可能会很复杂,如:

    • 你希望让dwr.xml文件和它能访问到的资源在一起。在这种情况下你需要一个这样的配置: <param-value>WEB-INF/classes/com/yourco/dwr/dwr.xml</param-value> 。
    • 你有大量的远程调用类,希望把他们分成多个文件。在这种情况下你需要重复下面的配置几次,每一个中有不同的 param-name。
    • DWR可以使用Servlet规范的J2EE的URL安全机制来给不同的用户不同的访问权限。你只需要简单的定义多个dwr servlet,并且制定不同的名字,url和访问权限。

    一个使用J2EE的安全机制的例子:

    <servlet>
    
    <servlet-name>dwr-user-invoker</servlet-name>
    
    <servlet-class>uk.ltd.getahead.dwr.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>uk.ltd.getahead.dwr.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>

    在DWR2.0中.你也可以这样来配置。

    初始配置

    要使用DWR的标注,你需要在web.xml中配置不同的DWR控制器。

    <servlet>
    <description>DWR controller servlet</description>
    <servlet-name>DWR controller servlet</servlet-name>
    <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
    <init-param>
    <param-name>classes</param-name>
    <param-value> com.example.RemoteFunctions, com.example.RemoteBean </param-value>
    </init-param>
    </servlet>

    servlet参数classes定义的时可以标注的类的全名,这些名字用逗号分割。

    远程访问类

    要使一个简单的class可以成为远程访问类,你需要使用 (Create和)RemoteMethod标注。

    @Create public class RemoteFunctions { @RemoteMethod public int calculateFoo() { return 42; } }

    没有被@RemoteMethod标注的方法不能被远程访问。

    要在Javascript使用不同于类型的名字,使用@Create标注的 name 属性。

    @Create(name="Functions") public class RemoteFunctions { }

    对象转换

    要使一个简单的bean类可以被远程访问, 使用 (Convert和)RemoteProperty标注:

    @Convert public class Foo { @RemoteProperty private int foo; public int getFoo() { return foo; } @RemoteProperty public int getBar() { return foo * 42; } }

    要使用复杂的转换器,使用@Convert标注的 converter 属性。

  • 相关阅读:
    通过IMM With Remote Console为服务器安装操作系统
    linux下编译安装php5.6出现 configure: error: Cannot find MySQL header files under /usr/local/mysql.
    5700交换机清除配置
    嵌入式驱动解析:从串口驱动到Linux驱动模型
    Win10自带Ubuntu子系统的安装与配置
    关于嵌入式C代码优化的几种方法
    2020软考高级系统分析师,你想知道的全在这
    libpng warning: iCCP: known incorrect sRGB profile
    pycharm中导入pygame库失败及解决办法
    pycharm中导入pygame等第三方库
  • 原文地址:https://www.cnblogs.com/macula/p/2881035.html
Copyright © 2011-2022 走看看