如何在java类中获取js变量的值

JavaScript06

如何在java类中获取js变量的值,第1张

在java类中获取js变量的值,可以使用如下方式:将js变量放到form中的一个;在后台从form中取出变量放到隐藏域中;然后提交表单给要调用变量的页面。这个页面可以就是本身。示例如下:bb.jsp页面:

<pre t="code" l="java"><% String test5 = (String)request.getAttribute("test4")%>

<script type="text/javascript">

var test1 = '111'//定义js变量

document.form.test2.value = test1

//将js变量的值放到form中的一个隐藏域中

var formObj = document.getElementById('passForm')

formObj.submit()

</script>

<form method="post" action="aa.jsp" id ="passForm">

<input id = 'test2' type = 'hidden' name="test2">

</form>

aa.jsp页面中的Java代码:

<%

request.setCharacterEncoding("utf-8")

String txtMsg = request.getParameter("test2")

out.println(txtMsg)

%>

Java 和 JavaScript 是两门不同的编程语言。 \x0d\x0a\x0d\x0a 一般认为,当时 Netscape 之所以将 LiveScript 命名为 JavaScript,是因为 Java 是当时最流行的编程语言,带有 "Java" 的名字有助于这门新生语言的传播。\x0d\x0a\x0d\x0a 它们的相同之处包括: \x0d\x0a\x0d\x0a 它们的语法和 C 语言都很相似;\x0d\x0a 它们都是面向对象的(虽然实现的方式略有不同);\x0d\x0a JavaScript 在设计时参照了 Java 的命名规则;\x0d\x0a\x0d\x0a它们的不同之处包括: \x0d\x0a\x0d\x0a JavaScript 是动态类型语言,而 Java 是静态类型语言;\x0d\x0a JavaScript 是弱类型的,Java 属于强类型;\x0d\x0a JavaScript 的面向对象是基于原型的(prototype-based)实现的,Java 是基于类(class-based)的;\x0d\x0a JavaScript 除了长得和 Java 比较像之外,语言风格相去甚远。JavaScript 在设计时所参 考的对象不包括 Java,而包括了像 Self 和 Scheme 这样的语言。

JavaScript 与Java是两个公司开发的不同的两个产品。Java 是原Sun Microsystems公司推出的面向对象的程序设计语言,特别适合于互联网应用程序开发而JavaScript是Netscape公司的产品,为了扩展Netscape浏览器的功能而开发的一种可以嵌入Web页面中运行的基于对象和事件驱动的解释性语言。JavaScript的前身是LiveScript而Java的前身是Oak语言。

下面对两种语言间的异同作如下比较:

基于对象和面向对象:Java是一种真正的面向对象的语言,即使是开发简单的程序,必须设计对象JavaScript是种脚本语言,它可以用来制作与网络无关的,与用户交互作用的复杂软件。它是一种基于对象(Object-Based)和事件驱动(Event-Driven)的编程语言,因而它本身提供了非常丰富的内部对象供设计人员使用。

解释和编译:Java的源代码在执行之前,必须经过编译。JavaScript是一种解释性编程语言,其源代码不需经过编译,由浏览器解释执行。(目前的浏览器几乎都使用了JIT(即时编译)技术来提升JavaScript的运行效率)

强类型变量和类型弱变量:Java采用强类型变量检查,即所有变量在编译之前必须作声明JavaScript中变量是弱类型的,甚至在使用变量前可以不作声明,JavaScript的解释器在运行时检查推断其数据类型。

代码格式不一样。

补充:上面列出的四点是网上流传的所谓的标准答案。其实Java和JavaScript最重要的区别是一个是静态语言,一个是动态语言。目前的编程语言的发展趋势是函数式语言和动态语言。在Java中类(class)是一等公民,而JavaScript中函数(function)是一等公民,因此JavaScript支持函数式编程,可以使用Lambda函数和闭包(closure),当然Java 8也开始支持函数式编程,提供了对Lambda表达式以及函数式接口的支持。对于这类问题,在面试的时候最好还是用自己的语言回答会更加靠谱,不要背网上所谓的标准答案。