译者:Flyingis
译文链接:http://www.blogjava.net/flyingis/archive/2006/11/18/81898.html
http://gis.iteye.com/blog/34853
原文链接:http://getahead.ltd.uk/dwr/server/servlet
翻译目录:http://www.blogjava.net/flyingis/archive/2006/11/17/81862.html
声明:文章可以转载,但请注明原文及译文出处。
Reference to DWR entries in WEB-INF/web.xml
The minimum possible additions to your web.xml, are simply those to declare the DWR servlet without which none of this would work. So the least you can get away with looks something like this:
使用 DWR 需要在 web.xml 中声明 DWR servlet ,以下是保证 DWR 运行的最基本的代码,缺少哪一部分 DWR 都不能正常运行:
< servlet-name > dwr-invoker </ servlet-name >
< servlet-class > uk.ltd.getahead.dwr.DWRServlet </ servlet-class >
</ servlet >
< servlet-mapping >
< servlet-name > dwr-invoker </ servlet-name >
< url-pattern > /dwr/* </ url-pattern >
</ servlet-mapping >
In addition to this there are several extra servlet parameters that are somewhere between important and vaguely useful.
除了这些外,还有一些额外的 servlet 参数,它们或多或少都会起到一定的作用。
Logging
Multiple dwr.xml files
Plug-ins
Test Mode
Logging
DWR works in JDK 1.3 which does not support java.util.logging, but we don't want to force anyone to use commons-logging or log4j, so DWR will work if no logging classes are present by using the HttpServlet.log() methods. However if DWR discovers commons-logging then it will use that.
在 JDK1.3 下运行的 DWR 不支持 java.util.logging ,而我们又不想强迫任何人去使用 commons-logging 或 log4j ,因此当没有任何日志包可以使用的时候, DWR 将使用 HttpServlet.log() 方法。当然,如果 commons-logging 存在, DWR 将使用它。
Commons-Logging
Almost everyone will be using commons-logging because most servlet containers use it. So even if your webapp isn't explicitly using commons-logging it is probably available by default.
几乎所有人都会使用 commons-logging ,因为大多数 servlet 容器都会用到它。因此,即使你的 Web 应用没有明确指定使用 commons-logging ,它也很可能是默认的选择。
In these cases logging will be controlled by the config files of either java.util.logging or log4j. See the respective documentation for more details.
在一些情况下,日志将使用 java.util.logging 或 log4j 的配置文件来控制。请参考相关的详细文档。
HttpServlet.log()
If you are using HttpServlet.log(), the following stanza controls DWR logging:
如果你使用 HttpServlet.log() ,下面的代码会控制 DWR 日志的记录方式。
< param-name > logLevel </ param-name >
< param-value > DEBUG </ param-value >
</ init-param >
The valid values are: FATAL, ERROR, WARN (the default), INFO and DEBUG.
有效的取值为: FATAL 、 ERROR 、 WARN( 默认 ) 、 INFO 以及 DEBUG 。
Multiple dwr.xml files and J2EE security
Generally speaking you will only need one dwr.xml file and that will be in the default position: WEB-INF/dwr.xml. So you can leave this paramter out.
There are 3 reasons why you might wish to specify a different position for dwr.xml:
一般情况下,你只需要一个 dwr.xml 文件,并且保存在默认的位置: WEB-INF/dwr.xml 。因此你可以不用做过多的考虑。但是,有三个原因让你可能将 dwr.xml 放在其它的位置:
1. You wish to keep dwr.xml with the files that it gives access to. In which case the section might have a param-value something like <param-value>WEB-INF/classes/com/yourco/dwr/dwr.xml</param-value>.
1. 你希望将 dwr.xml 放在可以访问的地方。这种情况下可能会有 param-value 标签,如 <param-value>WEB-INF/classes/com/yourco/dwr/dwr.xml</param-value> 。
2. You may have a large number of remoted classes and wish to keep the definitions in separate files. In this case you will have the section above repeated several times each with a different param-name that begins 'config' and each pointing at a different file. DWR will read them all in turn.
2. 也许你需要大量的远程类(的方法、属性)在客户端访问,希望将它们分别定义在不同的文件中。这时,你需要将上面的代码片断复制在多处,并在 config 中使用不同的 param-name 指定每个文件。 DWR 将依次读取。
3. DWR can use J2EE URL security built into the servlet spec to give different groups of users access to different functions. You simply define more than one dwr servlet by repeating the stanza at the top of the page with different names, urls and permissions.
3.DWR 能在指定的 servlet 中使用 J2EE URL 链接的安全机制,使不同的用户组访问不同的方法。你可以在文件的顶部使用不同的名称、 url 链接和许可权限,简单重复 dwr servlet 代码来实现这种安全机制。
If you do wish to use it then the syntax is as follows:
如果你确实需要使用该安全机制,代码构造如下:
< param-name > config***** </ param-name >
< param-value > WEB-INF/dwr.xml </ param-value >
< description > What config file do we use? </ description >
</ init-param >
Where config***** means any param-name that begins with the string 'config'. This parameter can be specified as many times as required, however the param-name should be different for each.
config***** 代表命名以 'config' 开始的 param-name 。只要保证没有重复的 param-name ,该参数可以根据需要被声明多次。
An example configuration to use J2EE servlet security is as follows:
下面是基于 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 >
Using Plug-ins
Most of the guts of DWR is pluggable so it is possible to alter the functionallity of DWR by replacing default classes. You can override the default implementations by including an <init-param> that specifies the interface to replace in the param-name and the replacement implementation in the param-value.
大多数 DWR 的核心功能都是可以通过插件功能实现的,通过替换默认的类来改变 DWR 的功能。你可以引入一个 <init-param> ,在 param-name 处指定替换的接口,以及更改 param-value 所指定的类,重写默认的实现方式。
The plug-in points are:
这些插件包括:
uk.ltd.getahead.dwr.AccessControl
uk.ltd.getahead.dwr.Configuration
uk.ltd.getahead.dwr.ConverterManager
uk.ltd.getahead.dwr.CreatorManager
uk.ltd.getahead.dwr.Processor
uk.ltd.getahead.dwr.ExecutionContext
The default implementations of these plug-in points are all in the uk.ltd.getahead.dwr.impl package.
默认插件的实现在 uk.ltd.getahead.dwr.impl 包中。
Using debug/test mode
You put DWR into debug/test mode by adding the following parameter:
通过加入以下参数,将 DWR 设置为调试 / 测试模式:
< param-name > debug </ param-name >
< param-value > true </ param-value >
</ init-param >
DWR will generate test pages for each of the allowed classes (see dwr.xml below) in debug mode. These can be very useful in seeing what DWR can do and how it works. This mode can also alert you to problems like javascript reserved word clashes or overloading problems.
在调试模式下, DWR 将为每个 allow 类(参考下一章节 dwr.xml ) 生成测试页面。这非常有用,可以了解 DWR 做了些什么工作,以及它是如何工作的。该模式还能通知你 javascript 保留字冲突或重载方面的问题。
However this mode should not be used in live deployment as it could give an attacker a lot of information about the services that you export. If you have designed your website properly then this extra information will not help an attacker exploit your website however it is generally wise not to give anyone a route map to exploit any mistakes you might have made.
但是在该模式下你导出的服务的许多信息都暴露给了攻击者,真正部署的时候应该避免使用这种模式。如果网站能够得到良好的设计,就能避免攻击者获取网站的重要信息。通常不应给任何人提供网站的导航图来试图发现你留下的设计缺陷。
DWR is provided 'as is', without any warranty, so the security of your website is your responsibility. Please take care to keep it secure.
DWR is provided 'as is' (不知道怎么翻译?), DWR 不提供任何保证,因此网站的安全性由你个人负责。请尽量保证网站的安全。
相关推荐
建筑工地扬尘治理与文明施工检查表.docx
基于java的个性化旅游攻略定制系统设计与实现.docx
数学建模培训资料 数学建模实战题目真题答案解析解题过程&论文报告 导弹追击模型的建立与求解 共6页.pdf
基础课程辅助教学-JAVA-基于springBoot程序设计基础课程辅助教学系统设计与实现
适用人群:大学生 自学者 使用场景:大学生毕设 自学者练手项目 学习与交流 其它说明:部分资源来源网络及开源社区、仅供参考与学习、不可商用、若有侵权请联系删除! 内容概要:用springmvc实现的校园选课管理系统
java课程期末考试
C++ Vigenère 密码(解密代码)
工程研究中心申报基本情况一览表.docx
Vigenère 密码(加密代码)
密码学AES算法源代码,密码学实验
基于java的百货中心供应链管理系统设计与实现.docx
环境说明:开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat 开发软件:eclipse/myeclipse/idea Maven包:Maven 浏览器:谷歌浏览器。 项目均可完美运行
【资源说明】 大数据毕业设计 基于Python+Spark机器学习天气预测系统详细文档+全部资料.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
购物系统 微信小程序+PHP毕业设计 源码+数据库+论文+启动教程
BIM 人才培养的框架和方法 相关的标准
源项目文件
ActiveMQ消息中间件的测试案例
内容概要:本文全面解析了汽车电动化、智能化背景下,车规芯片SoC的重要性和发展趋势。首先概述了汽车行业发展三大趋势——新能源车市场崛起、智能化引领新潮流、商业模式及价值链重构。随后详细介绍了车规芯片SoC的应用领域,包括主控芯片、功率芯片、CMOS芯片、射频接收器、传感器、存储芯片及汽车面板,并阐述了它们的作用和技术需求。文章接着讨论了电子电气架构的演进路径,从分布式向集中式的演进对汽车芯片供应链带来的影响。最后探讨了汽车SoC的技术特征、应用领域、未来发展方向及其面临的挑战。 适合人群:汽车芯片设计师、汽车制造商、科研机构及相关行业的专业人士。 使用场景及目标:理解和掌握汽车芯片尤其是SoC在智能电动汽车中的应用及未来发展,帮助相关从业者做出更好的技术和商业决策。 其他说明:随着智能电动汽车市场的快速成长,车规芯片SoC作为核心技术将面临前所未有的机遇和挑战。
用于控制 Broadlink RM2/3 (Pro) 遥控器、A1 传感器平台和 SP2/3 智能插头的 Python 模块python-broadlink用于本地控制 Broadlink 设备的 Python 模块和 CLI。支持以下设备通用遥控器RM home、RM mini 3、RM plus、RM pro、RM pro+、RM4 mini、RM4 pro、RM4C mini、RM4S、RM4 TV mate智能插头SP mini、SP mini 3、SP mini+、SP1、SP2、SP2-BR、SP2-CL、SP2-IN、SP2-UK、SP3、SP3-EU、SP3S-EU、SP3S-US、SP4L-AU、SP4L-EU、SP4L-UK、SP4M、SP4M-US、Ankuoo NEO、Ankuoo NEO PRO、Efergy Ego、BG AHC/U-01开关MCB1、SC1、SCB1E、SCB2出口BG 800, BG 900电源板MP1-1K3S2U、MP1-1K4S、MP2环境传感器A1报警套件S1C、S2KIT灯泡LB1、LB26 R1、LB2
这是一份关于五个城市的PM2.5监测数据文件,以CSV格式存储。数据涵盖了广州、北京、沈阳等地的空气质量情况,旨在帮助研究人员和数据分析人员更好地理解城市空气污染状况。 使用人群 适合对环境科学、大气污染研究感兴趣的科研工作者、学生及环保组织成员使用。 数据内容 包含五个主要城市的PM2.5浓度数据 时间跨度较长,覆盖多年数据 CSV格式方便导入各种数据分析软件进行进一步处理和分析