jsp简单的不要不要的(二)
一、jsp的技术特征
1.跨平台
JSP是以Java为基础开发的,所以不管是在何种平台下,只要服务器支持JSP,就可以运行使用JSP开发的Web应用程序,体现了它的跨平台、跨服务器的特点。
例如在Windows NT下的IIS通过JRUN或ServletExec插件就能支持JSP。如今最流行的Web服务器Apache同样能够支持JSP,而且Apache支持多种平台,从而使得JSP可以在多个平台上运行。
2.分离静态内容和动态内容
使用JSP,程序员可以使用HTML或XML标记来设计和格式化静态内容,并通过JSP标记及JavaBean组件来制作动态内容。
服务器将执行JSP标记和小脚本程序,并将结果与页面中的静态部分结合后以HTML页面的形式发送给客户端浏览器。
将静态内容与动态内容的明确分离,是以Java Servlet开发Web应用发展为以JSP开发Web应用的重要因素之一。
3.可重复使用的组件
开发人员之间可以共享JavaBean组件,加快了应用程序的总体开发进程。
JSP的标准标签和自定义标签与JavaBean组件一样可以一次生成重复使用。
这样可以将一个复杂而且需要出现多次的操作简单化,大大提高了工作效率。
4.沿用了Java Servlet的所有功能
实际上服务器在执行JSP文件时先将其转换为Servlet代码,然后再对其进行编译,可以说JSP就是Servlet。
Servlet中的所有特性在JSP中同样可以使用。
5.预编译
预编译是JSP的另一个重要的特性。JSP页面在被服务器执行前,都是已经被编译好的,并且通常只进行一次编译,即在JSP页面被第一次请求时进行编译,在后续的请求中如果JSP页面没有被修改过,服务器只需要直接调用这些已经被编译好的代码,这大大提高了访问速度。
二、jsp的处理过程
当客户端浏览器向服务器发出请求访问一个JSP页面时,服务器根据该请求加载相应的JSP页面,并对该页面进行编译,然后执行。
JSP的具体处理过程如下图所示。
jsp处理过程
当服务器第一次接收到对某个页面的请求时,JSP引擎就开始进行上述的处理过程,将被请求的JSP文件编译成Class文件。
在后续对该页面再次进行请求时,若页面没有进行任何改动,服务器只需直接调用Class文件执行即可。
三、JSP与其他服务器端脚本语言的比较
1.CGI
CGI( Common Gateway Interface )即通用网关接口。是最早用来创建动态网页的一种技术,它可以使浏览器与服务器之间产生互动关系。它允许使用不同的语言来编写适合的CGI程序,该程序被放在Web服务器上运行。当客户端发出请求给服务器时,服务器根据客户请求建立一个新的进程来执行指定的CGI程序,并将执行结果以网页的类型传输到客户端的浏览器上进行显示。CGI可以说是当前应用程序的基础技术,但这种技术编制方式比较困难而且效率低下,因为每次页面被请求的时候,都要求服务器重新将CGI程序编译成可执行的代码。在CGI中使用最为常见的语言为C/C++、Java和Perl(Practical Extraction and Report Language,文件分析报告语言)。
2.ASP
ASP(Active Server Page)是一种使用很广泛的开发动态网站的技术。它通过在页面代码中嵌入VBScript或JavaScript脚本语言来生成动态的内容,在服务器端必须安装了适当的解释器后,才可以通过调用此解释器来执行脚本程序,然后将执行结果与静态内容部分结合并传送到客户端浏览器上。对于一些复杂的操作,ASP可以调用存在于后台的COM组件来完成,所以说COM组件无限地扩充了ASP的能力;正因如此依赖本地的COM组件,使得ASP主要用于Windows平台中。ASP存在很多优点,简单易学,并且ASP是与微软的IIS捆绑在一起,在安装Windows 2000、Windows XP的同时安装上IIS,就可以运行ASP应用程序了。
3.PHP
PHP来自于Personal Home Page一词,但现在的PHP已经不再表示名词的缩写,而是一种开发动态网页技术的名称。PHP语法类似于C,并且混合了Perl、C++和Java的一些特性。它是一种开源的Web服务器脚本语言,与ASP和JSP一样可以在页面中加入脚本代码来生成动态内容。对于一些复杂的操作可以封装到函数或类中,在PHP中提供了许多已经定义好的函数,例如提供的标准的数据库接口,使得数据库连接方便,扩展性强。PHP可以被多个平台支持,主要被广泛应用于UNIX/Linux平台。由于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,使代码简单化。