下面根据自己的理解说说dwr。
dwr是一个用于改善web页面和java类交互的远程服务器端开源框架,它允许浏览器里的代码使用运行在web服务器上的java函数。
它主要包含两个主要部分:即允许javascript从web服务器上一个遵循了ajax原则的servlet中获取数据,另一方面一个javascript库可以帮助网站开发人员轻松的利用获取的数据来动态改变网页的内容。
dwr采取了一个类似ajax的新方法来动态生成基于java类的javascript代码,这样web开发人员就可以再javascript里面使用java代码,就像他们是浏览器的本地代码一样,但是出于安全考虑,web开发者必须适当的配置那些java类可以被外部使用。
dwr结合了ajax的异步特性和java方法调用的同步特性。允许web开发人员传递一个回调函数来异步处理java函数调用的过程。
下面来说一下dwr在一个具体的工程中应该如何配置。
第一步:拷贝dwr.jar到web-inf/lib目录
第二部:在web.xml文件中进行如下配置:
<servlet> <servlet-name>dwr-invoker</servlet-name> <display-name>DWRServlet</display-name> <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class> <init-param> debug</param-name> true</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping>
第三步:创建dwr.xml文件,并且放在web.xml文件同一目录下。其中配置我们要调用的类。配置如下:
<dwr> <allow> <createcreator=”new” javascript=”T1”> </create> <createcreator=”new” javascript=”beanName”> </create> </allow> </dwr>
其中的T1为我们前端调用js文件保持一致的名字,beanName为我们要调用的后台类的名字或者是完整的路径。
第四步:编写我们要调用的类,beanName.java。
public class beanName { public String hello(){ return "成功了!"; } }
以上前后台打交道的地方我们都配置好了,在前台我们只需要写上方法的名字进行调用即可。实例如下:
<head> <Meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>Insert title here</title> <script type="text/javascript" src="dwr/engine.js"></script> <script type="text/javascript" src="dwr/util.js"></script> <script type="text/javascript" src="dwr/interface/T1.js"></script> <script type="text/javascript">
此处前两个js文件是dwr自带的,第三个是我们需要配置的,需要和dwr.xml中的名字保持一致。
function test1(){ T1.hello( helloreturn); } function helloreturn(value){ alert(value); } </script> </head>
以下界面直接调用 function 函数即可。
<body> <input type="button" value="测试" onclick="test1()"> </body>
对于 function ,这里是一个回调函数,用来异步或者同步返回调用返回的函数值,它可以是不同的类型。我们可以任意处理返回的值根据需要。大家可以继续研究。 原文链接:https://www.f2er.com/ajax/166675.html