js访问java
‘壹’ 怎么在js调用java方法
如果你是在JSP页面里,在js代码里可以用<% ...java代码....%>
不过不建议混编,最好JS和JAVA代码分开,JS可以通过AJAX调用访问JAVA提供的接口,利于后期维护。
题主的问题回答:
方法1.提供一个servlet ,在servlet中调用getAllEmployees()
方法,把响应的值写入response,修改响应头为application/json,在页面使用ajax访问servlet,最后处理响应值
方法2..提供一个servlet ,在servlet中调用getAllEmployees()
方法,把响应的值存入request作用域,在JSP页面中使用EL表达式获取值
‘贰’ js怎么调用java类
通常处理这种情况都是用ajax(异步请求)来处理,
发一个ajax请求到你的java类中,返回数据看看是否正确再做处理 ajax调用方式
$.ajax({
type: "post", //提交方式
url: "test.action", / /提交的地址(RUL)
data: "name='张三'", //提交的数据库(key-value形式,多个参数用&分割)
dataType: "json", //服务器返回的数据类型
success: function(data){ //执行成功后回调的方法
alert(data);
}
});
使用这个ajax别忘记导入jquery
‘叁’ 如何在Android平台上使用JS直接调用Java方法
Android平台上使用js调用java方法,主要是通过webview控件提供的webview.addJavascriptInterface(newPerson(this),"per"); 这个方法将java对象注入到js中,然后可以在js中通过调用该java对象的方法来实现回调,如下代码:
1.html文件,demo.html
<html>
<head>
<scripttype="text/javascript">
functionupdateHtml(type,type2){
document.getElementById("content").innerHTML=
"弹出对话框,测试"+type+type2;
alert("dialog");
}
</script>
</head>
<body>
这是一个js与android的例子<aonClick="window.ceshi.startFunction()"href="">弹出对话框</a>
调用对象方法<aonClick="per.print()"href="">调用对象方法</a>
<spanid="content"></span>
</body>
</html>
2.android端控制代码:
packagecom.ccb.javascript;
importandroid.app.Activity;
importandroid.app.AlertDialog;
importandroid.content.Context;
importandroid.content.DialogInterface;
importandroid.os.Bundle;
importandroid.util.Log;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.webkit.WebView;
importandroid.widget.Button;
importandroid.widget.Toast;
{
intpriceMenu1=1;
/**.*/
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//获取webView控件
finalWebViewwebview=(WebView)findViewById(R.id.webview);
//加上这句话才能使用javascript方法
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("file:///android_asset/demo.html");
webview.addJavascriptInterface(newPerson(this),"per");
Buttonbutton=(Button)findViewById(R.id.button);//获取button控件
//即"调用html中的js方法"
//按钮
//给button添加事件响应,执行JavaScript的fillContent()方法
button.setOnClickListener(newButton.OnClickListener(){
@Override
publicvoidonClick(Viewv){
webview.loadUrl("javascript:updateHtml('str11','bar22')");//多个参数拼接
}
});
Buttonbutton1=(Button)findViewById(R.id.button1);//获取button1控件
//即"重新加载html"按钮
//给button添加事件响应,执行JavaScript的fillContent()方法
button1.setOnClickListener(newButton.OnClickListener(){
@Override
publicvoidonClick(Viewv){
Log.d("MainActivity","button1OnClick");
webview.loadUrl("file:///android_asset/demo.html");
//return
}
});
//增加接口方法,让html页面调用
webview.addJavascriptInterface(this,"ceshi");
Buttonbuttonceshi=(Button)findViewById(R.id.buttonceshi);
buttonceshi.setOnClickListener(newOnClickListener(){
@Override
publicvoidonClick(Viewv){
}
});
}
publicvoidstartFunction(){
AlertDialog.Builderab=newAlertDialog.Builder(MainActivity.this);
ab.setTitle("提示");
ab.setMessage("通过js调用了java中的方法");
ab.setPositiveButton("确定",newDialogInterface.OnClickListener(){
@Override
publicvoidonClick(DialogInterfacedialog,intwhich){
dialog.dismiss();
}
});
ab.create().show();
}
classPerson{
ContextmContext;
Person(Contextc){
mContext=c;
}
Stringname="我的名字是对象";
intage;
publicStringgetName(){//js里面无法直接使用对象加属性的方式访问,暂时没找到方法,只能用对象加getName
<spanstyle="white-space:pre"></span>returnname;
<spanstyle="white-space:pre"></span>}
publicvoidprint(){
Toast.makeText(mContext,"你好",Toast.LENGTH_LONG).show();
System.out.println("我成功的调用了对象");
}
}
}
运行结果如下:
‘肆’ 如何 js 直接调用 java
使用ajax用js发送异步请求到java进行交互
使用dwr框架,可以实现js和java的直接交互
‘伍’ 怎么实现javascript中调用java类中的方法
为了方便网页和Android应用的交互,Android系统提供了WebView中JavaScript网页脚本调用Java类方法的机制。只要调用addJavascriptInterface方法即可映射一个Java对象到JavaScript对象上。
1、映射Java对象到JavaScript对象上
代码如下:
mWebView = (WebView) findViewById(R.id.wv_content);
mWebView.setVerticalScrollbarOverlay(true);
final WebSettings settings = mWebView.getSettings();
settings.setSupportZoom(true);
//WebView启用Javascript脚本执行
settings.setJavaScriptEnabled(true);
settings.(true);
//映射Java对象到一个名为”js2java“的Javascript对象上
//JavaScript中可以通过"window.js2java"来调用Java对象的方法
mWebView.addJavascriptInterface(new JSInvokeClass(), "js2java");
代码如下:
/**网页Javascript调用接口**/
class JSInvokeClass {
public void back() {
activity.finish();
}
}
2、JavaScript调用Java对象示例
调用上述JSInvokeClass类对象的back方法,如下:
复制代码 代码如下:
window.js2java.back();
‘陆’ js中可以调用java代码吗
js不能直接调用java代码。
可以通过页面提交后台的方式,间接调用后台的服务java代码。
也可以通过ajax的方式,调用后台的服务java代码。
两种方式稍有差别,不过都是前后台的通信交互。
‘柒’ 在js里如何调用java类面的方法
body中部分代码如:<center><font size="4" color="red">吊灯</font> <input type="button" id="diaodeng" value=<%=state[0]%> onclick="dianji1()"><br><br><br><br></center>
script中的的代码如下:
function dianji1(){
var abc=document.getElementById("diaodeng");
if(abc.value=="on"){
abc.value="off";
}
else{
abc.value="on";
}
}
要求是通过点击按钮能够调用java类中的方法从而修改数据库中的内容
或者
$("button").click(function(){
$.post("/foo/usr/11",function(data){
});
});
jquery post方法调用java方法修改数据库
‘捌’ js怎么调用JAVA方法
用ajax的方法.
首先将要调用的类名和方法名作为参数传给某个servlet.这一步的方法有许多种,用框架,或者直接用xmlHttpRequest对象.
另外,要调用的类名和类的完整包路径最好写在配置文件里
这里假设类名为Hello,方法名为sayHello,并且sayHello方法不带参数,类路径为com.demo.Hello
配置文件AjaxConfig.properties
Hello = com.demo.Hello
于是传入的参数为 class=Hello&method=sayHello
在servlet中作如下处理:
String className=request.getParameter("classname");
String methodName=request.getParameter("method");
String classPath=null;
.
读取配置文件,取出className所对应的值放入classPath变量中(这一步方法有很多种,怎么读配置文件,可以网上找资料,很多的,我就不细写了)
.
Class c=Class.forName(classPath);//加载你所指定的类
Class param[]=new Class[0];//方法的参数为0个
Method m=null;
String returnValue=null;//返回值
try {
m = c.getMethod("sayHello",param);//获取你所指定的类中的指定方法
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
returnValue=(String)m.invoke(c.newInstance(), new Object[0]);//调用你所指定的方法
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
最后,将returnValue的值返回给客户端即可
类Hello.java
public class Hello
{
public String sayHello()
{
return "hello";
}
}
不明白的加67919823,我们一起讨论呀
‘玖’ js怎么调用java类的方法
<javascript>
<%
//在这里随便怎么调用java类的方法都可以 ,比如说下面写一个
User u=new User();
User u=new User();
u=u.getuserbyid(1);
%>
//上面我用java代码根据id取得了一个user类的实体 u 下面就可以用js操作显示等等
alert(<%=u.getusername()%>);//在窗口打印一个用户名
</javascript>