js 不应该负责加密解码,
应该只负责传递数据,可以传递加密前的,也可以传递加密后的
加密解码的工作都应该放在服务端来处理
js与java是不同语言,运行在不同环境下,所以呢无法直接获得对方数据.
java运行在服务器端,在同一个jsp文件中,java先运行,js后运行,java可以生成一段js代码,保证js运行得到相应的结果,所以呢可以用java定义js变量的方式来传递数据,例如:
script
var url="%=url%";
alert(username);
/script
上面例子,%%中的内容会在服务器端运行,在""中间输出网址,浏览器就会加载下面的结果:
alert(url);
这部分就是标准的js代码了.
在Java中直接调用js代码
不能调用浏览器中定义的js函数,会抛出异常提示ReferenceError: "alert" is not defined.
package com.sinaapp.manjushri;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException; /** * 直接调用js代码 */
public class ScriptEngineTest {
public static void main(String[] args) {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
try{
// engine.eval("alert(\"js alert\");"); // 不能调用浏览器中定义的js函数 // 错误,会抛出alert引用不存在的异常
}catch(ScriptException e){
e.printStackTrace();
}
Java 代码如下:
%
// 得到要转换的数组---当然这里也可以是其他类型的数组
List jsList = (List) request.getAttribute("gczbh");
JS 代码如下:
script type="text/JavaScript"
function initPages()
{
var codes = new Array();
// 将JAVA中的数组转换成JS 的数组
if(jsList!=null)
for(int i=0;ijsList.size();i++)
codes[%=i%]='%=jsList.get(i)%';
% }
就在function里面写就可以,js中只能指定动作,具体显示还得让jsp页面来做.
以上就是土嘎嘎小编为大家整理的java代码转js代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!