Home  >  Article  >  Backend Development  >  Atitit.ati dwr的原理and设计 attilax 小结 java php 版本

Atitit.ati dwr的原理and设计 attilax 小结 java php 版本

WBOY
WBOYOriginal
2016-06-13 12:23:521015browse

Atitit.ati dwr的原理and设计 attilax 总结 java php 版本

Atitit.ati dwr的原理and设计 attilax 总结 java php 版本

 

 

1dwr的优点相对于ajax来说。。1

2DWR工作原理1

3Dwr的架构2

4自定义dwr还是native dwr2

5ApiHandler的标准化method2

6Invok..  Dwr.exe()2

7api.jsp3

8prj.Wxb distribu   api.jsp3

9----------code4

10. ApiHandler4

11. iocx5

12. 参考5

 

 

 

 

 

1. dwr的优点相对于ajax来说。。

dwr是构建在ajax上的。。更加的dsl化。。

大大简化了编写ajax的工作量。 

 

 

2. DWR工作原理

是通过动态把Java类生成为Javascript。它的代码就像Ajax一样,你感觉调用就像发生在浏览器端,但是实际上代码调用发生在服务器端,DWR负责数据的传递和转换。这种从Java 到JavaScript的远程调用功能的方式使DWR用起来有种非常像RMI或者SOAP的常规RPC机制,而且DWR的优点在于不需要任何的网页浏览器插件就能运行在网页上。 

Java从根本上讲是同步机制,然 AJAX却是异步的。所以你调用远程方法时,当数据已经从网络上返回的时候,你要提供有反调 (callback) 功能的DWR。 

 

DWR在客户端放置了一个 engine.js作为客户端的引擎,在Server端放置了一个dwr.jar作为服务器端的引擎。 

然后,可以以RPC的方式来描述

 

 

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:[email protected]

转载请注明来源: http://blog.csdn.net/attilax

 

 

3. Dwr的架构

Dwr>>ajax>>>api.jsp

 

 

4. 自定义dwr还是native dwr

Native dwr要修正配置文件了.麻烦的..自定义dwr好使用的..

 

5. ApiHandler的标准化method

Sql

Select... $meta{table,orderby}, f1,f2

Update/insert/merger ....$meta{table} ,f1----f12

Delete....$meta{table} ,f1----f12 (where)

 

 

6. Invok..  Dwr.exe()

 

var mp={"method":"sql","param":"select * from wxb_news where news_id="+UrlParm.parm('news_id')};

 

dwrC.exec(mp,function($data){

jo=str2json($data);

 arr=jo;

 

  $("#table1_tmpl").tmpl(arr).appendTo('#table1');

 $("#table1_tmpl").hide();

},$app_path);

 

 

7. api.jsp

*  localhost:8080/wxb/api.jsp?method=sql?m=select * from wxb_news

 

 

 

 

8. prj.Wxb distribu   api.jsp

 

htmlcharset=utf-8" language="java" import="java.sql.*"   %>

if(request.getParameter("method")!=null)

 

{

 }

 

%>

ApiHandler ax = IocX.getBean(ApiHandler.class);

 

%>

 

 

9. ----------code

10. ApiHandler

 

@Inject

DBX dbx;

 

public ApiHandler() {

 

this.reg("sql"new Handler() {

 

@Override

public Object handleReq(Object argthrows Exception {

// attilax 老哇的爪子 l_43_u o87

 

HttpServletRequest req=(HttpServletRequest) arg;

List li = dbx.findBySql(req.getParameter("param"));

 

return core.toJsonStrO88(li);

 

}

});

 

public String handleReq_dsl(HttpServletRequest req) {

String meth=req.getParameter("method");

Handler hd=(Handler) mp.get(meth);

try {

return (String) hd.handleReq(req);

catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return meth;

}

 

 

 

11. iocx

 

bd.bind(DBX.class).toProvider(new Provider() {

 

@Override

public DBX get() {

DataSource ds = (DataSource) SpringUtil

.getBean("dataSource");

 

try {

return new DbutilX(ds.getConnection());

catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return null;

}

});

 

 

12. 参考

atitit.php中的dwr 设计模式 - attilax的专栏 博客频道 - CSDN.NET.html

 

Atitit.dwr3 不能显示错误详细信息的解决方案,控件显示错误详细信息的解决方案 java .net php - attilax的专栏 博客频道 - CSDN.NET.html

Atitit.ati dwr的原理and设计 attilax 总结 java php 版本

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn