问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何使用DWR框架18

发布网友 发布时间:2024-02-20 14:00

我来回答

1个回答

热心网友 时间:2024-04-10 09:11

DWR框架是一个可以允许你去创建AJAX WEB站点的JAVA开源库。它可以让你在浏览器的JavaScript代码中调用Web服务器的Java代码,就像Java代码在浏览器中一样。DWR工作原理是通过动态把Java类生成JavaScript,让使用者感觉调用就像发生在浏览器端。当我们的业务需要在页面不提交的情况下访问服务器端并实现页面数据局部刷新时,我们就可以使用DWR。 下面对如何使用DWR进行了归纳: 1.首先把dwr的类库jar包放入项目的lib路径下,这是废话。 2.在web.xml增加一段配置,因为dwr是靠一个Servlet来接收来至javascript的请求的 <servlet><servlet-name>dwr</servlet-name><servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class></servlet><servlet-mapping><servlet-name>dwr</servlet-name><url-pattern>/dwr/*</url-pattern></servlet-mapping> 3.在WEB-INF下面添加一个名为dwr.xml的配置文件,在这里配置需要在js里面访问的Java类和方法。下面以检查邮件地址是否占用的操作为例,<allow>标记表示了那些类需要转换为Ajax方式调用,create="new"指定dwr引擎以何种方式创建要调用的类,还有jsf,struts,spring,none等选项,new 是比较适中的也是默认的创建方式。javascript="CheckEmailService"指定该java类生成的js文件的名字(或者说在js里该类的名字)。如果你需要在js调用Java时传递对象如VO,可以如下指定一个<convert>,这表示你允许dwr帮你把Java类转换为js里模拟的对象,js里调用时可以传递这个VO.<dwr><allow><create creator="new" javascript="CheckEmailService"><param name="class"value="com.xxx.CheckEmailService" /></create><convert converter="bean" match="com.xxx.CallbackVo" /></allow></dwr>4.在项目里编写Java类:一个VO类,一个用来AJAX执行的类,注意方法的参数可以是对象哦!!! import com.xxx.EmailVo;public class CheckEmailService{public String checkEmail(EmailVo email){//.....do something......}}public class EmailVo{private String mail;//.....getter,setter,以及其他属性}5.接下来就在jsp里面导入js文件了。任何使用dwr的jsp必须导入以下两个dwr已有的js: <script type='text/javascript' src="/dwr/engine.js"/><script type='text/javascript' src="/dwr/util.js"/> 当然还必须导入dwr从CheckEmailService类生成而来的js文件,比如:<script type='text/javascript' src="/dwr/interface/CheckEmailService.js"/> 注意了,这个地方有的人会迷惑,这些js在哪里?实际上你是找不到的,因为dwr把这些js文件输出到浏览器缓存里,文件系统没有。(如果你用firefox浏览器,可以安装JS Viewer插件来查看缓存里的js)。 6.好了,在jsp里面要以AJAX方式检查邮件是否占用可以这么写: <script>var emailVo={mail:document.getElementById("mailInputText"),....};CheckEmailService.checkEmail(emailVo,callback(returnValue){alert("邮件被占用!");}});</script> 看到了没,先以{ 属性1:属性值1, 属性2:属性值2...}方式创建一个数组来模拟对象,然后传给执行检查的checkEmail方法,checkEmail的第二个参数是一个js函数,用来回调。也就是服务器端Java类的checkEmail执行完返回后,来调用这个回调的函数处理结果。 7.总结:我这里给出了一个解释原理的示意性例子,要会用dwr,主要是理解其原理。其原理就是通过Java反射机制生成对应于Java类的js文件,在客户端模拟Java调用;由engine.js里的execute()函数向服务器发送,提交到Servlet后转给Java类执行。理解,切记。共勉!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
同龄人早发育好还是晚发育好 小孩晚熟正常吗? 女孩子身体发育的早晚跟童子身有关系吗? 自喷漆如何晾干 自喷漆一般几分钟能干 自动静电喷塑流水线 玫瑰茉莉薄荷茶有什么功效 平面磨床哪家的好 十大名牌平面磨床 手机病毒查杀软件推荐选择最好的手机病毒查杀软件 dwr.xml干什么用的16 Java Web中dwr是什么技术,主要是作什么用?2 少年卫队精英特训营 陆繁荣做什么行业的?联创电子董事 陈伟哪年出生的?联创电子董事 姑娘什么也不做怎么办? ...弱视左眼175度,右眼375度,伴有散光175戴镜左眼0.6右眼0.3,朋友们有... 5周岁儿童视力0.6,大夫说是弱视,是去大医院好,还是到本地医院好_百度知... 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 关于微信绑定上限的问题:你的手机号在最近24小时内已绑定过3个... 请问 飞机在晚上行驶时会发出闪烁的光,那光是雷达?不然是什么?测速的... 天净沙·秋思的意思300字 Blossom (Lp Version) 歌词 Strange Girl (Lp Version) 歌词 Bridges (Travessia) 歌词 在见倾心是什么意思 小潮在农历几号 制备灯心草炭、棕榈炭为何不采用炒炭法,而采用煅炭法? 广汽传祺gs4延保退 您的手机号在最近24小时内绑定过三个,已达到限制,...24小时后... DWR框架是怎样实现的?189 盾字可以组什么词? 用盾组五个词语 萨尔温江是什么 怒江流入缅甸后叫什么 缅甸最长河流萨尔温江在我国境内被称为什么江 屏怎么组词355 用唉组词&#47;唉能组什么词&#47;唉第四声组词40 用吴组词,有什么呢?316 怎么样可以申请一个新的? 远近填成语有哪些 怎么注册新的 怎么再申请一个 一个手机号注册两个怎么弄 刚开始玩黑暗之魂2,纠结出身很久了,请问圣职骑士魔法师这三个出身都有... 海城有哪些高中? 台式电脑装XP系统的用什么样的杀毒软件最安全? 如何设置才能使XP系统更安全? XP系统要设置哪些才安全 淘宝刷单会封吗