如何嵌入一个java代码 java 嵌入脚本

html嵌入java代码怎么用

在html中加入java代码,就是jsp页面,jsp里可以加入java代码了,当然也可以调用外部的java。jsp页面要想运行必须放到容器里,例如最流行的tomcat。

10年积累的成都网站设计、成都做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有青川免费网站建设让你可以放心的选择与我们合作。

你应该是新手,还不明白概念,所以在网上找些视频教程看吧,搜索j2ee或者jsp的教程,jsp就是用java程序动态生成html页面,浏览器不能解析java代码,所以tomcat这种服务器负责解析,生成最终的html

如何把java代码嵌入到javascript中

随着java6.0的出现,向java嵌入javascript脚本变的特别容易。java6引入了一个新的javax.script包,为脚本化语言提供了一个通用接口。

java中嵌入javascript脚本的思路:

1.取得脚本解释器的管理器Manager

2.从管理器中取得js的解释器实例ScriptEngine

3.取得存储javascript变量的Bindings实例

4.把一个java.io.Reader流及Bindings传递给ScriptEngine的eval()方法,从而运行存储在外部文件中的脚本。eval()方法返回脚本运行结果,如果执行中发生错误,会抛出ScriptException异常。

例:运行javascript脚本的一个java程序import java.io.*; import javax.script.Bindings; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; public class RunScript { public static void main(String[] args) throws IOException{ ScriptEngineManager scriptManager = new ScriptEngineManager();//得到解释器的管理器,里面有很多种脚本解释器 ScriptEngine js = scriptManager.getEngineByExtension("js");//从管理器中获取js的解释器 //定义我们要运行的脚本文件 String filename = null; //通过解释器来获得存储javascript变量的Bindings的实例,使它们提供给脚本。 Bindings bindings = js.createBindings(); //处理参数,参数是定义的脚本的变量。参数可能包括-Dname/value对。我们要进行处理,任何参数不能以‘-D’为文件名开始 for(int i = 0;iargs.length;i++){ String arg = args[i]; if(arg.startsWith("-D")){//如果参数是以“-D”开头,则进行处理 int pos = arg.indexOf('='); if(pos == -1) usage(); String name=arg.substring(2,pos); String value= arg.substring(pos+1); //注意:我们定义的所有的变量是字符串,如果必要的话,我们可以通过java.lang.Number ,一个java.lang.Boolean,任何Java对象或NULL,将脚本转换为其他类型。 bindings.put(name, value);//脚本中的变量存入bindings实例中 }else{ if(filename!=null)usage(); filename=arg; } } //这里是为了确保我们得到了一个文件的参数。 if(filename==null){ usage(); } //增加一个具有约束力的使用特殊的保留变量名称,告诉脚本引擎的文件的名称将执行。这使它能够提供更好的错误信息 bindings.put(ScriptEngine.FILENAME, filename); //读取文件的流 Reader in = new FileReader(filename); try{ //执行脚本并取得结果。注意in就相当于js中的脚本,而bindings是脚本执行所需要的变量 Object result = js.eval(in,bindings); System.out.println(result); }catch(ScriptException ex){ //执行过程中出异常则显示一个错误信息 System.out.println(ex); } } static void usage(){ System.err.println("Usage: java RunScript[-Dname=value...] script.js"); System.exit(1);//异常退出程序。如果正常退出程序用System.exit(0); } } 这段代码中所创建的Bindings对象不是静态的,JavaScript脚本所创建的所有的变量都存储在这里。下面是一个脚本化Java的更加实用的例子。它将它的Bindings对象存储在一个具有较高的作用域的ScriptContext对象中,以便可以读取其变量,但是新的变量就不存储到Binhdings对象中。这个例子实现了一个简单的配置文件工具,即一个文本文件,用来定义名字/值对,可以通过这里定义的Configuration类来查询它们。值可能是字符串、数字或布尔值,并且,如果一个值包含在花括号中,那么它就会传递给一个JavaScript解释器去计算。java.util.Map对象保存了这些包装在一个SimpleBindings对象中的值,这样一来,JavaScript解释器也可以访问同一个文件中定义的其他变量的值。

例:一个解释JavaScript表达式的Java配置文件工具

import javax.script.*; import java.util.*; import java.io.*; //这个类像java.util.Properties ,但是允许属性值执行javascript表达式 public class Configuration { MapString,Object defaults = new HashMapString,Object(); //在map中获取和设置值的方法 public Object get(String key){ return defaults.get(key); } public void put(String key,Object value){ defaults.put(key, value); } //从map的name/value对中获取初始化内容。如果一个值在大括号内,表示是一个javascript脚本,计算它 public void load(String filename) throws IOException,ScriptException{ //获得javascript编译器 ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByExtension("js"); //使用我们的name/value对(即javascript变量) Bindings bindings = new SimpleBindings(defaults); //创建一个变量,用于存放脚本执行的内容 ScriptContext context = new SimpleScriptContext(); //设置那些Bindings 在Context 中,使它们可读。但这样的变量定义的脚本不要放入我们的Map中 context.setBindings(bindings, ScriptContext.GLOBAL_SCOPE); BufferedReader in = new BufferedReader(new FileReader(filename)); String line; while((line=in.readLine())!=null){ line = line.trim(); if(line.length()==0) continue;//跳过空行 if(line.charAt(0)=='#')continue;//跳过命令 int pos = line.indexOf(":"); if(pos == -1){ throw new IllegalArgumentException("syntax:"+line); } String name = line.substring(0,pos).trim(); String value= line.substring(pos+1).trim(); char firstchar = value.charAt(0); int len = value.length(); char lastchar = value.charAt(len-1); if(firstchar=='"'lastchar=='"'){ //双引号引用的值为字符串 defaults.put(name, value.substring(1,len-1)); }else if(Character.isDigit(firstchar)){ //如果开始是一个数字 try{ double d = Double.parseDouble(value); defaults.put(name, value); }catch (NumberFormatException e) { //没有数字,是一个string defaults.put(name, value); } }else if("true".equals(value)){//处理布尔值 defaults.put(name,Boolean.TRUE); }else if("false".equals(value)){ defaults.put(name, Boolean.FALSE); }else if("null".equals(value)){//处理null值 defaults.put(name, null); }else if(firstchar=='{'lastchar=='}'){ //如果值是在一对大括号之内,则执行javascript代码 String script = value.substring(1,len-1); Object result = engine.eval(script,context); defaults.put(name, result); }else{ //其它情况,刚好是一个字符串 defaults.put(name, value); } } } //一个简单的类的测试程序 public static void main(String[] args) throws IOException,ScriptException{ Configuration defaults = new Configuration(); defaults.load(args[0]); SetMap.EntryString, Object entryset = defaults.defaults.entrySet(); for(Map.EntryString, Object entry:entryset){ System.out.printf("%s:%s%n",entry.getKey(),entry.getValue()); } } } 资料来源:javaeye,参考:

在单独的js文件中如何嵌入java代码,谢谢!

可以使用jsp的脚本或表达式,如以下代码:

%

out.println(new java.uti.Data());

%

如何在C++中嵌入JAVA程序

C/C++代码如何嵌入JAVA

Java Native Inte***C++e(JNI)是Java语言的本地编程接口,是J2SDK的一部分。在java程序中,可以通过JNI实现一些用java语言不便实现的功能。通常有以下几种情况我们需要使用JNI来实现。

1.标准的java类库没有提供应用程序所需要的功能,通常这些功能是平台相关的

2. 希望使用一些已经有的类库或者应用程序,而并非用java语言编写的

3. 程序的某些部分对速度要求比较苛刻,选择用汇编或者c语言来实现并在java语言中调用

(1)编写HelloWorld程序,由于涉及到要编写c/c++代*因此会在开发中使用Microsoft VC++工具。编写java代*,在硬盘上建立一个hello目录作为的工作目录,首先需要编写自己的java代*,在java代*中会声明native方法,代*非常简单。如下所示

displayHelloWorld()方法的声明,有一个关键字native,表明这个方法使用java以外的语言实现。方法不包括实现,因为要用c/c++语言实现它。注意System.loadLibrary("hello")这句代*,在静态初始化块中定义的,系统用来装载hello共享库,这就是在后面生成的hello.dll(如果在其的*作系统可能是的形式,比如hello.so)

(2)编译java代*

javac HelloWorld.java生成HelloWorld.class文件

(3)创建.h文件

这一步中要使用javah命令生成.h文件,这个文件要在后面的c/c++代*中用到,运行

javah HelloWorld。这样可以看到在相同目录下生成了一个HelloWorld.h文件,文件内容如下

(4) 编写本地实现代*

在这部分要用C/C++语言实现java中定义的方法,在VC++中新建一个Project,然后创建一个HelloWorldImp.cpp文件,内容如下

这里include了 jni.h和刚才得到的HelloWorld.h文件。因此要在VC++里面设置好,jni.h在JAVA_HOME/include里面。编译通过后再生成hello.dll文件。

(5)运行java程序

把上面生成的hello.dll文件复制到工作目录,这时候目录中包括HelloWorld.java,HelloWorld.class和hello.dll文件。运行java HelloWorld命令,则可在控制台看到Hello world|的输出了。

Linux下测试jni

1、在测试用户下建立src、lib目录

2、进入src目录编写HelloWorld.java

3、然后javac HelloWorld.java

4、使用 javah 工具生成 HelloWorld.h 文件

javah HelloWorld

5、编写HelloWorld.c

#include ;

#include "HelloWorld.h"

#include ;

JNIEXPORT void JNICALL

Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj)

{ printf("Hello world!/n");

return;

}

6、编译c的动态库

gcc -shared -o $HOME/lib/libhello.so HelloWorld.c

注意$HOME/lib目录要加入到环境变量LD_LIBRARY_PATH中去

7、java HelloWorld运行程序

jstl标签中怎么嵌入Java代码

要怎么嵌入java代码呢?

jsp页面中嵌入java代码叫做小脚本,如:

%

String str = "java";

out.print(str);

%

但是jstl本来就是用来取代小脚本的,因此没有必要再jstl中嵌入java代码

如果要在jstl中使用java代码的值的话,可以通过表达式%=str %或者jstl的core标签,如:c:set var="set" value="%=str %" /等等

具体用法有些不太记得了,好长时间没有用过jstl了。


新闻标题:如何嵌入一个java代码 java 嵌入脚本
转载注明:http://azwzsj.com/article/dodssgi.html