在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Atitit.ati dwr的原理and设计 attilax 总结 java php 版本
dwr是构建在ajax上的。。更加的dsl化。。 大大简化了编写ajax的工作量。
2. DWR工作原理是通过动态把Java类生成为Javascript。它的代码就像Ajax一样,你感觉调用就像发生在浏览器端,但是实际上代码调用发生在服务器端,DWR负责数据的传递和转换。这种从Java 到JavaScript的远程调用功能的方式使DWR用起来有种非常像RMI或者SOAP的常规RPC机制,而且DWR的优点在于不需要任何的网页浏览器插件就能运行在网页上。
DWR在客户端放置了一个 engine.js作为客户端的引擎,在Server端放置了一个dwr.jar作为服务器端的引擎。
作者:: 老哇的爪子 Attilax 艾龙, EMAIL:[email protected] 转载请注明来源: http://www.cnblogs.com/attilax/
3. Dwr的架构Dwr>>ajax>>>api.jsp
4. 自定义dwr还是native dwrNative dwr要修正配置文件了.麻烦的..自定义dwr好使用的..
5. ApiHandler的标准化methodSql 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/html; charset=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. ----------code10. ApiHandler
@Inject DBX dbx;
public ApiHandler() {
this.reg("sql", new Handler() {
@Override public Object handleReq(Object arg) throws 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
2022-08-15 2022-08-17 2022-11-06 2022-08-17 2022-07-18 |
请发表评论