`
裴小星
  • 浏览: 260833 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
8ccf5db2-0d60-335f-a337-3c30d2feabdb
Java NIO翻译
浏览量:27555
F3e939f0-dc16-3d6e-8c0b-3315c810fb91
PureJS开发过程详解
浏览量:71811
07a6d496-dc19-3c71-92cf-92edb5203cef
MongoDB Java ...
浏览量:61938
社区版块
存档分类
最新评论
文章列表
PureJS (6.4):利用 proxy 对象实现权限控制和数据校验   利用上一篇文章提到的 proxy 对象,我们还可以实现更多实用的功能。比如本文将探讨的权限控制和数据校验。   权限控制的思路是截获对 page.* 和 api.* 的调用,并利用 session 中记录的用户角色信息进行权限检查;   数据校验还将用到之前的客户端与服务器端共用代码的功能,对数据进行双重检查,以防恶意攻击。   接下来就让我们看看具体的实现吧。 权限控制   这里以对 page.* 的调用为例。基本思路是:   1. 通过正则表达式 /^page./ 和 /^api./ 匹配需要拦截的方法调用   2 ...
PureJS (6.3):Rhino 中的日志与 proxy 对象   这篇文章里我们将继续探讨日志处理(pure.log)和 proxy 对象(pure.proxy)。结合使用 pure.log 和 pure.proxy 可以实现灵活的日志处理,有效地分离业务逻辑和日志记录的代码。pure.log 是在 slf4j 和 log4j 的基础上完成的;pure.proxy 是利用 Rhinio JS 的 __noSuchMethod__ 实现的。 代码示例   下载附件中的 PureJS 工程,打开文件 scripts/app/proxy/log.js ,可以看到如下代码: (functio ...
Pure JS (6.2):结合 Rhino 和 Junit GUI 测试 JS   最近尝试了直接用 Rhino 启动 Junit ,刚开始就遇到了一些问题。因为 Java 注解在 JavaScript 中并不能起到什么作用,所以我选择了 Junit 3,并使用了 Junit 3 自带的swing GUI。最大的问题是 Junit 是通过 Class 名称加载测试类进行测试的。而 Rhino 的 Class 是动态生成的,名称也比较怪(比如 adapter1 之类),并不适合显示在界面上,因此我修改了 Juni 3 的源代码(见附件)。可以用“Pei Xiaoxing”作为关键字在源代码中搜索 ...
Pure JS (6.1):使用 Rhino Shell 和 Debugger 运行和调试 JS   之前一直使用 java 7 自带的 ScriptEngine 执行服务器端 JS,然而,一个重要的缺陷是无法进行调试。   因此我将之前的一些 Java 代码改为 JavaScript 代码,并尝试着使用 Rhino Debugger。   本文就是介绍这方面的探索成果的。 1. Rhino Shell 和 Debugger 介绍   Rhino Shell 可以用于执行 JS,与之前直接通过 Run As Java Application 方式运行没有太大区别。   Rhino Debugg ...
Pure JS (5.3):pure.render 的实现(构造window对象,实现服务器端 JQuery Template)   pure.render() 的实现思路大致如下:   1. 解析 HTML   2. 构造 window 对象   3. 在 window 对象上附加 jQuery 对象   4. 调用传入的 func,修改 window.docu ...
Pure JS (5.2):服务器端与客户端共用页面渲染代码   接着上一篇文章,我们来谈谈如何在服务器端和客户端共用 JS 代码,以便实现第一次返回页面时在服务器端完成初始渲染,而之后的操作在客户端进行修改并重新渲染页面的模式。 运行示例   首先,需要先运行mongod;然后下载附件中的 PureJS 工程,解压后加载到 eclipse 中,打开文件 main/com/purejs/core/JSServer.java,右键选择 Run As -> Java Application。   在浏览器中输入 http://localhost:8080, 可以看到如下页面: 引用  参考 ...
Pure JS (5.1):在服务器端使用 JQuery DOM 和 JQuery Template   JQuery Template 是著名的客户端 JS 模板引擎,对于没有 SEO 需求的 Web 应用,甚至只用 JQuery Template 就可以完成所有的页面渲染。   但这种方式并不适用于所有 Web 应用,如 博客、新闻类的网站,是必须考虑 SEO 的;由于搜索引擎通常不会执行 JavaScript,所以最好在第一次返回页面时就包含希望被搜索到的数据。   一种常见的模式是第一次返回时使用服务器端 JS 进行初始渲染,而后续修改时使用客户端 JS 对界面进行修改。使用这种模式时 ...
Pure JS (4.3): pure.db.js 的实现(基于 MongoDB Rhino Driver)   接着之前的两篇文章,让我们来看看 pure.db.js 的实现细节,以及一些 MongoDB Driver 的相关内容。 1. MongoDB Java Driver   MongoDB Java Driver 可以到这里下载:   https://github.com/mongodb/mongo-java-driver/downloads   用法如下: // 连接 MongoDB 并获取 collection Mongo m = new Mongo(); DBCol ...
Pure JS (4.2): Web 应用中服务器端 JS 调用 MongoDB 的简单示例   接着上一篇文章,本文将通过一个简单的示例说明如何通过服务器端 JS 调用 MogoDB,以及客户端 JS 向服务器端发起请求的方式。   首先我们可以先运行示例程序, ...
Pure JS (4.1): 使用 MongoDB 进行数据存储和管理   MongoDB 的一大特性就是 “JavaScript Friendly”,“Scheme Free” 的主张天生就是与 JavaScript 的开发理念相契合的。   它允许我们通过 eval 进行数据的初始化,以及在查询中使用 JS 对 ...
Pure JS (3.2): 上传下载 (HTML5 与 Flash 上传实现,配置项说明)   接着上一篇文章的话题,本文主要讲解 HTML5 方式的上传,FLash 方式上传客户端的实现,并说明 pure.upload 组件的配置项。   服务器端的实现在上一篇文章已经说明过了,这里就不再重复了。 HTML5 方式上传   HTML5方式上传,实际上是解决将文件数据放在请求的 body 中,而不使用 mutipart/form-data 格式进行封装。   实现思路如下:   1. 创建 XMLHttpRequest 对象   2. 配置上传进程中的回调函数   3. 配置上传完 ...
Pure JS (3.1):上传下载(利用 HTML5 与 Flash)   本文主要探讨 JavaScript 文件上传与下载,包括 客户端JS 和 服务器端JS 。   客户端支持 HTML5,Flash 和传统(隐藏)表单上传。   服务器端兼容 HTML5 Streaming 方式上传和 Multipart ...
Pure JS (2): 热部署 (利用 JDK 7 NIO 监控文件变化)   接着上一篇文章(http://xxing22657-yahoo-com-cn.iteye.com/blog/1052485)的话题,我们来谈谈服务器端 JS 的热部署问题。   由于 JavaScript 是动态语言,动态编译并执行脚本并不困难。所以关键是监控文件变化。   这里推荐使用 JDK 7 NIO 中新增的 Watch Service API。Watch Service API 将尽可能使用操作系统的文件 API ,当操作系统不支持时,则使用轮询。简而言之,就是 JNI  + 轮询,自己实现轮询倒不难 ...
Pure JS (1): 在 jetty 上运行 JavaScript   所谓 Pure JS ,就是客户端和服务器端程序都用 JavaScript 编写。   实现思路是:   1. 客户端发起 Ajax 请求,请求的数据格式为 JSON ,方法为 POST   2. 服务器端用 Jetty 接收请求   3. 用 Java 6 ScriptEngine 执行 JavaScript 脚本   4. 结果以 JSON 格式返回   另外,在系统启动时需要对所有脚本进行初始加载。   接下来就按照这个思路逐步进行。 客户端 Ajax 请求   在 Eclipse 中建立 Java 工程 ...
jQuery Utilities 分类下的函数(或属性)的实现方式分析   本文将介绍jQuery Utilities 分类下的函数(或属性)的实现方式。   首先,可以先从 jQuery 官方 API 中找到 Utilities 分类的介绍:   http://api.jquery.com/category/utilities/   其中,不进行分析的函数(或属性)包括:   jQuery.boxMode:已经不推荐使用,可以用 jQUery.support.boxModel 代替   queue相关函数:与动画相关,并且也属于 “Custom” 分类,等分析 “Custom” 分类下的 ...
Global site tag (gtag.js) - Google Analytics