JSP--课堂笔记(JSP基础知识概述)

1、JSP技术概述(Java Server Pages)

1)JAVA语言
  Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
  
  Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。 —百度百科
  
2)Serclet技术(小型应用程序)
  是一种在JSP之前就存在的运行在服务器端的一种java技术Servlet是用的java语言编写的服务器端程序,java语言可实现的功能,Servlet基本上都能实现(除图形界面以外)。Servlet主要用于处理HTTP请求,并将处理的结果传递给浏览器生成动态的web界面。Servlet具有可移植(多系统平台和服务器平台下运行)、功能强大、安全、可拓展和灵活等优点
  
  在JSP中用到的Servlet通常都继承自javax.servlet.http.HttpServlet类,在该类中实现了用来处理HTTP请求的大部分功能。
  
  JSP是在Servlet的基础上开发的一种新的技术,所以JSP与Servlet有着密不可分的关系。JSP界面在执行过程中会被转化为Servlet然后由服务器执行该Servlet
  
3)JavaBean技术
  JavaBean是根据特殊的规范编写的普通的Java类,可称它们为“独立的组件”每一个 JavaBean实现一个特定的功能,通过合理的组织具有不同功能的 JavaBean,可以快速的生成一个全新的应用程序如果将这个应用程序比作一辆汽车那么程序中的JavaBean就好比组成这辆汽车的不同零件。对于程序开发人员来说,JavaBean的最大优点就是充分提高了代码的可重用性,并且对程序的后期维护和扩展起到积极的作用。
  
  JavaBean可按功能划分为可视化和不可视化两种。可视化JavaBean主要应用在图形界面编程的领域中,在JSP中常用的是不可视化JavaBean。应用该种JavaBean可用来封装各种业务逻辑,例如连接数据库,获取当前时间等。这样,当在开发程序过程中需要连接数据库或实现其他功能时,就可直接在JSP页面或Servlet中调用实现该功能的JavaBean来实现
  
  通过应用JavaBean,可以很好的将业务逻辑和前台显示代码分离,这大大提高了代码的可读性和易维护性
  
4)JSP技术
  Java Server Pages(JSP)由Sun公司倡导,与多个公司共同建立的一种技术标准,它建立在Servlet之上。应用JSP程序员或非程序员可以高效率地创建web应用程序并使得开发web应用程序具有安全性高、跨平台等优点
  
  JSP是运行在服务器端的脚本语言之一,与其他服务器端的脚本语言不一样,是用来开发动态网页的一种技术。
  
  JSP页面由传统的HTML代码和嵌入到其中的Java代码组成。当用户请求一个JSP页面时,服务器执行这些Java代码,然后将结果与页面中的静态部分相结合返回给客户端浏览器JSP页面中还包含了各种特殊的JSP页面元素,通过这些元素可以访问其他的动态内容并将它们嵌入到页面中,例如访问JavaBean组件的动作元素。程序员还可以通过编写自己的元素来实现特定的功能,开发出更为强大的web应用程序
  
  JSP是在Servlet的基础上开发的技术他继承了Java Servlet的各项优秀功能。而Java Servlet是作为Java的一种解决方案,在制作网页的过程中,它继承了Java的所有特性。因此JSP同样继承了java技术的简单、便利、面向对象、跨平台和安全可靠等优点比起其他服务器语言脚本,jsp更加简单、迅速和便利。 在JSP中利用JavaBean和JSP元素,可以有效地将静态的HTML代码和动态数据区分开来,给程序的修改和扩展带来了很大方便
  
