如何在JSP页面中的Java代码和JavaScript代码中通信- -

 

     javascript是用于html环境的研发语言,提供了能够响应web页面事件的脚本,能够完全访问浏览器窗口的各个方面,善于合并html、java applet小程式、插入件、服务器方程式和其他web组件,形成完全集成的web应用程式。而java是功能强大的著名研发语言,能够支持web应用程式的研发,用于研发高级web对象,并提供实现嵌入web页面的可执行内容,具备更强的编程功能,能够作为javascript功能的良好补充,只但是这些功能被限制在有限的浏览器窗口区中。 java和javascript能够互相补充,以研发功能更完美的web应用程式。本文归纳了笔者编程中曾使用过的,涉及到有关javascript和java、java applet小程式之间互访的问题的一些方法,仅供参考。 一、从javascript中访问java方法 在html脚本中能够用javascript直接调用java中的方法,只需要在调用语句前用“java.lang.”加以表示即可。具体语句用法如下例所示: java.lang.system.out.println(“hello!”) 但此种方法只适用于netscape navigator,一般不提倡在web应用程式中使用。 二、从javascript中访问java applet小程式中的方法和变量 通过javascript提供的applet对象,javascript代码能够访问java的变量和方法,具体步骤和用法示例如下。需要注意的是,javascript提供的applet对象具备name属性,而没有方法和事件处理器。 步骤: 1) 将要访问的java applet小程式的方法和变量声明为public,且必须在public类中声明; 2) java applet小程式要先装入才能访问,尽管applet对象没有定义onload事件,但能够在html文档的〈body〉标志中,指定使用window对象的onload事件处理器; 3) java applet小程式能够用javascript的applet对象来访问。 示例: “mytest.htm” <html> <head> <script language="javascript"> function accessapplet() { settimeout("changetext(i like javascript!)",1000); settimeout("changetext(i like javascript and java!)",2000); settimeout("changetext(i like java!)",3000); settimeout("accessapplet()",4000); } function changetext(s) { window.document.testtext.settext(s) //此处调用javaapplet小程式的settext()方法 //注意,小程式的名字必须为〈applet〉标志 name属性所标识 } </script> </head> <body οnlοad="accessapplet()"> //通过调用accessapplet()装入小程式 <applet code="testtext.class" name="testtext" width=450 height=150> </applet> </body> </html> “testtext.java” import java.applet.*; …… public class testtext extends applet { …… public void settext(string s) //settext()必须声明为“public” { text=s; repaint(); } } 三、在java applet小程式中使用javascript live connect提供了java和javascript的接口,能够允许在java applet小程式中使用javascript。具体步骤如下: 1) 在html脚本中使用〈applet〉标志的mayscript属性,以允许java applet小程式访问脚本; 2) 将netscape. javascript包导入java applet小程式; 3) 在java applet小程式中用jsobject类的getwindow( )方法创建javascript窗口的句柄; 4) 在java applet小程式中用jsobject类的getmember( )方法访问javascript对象; 5) 在java applet小程式中用jsobject类的eval( )方法调用javascript方法。 示例: “readform. java” import netscape.javascript.jsobject; import netscape.javascript.jsexception; //可允许在小程式中处理异常事件 …… win=jsobject.getwindow(this); // 获取javascript窗口句柄,引用当前文档窗口 doc=(jsobject)win.getmember("document"); // 访问javascript对象 form=(jsobject)doc.getmember("textform"); textfield=(jsobject)form.getmember("textfield"); text=(string) textfield.getmember("value"); //获取文本区的值 …… win.eval("alert(/"this alert comes from java!/")"); // 调用javascript的alert()方法 …… “user.htm” …… <body> <form name="textform"> <p>enter text and then click display text: <input type="text" name="textfield" size="20"></p> </form> <applet code="readform.class" width=200 height=100 name="readapp" mayscript> //必须使用mayscript属性标志 </applet> </body>

 

 

 

 

 

如何在JSP页面中的Java代码和JavaScript代码中通信- -

                                      

 

本人初学JSP及网络编程。现有一个菜鸟问题请教:  
用JSP做一个数据库表的著录界面,其中有两个字段的内容是根据另一个字段的内容自动生成的,想请问各位如何实现,最好有具体步骤。  
初步想是用javascript中的onChange事件函数,但如何让javascript代码与JSP中的java代码共用一个变量呢?请教各位。  
---------------------------------------------------------------  
 
你只需要在提交时候触发一个事件,根据输入的两个字段,生成第三个字段就可以了。你实现newParam()方法,生成一个新的字段。  
<html>  
<head>  
     <title>Login</title>  
 
<script  language="JavaScript">  
 
   function  giveFocus()  {  
       document.login.user.focus()  
   }  
 
   function  submitForm()  {  
       newParam()  
       document.login.submit()  
   }  
 
   function  resetForm()  {  
       document.login.reset()  
       document.login.user.focus()  
   }  
   function  newParam(){  
       var  para1  =  document.login.user.value;  
       var  para2  =  document.login.password.value;  
       var  para3  =  para1+para2;  
       document.login.newParam.value  =  para3;  
}  
</script>  
</head>  
 
<body  bgcolor="#c0c0c0"  link="#999999"    
     vlink="#999999"  alink="#999999"  onLoad="giveFocus()">  
<center>  
<font  size=+2>  
<BR>  
<BR>  
<B>LOGIN</B>  
</font>  
<br>  
<br>  
<br>  
<br>  
<FORM  NAME="login"  METHOD=POST  ACTION="*.jsp">  
<TABLE  WIDTH="50%">  
<TR>  
<TD  align=right>  
<font  size=+1>  
<B>  
User  ID:  
</B>  
</font>  
</TD>  
<TD>  
<font  size=+1><INPUT  NAME="user"  TYPE="TEXT"  LENGTH="9"  MAXLENGTH="9">  
</font>  
</TD>  
</TR>  
<TR>  
<TD  align=right>  
<font  size=+1>  
<B>  
Password:  
</B>  
</font>  
</TD>  
<TD>  
<font  size=+1><INPUT  NAME="password"  TYPE="PASSWORD"  LENGTH="8"  MAXLENGTH="8">  
</font>  
</TD>  
</TR>  
</TABLE>  
<BR>  
<BR>  
<BR>  
<font  size=+1>  
<b>  
<input  type="hidden"  name="newParam"  value="">  
<INPUT  TYPE="button"  VALUE="LOGIN"  onClick="submitForm()">  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  
<INPUT  TYPE="button"  VALUE="RESET"  onClick="resetForm()">  
</b>  
</font>  
</FORM>  
</CENTER>  
</body>  
</html>  
 
你在下一个jsp或者servlet中调用request.getParameter("newParam")就会得到第三个参数。  
如果你想在java中将javaScript中的参数赋值,需要  
<script  language="JavaScript">  
var  param1  
<%  String  Para  =  "zhang";  
     System.out.println("param1="+Para);  
%>  
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值