怎么实现javascript中调用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方法修改数据库
解决方案二:
这取决于你的运行环境,大致分为如下:1. 如果你js是运行在 java虚拟机之上,那么直接调用就行2. 如果你js运行在浏览器上,可以参考 RPC ,比如 dwr 这种东西说白了就是这种实现的一种3. rmi
解决方案三:
1. 使用DWR框架2. 使用AJAX方式
解决方案四:
这是我自己做的 $.sjw.ajax( { className: "me.jarvis.simplejweb.demo.ajax.DemoAjax", method: "testCall", param: {demoInt: 1, demoString: "s"}, success: function (result) { alert(result.demoDate) } });java类里这么写public class DemoAjax{ private Integer demoInt; private String demoString; private Date demoDate; public void testCall() { //实现代码 } public Integer getDemoInt() { return demoInt; } public String getDemoString() { return demoString; } public Date getDemoDate() { return demoDate; } public void setDemoDate(Date demoDate) { this.demoDate = demoDate; } public void setDemoInt(Integer demoInt) { this.demoInt = demoInt; } public void setDemoString(String demoString) { this.demoString = demoString; }}只要有get的,就会返回到回调函数怎么做自己可以试试,思想就是这样的,代码不到100行
解决方案五:
想在js中直接调用java方法都不可能;我们只能借助js中调用远端服务的方式实现间接使用;有几种比较好的方式:一、通过DWR框架,这个虽也是基于AJAX,但其使用起来感观上感觉直接调用JAVA方法一样;二:使用传统的一些JS框架,如jquery,prototype,moontools等;希望以上这些可以帮助你;
解决方案六:
通过javascript或者js框架提交get或者post请求到java的控制层组件,然后由组件进行分发到对应的处理类,调用对应的方法,也可以通过dwr,直接异步调用对应的java的类的方法
解决方案七:
简单的可采用Jquery的Ajax和JSON,可以参考我的博客文章http://quarterlifeforjava.iteye.com/blog/2024336
解决方案八:
在你的if判断中可以加入ajax的请求。有$.post和$.ajax。比如,你想在等于on的时候去提交请求,并且把on以参数方式提交后台。function dianji1(){ var abc=document.getElementById("diaodeng"); if(abc.value=="on"){ $.ajax({url: '../../', //你的请求路径type: 'POST', //提交方式,用Post即可。data:{diaodeng:"on"}, //提交参数success: function(result){//这里面是处理返回的结果,如果你没有对结果处理的业务可以不写。或者如果,你后台返回的true,那么判断为true,就可以吧value变更为off if(result == 'true'){ abc.value="off"; } } }); } else{ abc.value="on"; } }
解决方案九:
function dianji1(){ var abc=document.getElementById("diaodeng"); if(abc.value=="on"){ abc.value="off"; } else{ abc.value="on"; } } 在你的if判断中可以加入ajax的请求。有$.post和$.ajax。比如,你想在等于on的时候去提交请求,并且把on以参数方式提交后台。$.ajax({url: '../../', //你的请求路径type: 'POST', //提交方式,用Post即可。data:{diaodeng:"on"}, //提交参数success: function(result){} });
解决方案十:
Jquery Ajax后台简单交互$.get(url, params, callback)用GET方式请求装入远程页面返回值:XMLHttpRequest参数:url (String):装入页面的URL地址params (Map):(可选)发送到服务端的键/值对参数callback (Function):(可选)当远程页面装入完成时执行的函数如果您需要带参数只需要$.get("get.html",{参数名称1:"参数1值",参数名称2:"参数2值"},function(data){$("#show").html(data);})$.post(url, params, callback)用HTTP POST方式装入一个远程页面返回值:XMLHttpRequest参数:url (String):装入页面的URL地址params (Map):(可选)发送到服务端的键/值对参数callback (Function):(可选)当数据装入完成时执行的函数范例 Html<script src="js/jquery-1.4.4.min.js" type="text/javascript"></script><script type="text/javascript"> function info(){ $.ajax({ type:"POST", url:"UserPort/Default.aspx", data:{Name:$("#txtUserName").val(),Pwd:$("#txtPwd").val()}, beforeSend:function(){$("#message").html("载入中…");}, success:function(data){ $("#message").html(decodeURI(data)); } }); }</script><div> 账号:<input type="text" id="txtUserName" /><br /> 密码:<input type="text" id="txtPwd" /><br /> <input type="button" value="获取" onblur="info();" /><br /> <label id="message"> </label></div> Default.aspx.csusing System;public partial class UserPort : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { System.Threading.Thread.Sleep(2000); Response.Write("账号: " + Request["UserName"] + ",密码:"+Request["Pwd"]+"(来源于服务器端)"); }}
解决方案十一:
一般这种设计是 ajax 实现的,你可以参考jquery 的ajax
解决方案十二:
调用不了,一个在客户端一个在服务器怎么调用,只能请求服务器去执行,请求的方式正如楼下们的回答
解决方案十三:
function createXMLHttp() { var XmlHttp; if (window.ActiveXObject) { var arr=["MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"]; for(var i=0;i<arr.length;i++) { try { XmlHttp = new ActiveXObject(arr[i]); return XmlHttp; } catch(error) { } } } else { try { XmlHttp=new XMLHttpRequest(); return XmlHttp; } catch(otherError) { } } } function xmlPost() { var xmlHttp = createXMLHttp(); var url= 你的Action地址 xmlHttp.open('GET',url,true);   xmlHttp.onreadystatechange = function() {   if(xmlHttp.readyState == 4 && xmlHttp.status == 200) { var result = xmlHttp.responseText; if (result && result.length > 0){ result = result.split(','); var left; for (var i=0; i<result.length; i++){ left = document.getElementById('left_' + result[i].split(':')[0]); if (left){ left.innerHTML = result[i].split(':')[1]; } } } } } xmlHttp.send(''); }
解决方案十四:
楼下的赞同,同意的你也可以用Ajax,或者直接$("button").click(function(){ //直接跳转 window,location.href='进入的action地址,在action里面进行数据操作,以及去service或者dao层去修改数据';});

时间: 2024-10-25 07:41:02

怎么实现javascript中调用java类中的方法的相关文章

在JavaScript中调用Java类和接口的方法_javascript技巧

前言 本文中所有的代码使用 JavaScript 编写,但你也可以用其他兼容 JSR 223 的脚本语言.这些例子可作为脚本文件也可以在交互式 Shell 中一次运行一个语句的方式来运行.在 JavaScript 中访问对象的属性和方法的语法与 Java 语言相同. 本文包含如下几部分: 1.访问 Java 类 为了在 JavaScript 中访问原生类型或者引用 Java 类型,可以调用 Java.type() 函数,该函数根据传入的完整类名返回对应对象的类型.下面代码显示如何获取不同的对象类

实用技巧:PHP中调用Java类的两种方法

Java语言功能强大,因此在许多情况下在php中来调用Java的功能将十分有用.在php中调用Java语言有两种方法,一种是使用php中的Java扩展模块,另一种是使用minij2ee应用服务器提供的SJOP协议实现.下面我们来比较一下这两种方法各自的特点. 1.php的Java模块 php发布版中包含一个Java扩展模块,可以用来调用Java对象,例如: <?php$system=new Java("java.lang.System");print "Java ver

JSP中调用java类,系统找不到指定文件

问题描述 JSP页面中调用后台的java类,java类中想读取某个路径的文件,但是系统提示找不到指定的路径我大概知道估计是Web页面通过tomcat服务器后路径问题但不知道怎么解决而且调用的这个java类是个普通类不是servlet,不用request希望高手帮小弟解决一下JSP:<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%&

jsp中调用Java文件中的方法,status显示200通了,但是一直打不出日志,也查不出数据,求帮助

问题描述 下面是Java文件:packagecom.xsm.home.screen.onlinepay;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.Iterator;importjava.util.List;importjava.util.Map;importorg.apache.commons.logging.Log;importorg.apache.commons.logging.LogFactory;i

SQL Server中调用C#类中的方法实例(使用.NET程序集)_MsSql

需求是这样的,我在.net程序里操作数据时将一些字段数据加密了,这些数据是很多系统共用的,其中一delphi程序也需要用到,并且需要将数据解密,由于我在.net里加密的方式比较特殊,在delphi程序里解密比较繁琐且要消耗很多时间,所以不得不让sqlserver调用程序集的方式来解决问题. 下面只是一个例子,贴出来共享. 建立一个dll,class,代码如下: 复制代码 代码如下: namespace MyDll {     public partial class MyClass     {

SQL Server中调用C#类中的方法实例(使用.NET程序集)

需求是这样的,我在.net程序里操作数据时将一些字段数据加密了,这些数据是很多系统共用的,其中一delphi程序也需要用到,并且需要将数据解密,由于我在.net里加密的方式比较特殊,在delphi程序里解密比较繁琐且要消耗很多时间,所以不得不让sqlserver调用程序集的方式来解决问题. 下面只是一个例子,贴出来共享. 建立一个dll,class,代码如下: 复制代码 代码如下: namespace MyDll {     public partial class MyClass     {

在asp/asp.net中调用java写的类

asp.net|asp.net 在开发过程中偶尔会遇到要在ASP/ASP.Net中调用JAVA写的类,以实现之前已经用JAVA实现的功能,下面就以一个简单示例说明详细的使用方法: 1.创建java文件:使用任何你喜欢的编辑器编辑以下内容:public class hello{ public String helloWorld(String s) { if(s == null) return ""; else return s; }}将此文件保存为hello.java 2.编译java文

java类中方法调用问题

问题描述 java类中方法调用问题 import java.awt.*;import javax.swing.*;import java.awt.event.*; public class TestTextComponent extends JFrame { private JTextField textField = new JTextField(15); private JPasswordField passwordField = new JPasswordField(15); privat

内部类-Java编程中A类如何调用B类中M方法里的C类的实例?

问题描述 Java编程中A类如何调用B类中M方法里的C类的实例? import java.awt.*; import java.awt.event.*; public class TestListener{ public static void main(String[] args){ Counter c1 = new Counter("Hello"); c1.CreatButton(); c1.add(c1.button); ----------------------------(