5)JSP在JavaWeb开发中的地位
  Web应用程序大体上可分为两种,即静态网站动态网站早期web应用主要是静态页面的浏览,即静态页面。这些网站使用HTML代码编写放在Web服务器上用户使用浏览器通过HTTP协议请求服务器上的Web页面服务器上的Web服务器将接受到的用户请求处理后再发送给客户浏览器显示给用户
  
  在开发Web应用程序时,通常需要应用客户端和服务器两方面的技术。其中,客户端应用的技术主要用于展现信息内容,而服务器应用的技术,则主要用于进行业务逻辑的处理和数据库的交互。想要开发动态网站,就需要用到服务器端技术。而JSP技术就是服务器端应用的技术,JSP页面中的HTML代码用来显示静态内容部分,嵌入到页面中的Java代码与JSP标记用来生成动态的内容部分JSP允许程序员编写自己的标签库来完成应用程序的特定要求JSP可以被预编译提高了程序的运行速度。另外,JSP开发的应用程序经过一次编译后,便可以随时随地运行。所以在绝大部分系统平台中代码无需修改便可以支持JSP在任何服务器中运行

2、JSP技术特征

1)跨平台
  JSP是以Java为基础开发的,所以它不仅可以沿用Java强大的API功能(应用程序界面)而且不管是在何种平台下只要服务器支持JSP,就可以运行使用JSP开发的Web应用程序,体现了它跨平台、跨服务器的特点。例如在Windows NT下的IIS通过JRUN或ServletExcel插件就能支持JSP。如今最流行的Web服务器Apache同样能够支持JSP,而且Apache支持多种平台从而使得JSP可以在多个平台上运行
  在数据库操作中,因为JDBC同样是独立于平台的,所以在JSP中使用Java API提供的JDBC来连接数据库时就不用担心平台变更时的代码移植问题正是因为Java的这种特征,使得应用JSP开发的Web应用程序能够很简单的运用到不同的平台上
  
2)分离静态内容和和动态内容
  在前面提到的Java Servlet,对于开发Web应用程序而言是一种很好的技术。但同时面临着一个问题:所有的内容必须在Java代码中完成,包括HTML代码同样要嵌入到程序代码中来生成静态的内容。即使因HTML代码出现小问题,也需要有熟悉Java Servlet的程序员来解决
  JSP弥补了Java Servlet在工作中的不足。使用JSP,程序员可以使用HTML或XML标记来设计和格式化静态内容部分,使用JSP标记及JavaBean组件或者小脚本程序来制作动态内容部分。服务器将执行JSP标记和小脚本程序,并将结果与页面中静态部分结合后以HTML页面的形式发送给客户端浏览器。程序员可以将一些业务逻辑封装到JavaBean组件中Web页面的设计人员可以利用程序员开发的JavaBean组件和JSP标记来制作出动态页面,而且不会影响到内容的生成
  静态内容与动态内容的明确分离,是将以Java Servlet开发Web应用发展为以JSP开发Web应用的重要因素之一
  
3)可重复使用的组件
  JavaBean组件是JSP中不可缺少的重要组成部分之一,程序通过JavaBean组件执行所要求的更为复杂的运算。JavaBean组件不仅可以应用于JSP中同样适用于其他的Java应用程序中。这种特性使开发人员之间可以共享JavaBean组件加快了应用程序的总体开发进程
  
  同样,JSP的标准标签和自定义标签与JavaBean组件一样可以一次生成重复使用。这些标签都是通过编写的程序代码来实现特定功能的,在使用它们时与通常在页面中用到的HTML标记用法相同。这样可以将一个复杂而且需要出现多次的操作简单化,大大提高了工作效率
  
4)沿用了Java Servlet的所有功能
  相对于Java Servlet来说,使用从Java Servlet发展而来的JSP技术开发Web应用更加简单易学并且JSP同样提供了Java Servlet所有特性。实际上服务器在执行JSP文件时先将其转换为Servlet代码,然后再对其进行编译,可以说JSP就是Servlet,创建一个JSP文件其实就是创建一个Servlet文件的简化操作。理所当然,Servlet中的所有特性在JSP中同样可以使用

5)预编译
  预编译是JSP的另一个重要特性JSP页面在被服务器执行前都是已经被编译好的,并且通常只进行一次编译,即在JSP页面被第一次请求时进行编译在后续的请求中如果JSP页面内有被修改过,服务器只需要直接调用这些已经被编译好的代码,这大大提高了访问速度

3、JSP的处理过程

