当js运行在java上,会有那些令人惊喜的表现呢!
2016-05-06 09:48
453 查看
从事JAVA开发3年了,对java的了解算不上很深入!期间也接触了其他的语言,包括php,Nodejs,Expressjs等语言,让我感触比较深的就是变量的定义,在java中,字符串要用String a;数字要用 int a;小数用 float a; 或者double a; 而php中$a即可定义所有类型的变量,Nodejs和Expressjs中使用var a即可定义所有类型的变量,这里你可能说了java更严谨,而且java也能使用Object a来定义所有变量啊!在java中我相信对于定义一个数字int a=4;而没有人写成Object a =4。
如果js跑在java上?
1.变量定义可以var a来统一所有的对象和变量的定义规则
2.对象声明变成 var b = {name:”zhangsan”,age:14};
3.当js代码发生改变的时候,代码能立马被解释执行,而不用再重新编译java类
4.可以使用函数式对象 var c = function(){ return d;}
5.js可调用java类方法或属性
6.如何使用的是NoSQL数据库可直接对 对象操作!
下面来说说如何让js跑在java上
1.让java可以解释js —–>rhino这个东西可以来解释js
2.JAVA基础调用代码如下
下面让js来实现java web工程的基础框架实现
目录结构如下
当用户访问 http://localhost:8080/xxx/js/index的时候 JsAction会把请求转发到WEB-INF下的index.js文件
JsAction代码如下
index.js代码如下
是不是挺有意思呢?你也来试试吧!
原创:http://blog.csdn.net/qilin001cs
jsframe启蒙源码:
http://pan.baidu.com/s/1slI3AbF
如果js跑在java上?
1.变量定义可以var a来统一所有的对象和变量的定义规则
2.对象声明变成 var b = {name:”zhangsan”,age:14};
3.当js代码发生改变的时候,代码能立马被解释执行,而不用再重新编译java类
4.可以使用函数式对象 var c = function(){ return d;}
5.js可调用java类方法或属性
6.如何使用的是NoSQL数据库可直接对 对象操作!
下面来说说如何让js跑在java上
1.让java可以解释js —–>rhino这个东西可以来解释js
2.JAVA基础调用代码如下
public static void main(String args[]){ ScriptEngine js = new ScriptEngineManager().getEngineByName("javascript"); Bindings bindings= js.getBindings(ScriptContext.ENGINE_SCOPE); bindings.put("java_out", System.out); js.eval("var a='hello';java_out.println(a);"); }
下面让js来实现java web工程的基础框架实现
目录结构如下
当用户访问 http://localhost:8080/xxx/js/index的时候 JsAction会把请求转发到WEB-INF下的index.js文件
JsAction代码如下
public class JsAction extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ScriptEngine js = new ScriptEngineManager().getEngineByName("javascript"); Bindings bindings= js.getBindings(ScriptContext.ENGINE_SCOPE); bindings.put("java_out", System.out); bindings.put("java_request", request); bindings.put("java_response", response); BaseDao dao = new BaseDao(); bindings.put("java_dao", dao); Extension ext = new Extension(request,response,js); bindings.put("java_ext", ext); loadjs(request, js); } private void loadjs(HttpServletRequest request,ScriptEngine js){ try { String path = request.getSession().getServletContext().getRealPath("/"); //获取系统路径 String f = request.getRequestURI().replace(request.getContextPath(), "")+".js"; System.err.println("request -> "+f); js.eval(new BufferedReader(new InputStreamReader(new FileInputStream(new File(path+"WEB-INF/"+f)),"utf-8"))); } catch (Exception e) { System.err.println(e.getMessage()); } } }
index.js代码如下
java_ext.include("js/config.js"); //json var obj ={name:"zhangsan",age:"21",sex:"男"}; java_out.println(obj.age); //put or get java_ext.put("sex",obj.sex); java_out.println(java_ext.get("sex")); //db op //demo1 var list=java_dao.query("select * from vip limit 0,10",[]); var map = list.get(0); java_out.println(map.get("address")); //demo2 var listcount = java_dao.query("select count(*) as c from vip",[]); var count = listcount.get(0).get("c"); java_out.println(count); //demo3 var id=java_dao.execute("insert into test2 (code) values (?)",["nihao"]); java_out.println(id); //demo4 var bool = java_dao.transaction(["insert into test2 (code) values ('zhangsan')","insert into test2 (code) values ('lisi')"]) java_out.println(bool); //go to tpl java_ext.load("../tpl/index.jsp");
是不是挺有意思呢?你也来试试吧!
原创:http://blog.csdn.net/qilin001cs
jsframe启蒙源码:
http://pan.baidu.com/s/1slI3AbF
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树