JSP(Java Server Page)是目前十分流行的一种技术,主要运行与开发服务器端的脚本程序和动态生成网站的内容。它与目前同样流行的ASP技术、PHP技术是同样性质的、同一层次的,他们在网站的建设中所起到的作用是一样的。但是JSP技术与后面两种技术相比有着十分突出的优越性。JSP技术有J2EE平台支持,发展前途不可限量。J2EE平台包含十几种技术,JSP技术正是其中的一种核心技术。J2EE的发展势头十分迅猛,可以预见的将来,Sun的J2EE平台可能是唯一可以与微软的.Net架构相抗衡的平台。
      随着Web技术的发展,产生了许多方法来解决动态页面的生成问题,目前用于声称动态网页的技术有CGI、ASP、PHP及JSP。JSP技术为创建显示动态生成内容的Web页面提供了一个简便而快捷的方法。JSP是Java Server Page的缩写,是Sun公司于1999年6月推出的新技术,该技术由Sun公司主导,并采纳了计算机软硬件、通信、数据库领域多家厂商的意见而共同制定的一种基于Java的Web动态页面技术。JSP秉承了Java的“编写一次,到处运行”的精神,即用硬件平台无关,也同操作系统和Web服务器无关,是一种与平台无关的技术。据Sun公司讲,JSP可以应用在超过85%以上的Web服务器,包括Apache、IIS、Netscape等常用的服务器。
简单的说,JSP是一种服务器端脚本语言(Server Side Script),它包装了Java Servlet系统的界面,简化Java和Servlet的使用难度,同时通过扩展的JSP标签提供了网页动态执行的能力。尽管如此,JSP仍然没有超出Java和Servlet的范围,不仅JSP页面上可以直接书写Java代码,而且JSP是先被编译成Servlet之后才实际运行的。JSP在服务器端,即Web服务器上执行,并将执行结果输出到客户端(Client)浏览器,基本上与浏览器无关。实际上JSP就是Java,就是Servlet,只是它是一个特别的Java语言。
JSP与Servlet之间的主要差异在于,JSP提供了一套简单的标签,使不了解Servlet的人可以作出动态网叶来。
      如果对于Java语言不是很熟悉的人,会觉得JSP开发比较方便。JSP修改后立即可以看到结果,不需要手工编译,JSP引擎会自动来做这些工作;而Servlet却需要编译、重新启动Servlet引擎等一系列动作。但是在JSP中,HTML与程序代码混杂会显得较为混乱,而且不利于调试和除错,这一点上不如Servlet来得方便。
      当Web服务器(或Servlet引擎、应用服务器)支持JSP引擎时,JSP引擎就会按照JSP的语法,将JSP文件转换成Servlet源代码文件,接着Servlet会被编译成Java的可执行字节码,并以一般的Servlet方式载入、执行。
如果除去转换和编译阶段,JSP和Servlet之间的区别实在是不大。JSP引擎通常架构在Servlet引擎之上,其本身就是一个Servlet,把JSP文件转译成Servlet源代码,再调用Java编译器,编译成Servlet。这也是JSP在第一次调用是速度较慢的原因,在第一次编译之后,JSP与Servlet的执行速度相同。在整个运行过程中,JSP引擎会检查编译好的JSP(以Servlet形式存在)是否比原始的JSP文件还新,如果是,JSP引擎不会编译;如果不是,表示JSP文件比较新,就会重新执行一边转译与编译过程。