当课客户端浏览器向服务器发出请求时要访问一个JSP页面时,服务器根据该请求加载相应的JSP页面,并对该页面进行编译,然后执行。过程如下图所示。
1)客户端通过浏览器向服务器发出请求,在该请求中包含了请求资源的路经,这样当服务器接收到该请求后就可以知道被请求的资源。
2)服务器根据接收到的客户端请求来加载被请求的JSP文件
3)Web服务器中的JSP引擎会将被加载的JSP文件转化为Servlet
4)JSP引擎将生成的Servlet代码编译成Class文件
5)服务器执行这个Class文件
6)最后服务器将执行结果发送给浏览器进行显示。
  从上面介绍中可以看到,JSP文件被JSP引擎进行转换后,又被编译成Class文件,最终由服务器通过执行这个Class文件来对客户端的请求进行响应。其中第3步与第4步构成了JSP处理过程的翻译阶段,而第5步为请求处理阶段
  但并不是每次请求都需要重复进行这样的处理。当服务器第一次接收到对某个页面的请求时,JSP引擎就开始上述的处理过程,将被请求的JSP文件编译成Class文件。在后续对该页面再次进行请求时,若页面没有进行任何改动,服务器只需直接调用Class文件执行即可所以当某个JSP页面第一次被请求时,会有一些延迟,而再次访问时会感觉快了很多。如果被请求的页面经过修改,服务器将会重新编译这个文件,然后执行。

4、JSP与其他服务器端脚本语言的比较

常见的服务器端脚本主要有:CGI、ASP、PHP、ASP.NET和JSP。
1)CGI(Common Gateway Interface,通用网关接口)
  CGI是最早用来创建动态网页的一种技术,它可以使浏览器与服务器之间产生互动关系。它允许使用不同的语言来编写适合的CGI程序,该程序被放在Web服务器上运行。当客户端发出请求给服务器时,服务器根据客户请求建立一个新的进程来执行指定的CGI程序,并将执行结果以网页的类型传输到客户顿的浏览器上进行显示。

2)ASP
  ASP(Action Server Page)是一种使用很广泛的开发动态网站的技术。他通过在页面代码中嵌入VBScript或JavaScript脚本语言来生成动态的内容,在服务器端必须安装了适当得解释器后,才可以通过调用此解释器来执行脚本。然后将执行结果与静态内容部分结合并传送到客户端浏览器上。对于一些复杂的操作,ASP可以调用存在于后台的COM组件来完成。所以说COM组件无限地扩充了ASP的能力;正因如此依赖本地的COM组件,使得ASP主要用于Windows平台中。
3)PHP
  PHP来自于Personal Home Page一词,但现在的PHP已经不在表示名词的缩写,而是一种开发动态网页技术的名称。PHP语法类似于C并且混合了Perl、C++和Java的一些特性。它是一种开源的Web服务器脚本语言,与ASP和JSP一样可以在页面中加入脚本代码来生成动态内容对于一些复杂的操作可以封装到函数或类中,在PHP中提供了很多已经定义好的函数,例如提供的标准数据库接口,使得数据库连接方便,扩展性强、
4)ASP.NET
  ASP.NET也是一种建立动态Web应用程序的技术,它是.NET框架的一部分,可以使用任何.NET兼容的语言,如Visual Basic.NET、c#、J#等来编写ASP.NET应用程序。这种ASP.NET页面(Web Forms)编译后可以提供比脚本语言更出色的性能表现Web Forms允许在网页基础上建立强大的窗体。当建立页面时,可以使用ASP.NET服务端控件来建立常用的UI元素,并将他们编程来完成一般的任务。这些控件允许开发者使用内建可重用的组件和自定义组件来快速建立Web Form,使代码简单化

JSP与其他语言的比较
JSP--课堂笔记(JSP基础知识概述)_第1张图片
ps:以上内容摘自百度百科及《慕课版JSP程序设计》一书,本人进行整理。新手上路,水平不足请见谅。

你可能感兴趣的:(JSP--课堂笔记(JSP基础知识概述))