⑴ 如何在java中调用js方法
在Java中调用js文件中的function,传入调用参数,并获取返回值
js文件中的merge函数将两个参数a,b相加,并返回c。
// expression.js
function merge(a, b) {
c = a * b;
return c;
}
在Java代码中读取js文件,并参数两个参数,然后回去返回值。
package com.sinaapp.manjushri;
import java.io.FileReader;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
/** * Java调用并执行js文件,传递参数,并活动返回值 * * @author manjushri */
public class ScriptEngineTest {
public static void main(String[] args) throws Exception {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
String jsFileName = "expression.js"; // 读取js文件
FileReader reader = new FileReader(jsFileName); // 执行指定脚本
engine.eval(reader);
if(engine instanceof Invocable) {
Invocable invoke = (Invocable)engine; // 调用merge方法,并传入两个参数
// c = merge(2, 3);
Double c = (Double)invoke.invokeFunction("merge", 2, 3);
System.out.println("c = " + c);
}
reader.close();
}
}
输出结果:
c = 5.0
⑵ JAVA代码中如何调用js
如果是jsp的话直接在out.print()中写就可以了,如果在applet和application中可以用外部调用的方式调用,Runtime rn=Runtime.getRuntime(); Process p=null; rn.exec("xx.js")但是这样不是很安全.
⑶ java怎样调用js
首先java和js是完全两码事
两个的运行是不相干的
java是后台程序 运行在服务器上 而js则是生存在客户端浏览器(如ie)
只能是js间接调用java
过程是:js在客户端浏览器上运行,然后js让浏览器发送请求到服务器,然后服务器上的中间件(如tomcat)来把浏览器的请求(httpRequest)转交给java程序来处理。 典型的例子就是用js执行submit()提交表单到服务器和js生成ajax对象然后通过ajax对象把信息发送给服务器。 即js借助浏览器来达到间接调用后台java程序的功能。
反过来就不行了
由于http协议是无状态的,不像java与数据库那样有保持着的连接,数据库是知道当前有谁再连接着自己的,而java程序所在的服务器是无法直接沟通客户端浏览器的,他压根就不知道客户端在哪,也因此无法去和运行在客户端的js联系。
你如果想调用这个EncodePwd(uin,psw), 只能是在客户端浏览器上触发这个方法(例如提交按钮)然后把信息发送到服务器端。
其实还有一种技术,即“服务器推送”,这个大概可以实现你的想法,这是个新兴技术,用于由服务器直接把数据发送给客户端,而不需要客户端不停的用ajax来访问服务器。但是我想这个应该不是你想要的东西。
⑷ java怎么调用js里的变量
java代码是后台的,在服务器端执行;js是前端的,在浏览器里执行。。。他们不会在一起。。如果用jsp的话,直接里套上就行了
⑸ java如何调用js里的变量
2种方法:
1、用一个隐藏的<input type="hidden" name="isNecessary" />,先将JS变量的值赋给input,然后在java里面用request.getParameter(" isNecessary");
此法为传说中的post方法。
2、通过链接的方式,即后面加问号的方式:
var isNecessary="aaa";
var URL='<%=request.getContextPath()%>/action/xx.do isNecessary='+isNecessary;
//这里假设JS里面的变量的值是isNecessary。
然后用window.location.href=URL;
JAVA里面依然用request.getParameter(" isNecessary")调用。
⑹ jsp的java代码部分怎么直接调用js代码中定义的变量
ScriptEngine 这个类可以直接执行js,但不能调用jsp中已定义好的js
⑺ jsp 中java代码怎么直接获取js里的变量
jsp里的java代码是在服务器上执行的,而js是在客户端执行的。执行顺序是先进行java执行后发给客户端再运行js,所以同一个页面里的java代码是获取不到js变量的,那个时候js都还没执行,js内存都没分配呢,就不会js变量的。
⑻ java里面怎样使用js的变量
通过<%=java变量%>的方式赋值给js变量。
1、定义一个java变量
<% String a = "222";//定义一个string类型的java变量%>
2、输出给js
var k = <%=a%>;输出变量值给k,这是的k是222
补充:
<% %> 标识里面的是jsp代码,可以定义java变量<%=变量 %> 输出java变量信息
⑼ js怎么引用JSP里定义的JAVA变量
可以将JAVA变量在JSP头部定义成全局变量。
然后可以分别在JS和JSP里调用。
因为可以将JS和JSP理解为两个相互独立的块。这2个块里面的变量都是局部变量。而局部变量是不共享的。
首先很基础的:JS可以直接引用JAVA变量,但JAVA不能引用JS变量。因为页面是先编译JAVA再编译JS,代码如下:
String tbname="bd_bank";
out.write("<SCRIPT language="+"'"+"JavaScript"+"'"+">var tbname="+"'"+tbname+"'"+";</SCRIPT>");
%>
//下面的javascipt可以直接调用变量tbname
<script language="javascript">
alert(tbname);
</script>
//在js文件中的javascipt一样可以直接使用变量 tbname 啊。
<script language="JavaScript" src="../comm/dbgrid.js"></script>
反正两个原则记好:
1、jsp代码中可以构造javascipt语句,当然包括定义备用的javascipt的变量
2、理论上在整个页面中,任何一个地方定义的javascript代码都可以被正确使用。javascipt代码对位置不敏感。
⑽ java 调用 js函数
function是属于javascript里面的语法,而<%%>里面调用的是java的语法,所以想要用<%%>调用alert()是不行了,因为他们不是同一个东西。
不知道你的意思是不是页面一加载就进行调用alert(),如果是这样的话,建议使用onload事件,表示页面加载的时候调用alert();
或者如果是点击的时候调用,那么久调用onclick()..总而言之可以使用事件完成。