• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

 

 

 

 

 

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://www.cnblogs.com/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

 

<%@page import="com.attilax.api.HandlerChain"%>

<%@ page contentType="text/htmlcharset=utf-8" language="java" import="java.sql.*"   %>

<%@page import="com.attilax.api.HandlerChain"%>

<%@page import="com.attilax.api.ApiHandler"%>

<%@page import="aaaCfg.IocX"%>

<%

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

 

{

 

 }

 

%>

<%

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

 

%>

 

<%=ax.handleReq_dsl(request)%>

 

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<DBX>() {

 

@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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
利用phar协议造成php反序列化发布时间:2022-07-10
下一篇:
PHPmysqli_error()函数发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap