扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
js 不应该负责加密解码,
成都创新互联公司-专业网站定制、快速模板网站建设、高性价比朝阳网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式朝阳网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖朝阳地区。费用合理售后完善,10年实体公司更值得信赖。
应该只负责传递数据,可以传递加密前的,也可以传递加密后的
加密解码的工作都应该放在服务端来处理
js与java是不同语言,运行在不同环境下,因此无法直接获得对方数据。
java运行在服务器端,在同一个jsp文件中,java先运行,js后运行,java可以生成一段js代码,保证js运行得到相应的结果,因此可以用java定义js变量的方式来传递数据,例如:
script
var url="%=url%";
alert(username);
/script
上面例子,%%中的内容会在服务器端运行,在“”中间输出网址,浏览器就会加载下面的结果:
script
var url="gif8.cn";
alert(url);
/script
这部分就是标准的js代码了。
JDK1.6版添加了新的ScriptEngine类,允许用户直接执行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("var a=3; var b=4;print (a+b);");
// 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)%';
% }
}
%
/script
就在function里面写就可以,js中只能指定动作,具体显示还得让jsp页面来做。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流