简单介绍JS与JSP的区别
JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且
大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
1、JSP全称是java server page JS全称是javaScript
2、最主要的区别是运行位置不同。
JSP运行在后台服务器上,混合在HTML中的java程序段用于控制HTML的动态生成,并且通常负责调用后台数据库中的数据,形成能够根据使用情况的变化的,具有丰富数据交互效果的页面。
JavaScript 通常是运行在前台,即运行于用户浏览器的,通常不需要服务器的后台支持(AJAX交互例外),混合在HTML中的JavaScript脚本程序直接被浏览器解释执行,以提高页面的美观性和UI操作响应速度为基本目标。
3、JSP在HTML中用<%%>里面实现。
JS在html中用<Script></Script>实现
什么是js?
javaScript是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语言。使用
它的目的是与HTML超文本标记语言、Java 脚本语言(Java小程序)一起实现在一个Web页面中链接
多个对象,与Web客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入在标准的
HTML语言中实现的。它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择,具有以下几个
基本特点:
1、是一种脚本编写语言
JavaScript是一种脚本语言,它采用小程序段的方式实现编程。像其它脚本语言一样,JavaScript同
样已是一种解释性语言,它提供了一个易的开发过程。
它的基本结构形式与C、C++、VB、Delphi十分类似。但它不像这些语言一样,需要先编译,而是在
程序运行过程中被逐行地解释。它与HTML标识结合在一起,从而方便用户的使用操作。
2、基于对象的语言。
JavaScript是一种基于对象的语言,同时以可以看作一种面向对象的。这意味着它能运用自己已经
创建的对象。因此,许多功能可以来自于脚本环境中对象的方法与脚本的相互作用。
3、简单性
JavaScript的简单性主要体现在:首先它是一种基于Java基本语句和控制流之上的简单而紧凑的设
计, 从而对于学习Java是一种非常好的过渡。其次它的变量类型是采用弱类型,并未使用严格的数
据类型。
4、安全性
JavaScript是一种安全性语言,它不允许访问本地的硬盘,并不能将数据存入到服务器上,不允许
对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互。从而有效地防止数据的丢
失。
5、动态性的
JavaScript是动态的,它可以直接对用户或客户输入做出响应,无须经过Web服务程序。它对用户的
反映响应,是采用以事件驱动的方式进行的。所谓事件驱动,就是指在主页(Home Page)中执行了某
种操作所产生的动作,就称为“事件”(Event)。比如按下鼠标、移动窗口、选择菜单等都可以视为
事件。当事件发生后,可能会引起相应的事件响应。
6、跨平台性
JavaScript是依赖于浏览器本身,与操作环境无关,只要能运行浏览器的计算机,并支持
JavaScript的浏览器就可正确执行。从而实现了“编写一次,走遍天下”的梦想。
实际上JavaScript最杰出之处在于可以用很小的程序做大量的事。无须有高性能的电脑,软件仅需
一个字处理软件及一浏览器,无须WEB服务器通道,通过自己的电脑即可完成所有的事情。
综合所述JavaScript是一种新的描述语言,它可以被箝入到HTML的文件之中。JavaScript语言可以
做到回应使用者的需求事件(如:form的输入),而不用任何的网路来回传输资料,所以当一位使用
者输入一项资料时,它不用经过传给伺服端(server)处理,再传回来的过程,而直接可以被客户端
(client) 的应用程式所处理。
JavaScript 和 Java 很类似,但到底并不一样! Java 是一种比 JavaScript 更复杂许多的程式语
言,而 JavaScript 则是相当容易了解的语言。JavaScript 创作者可以不那麽注重程式技巧,所以
许多 Java 的特性在 Java Script 中并不支援。
什么是JSP?
Java Servlet是J
S P技术的基础,而且大型的We b应用程序的开发需要Java Servlet和J S P配合
才能完成,这里简单介绍S e r v l e t的相关知识,S e r v l e t的开发将在第二部分讲述。
S e r v l e t这个名称大概源于A p p l e t,现在国内的翻译方式很多,本书为了避免误会,决定直接
采用S e r v l e t而不做任何翻译,读者如果愿意,可以称之为“小服务程序”。S e r v l e t其实和传统的
C G I程序和I S A P I、N S A P I等We b程序开发工具的作用是相同的,在使用Java Servlet以后,用户
不必再使用效率低下的C G I方式,也不必使用只能在某个固定We b服务器平台运行的A P I方式来
动态生成We b页面。许多We b服务器都支持S e r v l e t,即使不直接支持S e r v l e t的We b服务器也可以
通过附加的应用服务器和模块来支持S e r v l e t。得益于J a v a的跨平台的特性, S e r v l e t也是平台无关
的,实际上,只要符合Java Servlet规范, S e r v l e t是完全平台无关且是We b服务器无关的。由于
Java Servlet内部是以线程方式提供服务,不必对于每个请求都启动一个进程,并且利用多线程
机制可以同时为多个请求服务,因此Java Servlet效率非常高。
但Java Servlet也不是没有缺点,和传统的C G I、I S A P I、N S A P I方式相同,Java Servlet是利
用输出H T M L语句来实现动态网页的,如果用Java Servlet来开发整个网站,动态部分和静态页
面的整合过程简直就是一场恶梦。这就是为什么S U N还要推出Java Server Pages的原因。
JSP技术
前面说过, Java Servlet的最大缺点就在于没有把网站的逻辑和页面的输出分开,导致整个
S e r v l e t代码混乱不堪。为了解决Java Servlet的这种缺点,S U N推出了Java Server Pages—J S P。
JSP技术概述
按照脚本语言是服务于某一个子系统的语言这种论述, J S P应当被看作是一种脚本语言,然
而,作为一种脚本语言, J S P又显得过于强大了,在J S P中几乎可以使用全部的J a v a类。
作为一种基于文本的、以显示为中心的开发技术,J S P提供了Java Servlet 的所有好处,并且,
当与一个JavaBeans 类结合在一起时,提供了一种使内容和显示逻辑分开的简单方式。分开内容
和显示逻辑的好处是,更新页面外观的人员不必懂得Java 代码,而更新J a v a B e a n s类的人员也不
必是设计网页的行家里手,就可以用带JavaBeans 类的JSP 页面来定义Web 模板,以建立一个由
具有相似的外观的页面组成的网站。JavaBeans 类完成数据提供,这样在模板中就没有Java 代码,
这意味着这些模板可以由一个HTML 编写人员来维护。当然,也可以利用Java Servlet来控制网
站的逻辑,通过Java Servlet调用J S P文件的方式来将网站的逻辑和内容分离。本章我们后面将对
这种分离网站的逻辑和内容的设计方法做一些更深入的描述。
在选择使用一个Java Servlet,还是一个JSP 页面时,要记住的是, Java Servlet 是一个程序
设计工具,它最适用于不需要频繁修改的低级应用功能; 而J S P页面则通过以显示为中心的描述
性的方法将动态内容和逻辑结合在一起。对于使用一个JSP 页面的简单的基于Web 的应用程序,
可以使用定制标记或者S c r i p t l e t,而不是使用JavaBeans 类来将内容与应用逻辑结合起来。定制
标记被打包到一个标记库中,并被引入到一个JSP 页面中。S c r i p t l e t是直接嵌入在JSP 页面中的
很小的J a v a代码段。
一般来说,在实际的J S P引擎中, J S P页面在执行时是编译式,而不是解释式的。解释式的
动态网页开发工具如A S P、P H P 3等由于速度等原因已经满足不了当前大型电子商务应用的需要
了,传统的开发技术都在向编译执行的方式改变,如A S P→A S P +;P H P 3→P H P 4。而尽管J S P的
规范书中并没有要求实际的J S P引擎要使用编译式的执行方式,但估计一般是不会使用解释的方
式来执行J S P页面的。通常说来, J S P页面一般是翻译为S e r v l e t的J a v a源文件,再经过J a v a编译器
编译为S e r v l e t的c l a s s文件。为什么要编译为S e r v l e t呢?据说是为了让原先的S e r v l e t引擎可以直接
服务于J S P,而J S P引擎就仅仅需要将J S P转译为S e r v l e t就可以了。这里要注意的是: J S P规范书
中并没有规定如何将J S P页面转译为S e r v l e t,因此,不同的J S P引擎转译的结果也是不一样的。
在J S P文件转译为S e r v l e t以后,每次客户机(通常是用户的We b浏览器)向服务器请求这一个J S P
文件的时候,服务器将检查自上次编译后J S P文件是否有改变,如果没有改变,就直接执行
S e r v l e t,而不用再重新编译,其效率是相当高的。一般来说, J S P文件的编译是在第一个用户访
问到这个J S P页面时发生,而这第一个用户通常是开发人员自己,这样,正式放在服务器上让用
户访问的J S P文件一般都已经有了对应的编译好的S e r v l e t了。许多服务器都有设置,可以使J S P
文件在第一个用户访问之前就预先编译好,这样看来,效率就更高了。后面在第4章中,将展示
一个简单的J S P文件对应的S e r v l e t。
在J S P规范书中,并没有明确要求J S P中的程序代码部分(称为S c r i p t l e t)一定要用J a v a来写,
实际上,有一些J S P引擎就是采用的其他脚本语言,如:E M A C - S c r i p t、We b L等等,但实际上这几
种脚本语言也是构建在J a v a上面,编译为S e r v l e t来实现的。按照J S P规范书,完全和J a v a没有任何关
系的S c r i p t l e t也是可以的,不过,由于J S P的强大功能主要在于能和J a v a B e a n s、Enterprise JavaBeans
一起工作,所以即使是Scriptlet部分不使用Java,编译成的执行代码也应该是与Java相关的。