ajaxnet4j
最近两三个月,我在学习 Java。为了在实践中快速进步,我决定把 .NET 中目前应用最广泛的一个 Ajax 类库 Ajax.NET 翻译到 Java 中,目的主要是熟悉 Java 的语法和类库(尤其是 Web 方面 Servlet 相关的知识)。到今天有了一个阶段性的成果,我已经可以像 .NET 中作的那样在脚本中直接调用服务端的简单方法了:
package ajaxnet4j.demo; public class Test { @ajaxnet4j.AjaxMethod public String HelloWorld(String person) { return "Hello, " + person; } }
<script type="text/javascript"> function test() { var name = document.getElementById("txtPerson").value; res = ajaxnet4j.demo.Test.HelloWorld(name); if (res.error == null) { alert(res.value); } else { alert(res.error.Type + ": " + res.error.Message); } } </script>
翻译的过程,接触了 Servlet (相当于 IHttpHandler),Reflect(相当于 Reflection 反射发出),Java 1.5 Annotation(相当于 Attribute)等等,对 C# 和 Java 相比的语法差异,.NET 和 Java 相比的类库映射有了不少认识,对了继续深入的学习 Java 算是一个不错的起点。当然对于 Ajax.NET 的内部构造也了然于心了。收获颇丰。
当然,受制于 Ajax.NET 的 Licence,我还没有办法发布 ajaxnet4j (无论是源码,或是 jar 包),正在向原作者请求,不知道他会不会答应。哎,有可能死在摇篮中啊,那就是遗憾了。