可以通过页面提交后台的方式,间接调用后台的服务java代码。
也可以通过ajax的方式,调用后台的服务java代码。
两种方式稍有差别,不过都是前后台的通信交互。
package p1import java.util.Arrays
import java.util.LinkedList
public class Guy
{
public static void recursionSub ( LinkedList<int[]>list, int count, int[] array, int ind, int start, int... indexs )
{
start++
if (start >count - 1)
{
return
}
if (start == 0)
{
indexs = new int[array.length]
}
for ( indexs[start] = indindexs[start] <array.lengthindexs[start]++ )
{
recursionSub (list, count, array, indexs[start] + 1, start, indexs)
if (start == count - 1)
{
int[] temp = new int[count]
for ( int i = count - 1i >= 0i-- )
{
temp[start - i] = array[indexs[start - i]]
}
list.add (temp)
}
}
}
public static void main ( String[] args )
{
int[] array = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }
LinkedList<int[]>list = new LinkedList<int[]>()
recursionSub (list, 3, array, 0, -1)
for ( int[] strings : list )
{
System.out.println (Arrays.toString (strings))
}
}
}
要在java中执行js代码,首先明白,java不支持浏览器本身的方法。支持自定义的js方法,否则会报错
先新建一个js文件:jsss.js
内容如下:
function aa(a,b){ return a+b
}
然后在java中写代码:
public class ZipTest {
public static void main(String[] args) throws Exception {
ScriptEngineManager manager = new ScriptEngineManager()
ScriptEngine engine = manager.getEngineByName("js")
String jsFileName="G:\\javaPro\\zmwmcc\\WebRoot\\jsss.js"
FileReader reader = new FileReader(jsFileName) // 执行指定脚本 engine.eval(reader)
if(engine instanceof Invocable) {
Invocable invoke = (Invocable)engine // 调用merge方法,并传入两个参数
Double c = (Double)invoke.invokeFunction("aa", 2, 3)//调用了js的aa方法
System.out.println(c)
}
// engine.eval("alert(\"js alert\")") // 不能调用浏览器中定义的js函数 // 错误,会抛出alert引用不 }
}