1.JSP技术。是Sun Microsystems公司倡导的,许多公司参与建立的一种
动态网页技术标准。该技术能为创建显示动态生成内容的web页面提供了
一个简捷而快速的方法。
2.JSP服务器页面(Java Server Page)的扩展名为.jsp
JSP的出现有效的弥补了Servlet程序对页面显示方面的不足
有效的控制动态内容的生成
JSP页面从形式上就是在传统的网页HTML文件中加入Java程序片段和JSP标签
HTML用于表示页面,而Java代码用于访问动态内容。
JSP在目前流行的三P技术中
ASP :Active Server Pages
PHP :Personal Homepage
JSP :Java Server Pages
JSP是基于Java Servlet以及整个Java体系的Web开发技术
具有动态网页与静态页面相分离,能够脱离硬件平台束缚一次编写,各处运行等优点。
利用这一技术,可以建立安全跨平台的先进动态网站,
从1998年初Sun公司发布了第一个公开的JSP规范草稿,JSP技术就不断的更新完善,
目前已发展的较为成熟了;
JSP主要有以下五个方面特点:
内容生成与表示相分离。使用JSP技术Web页面开发人员可以使用HTML
或者XML来设计和格式化最终页面,使用JSP标签或者脚本来生成页面上的动态内容;
在服务器端JSP引擎解释JSP标签和脚本,生成所请求的内容,并且将结果以HTML或XML页面
的形式发送回浏览器;
这有助于作者保护自己的代码,并且保证了任何基于HTML的Web了浏览器的完全可用性;
虽然JSP的实质是Servlet,但与Servlet相比,内容生成与表示相分离是JSP的一个优点,这是Servlet无法解决的;
使用可重用组件。可重用组件是一个程序它可以为多个其它的程序使用;
可移植性。JSP最重要的特点之一就是他用Java语言构建,是Java应用程序的一种;
Java技术最鲜明的特点之一就是工作平台具有独立性;
不管JSP在任何平台中编写,只要服务器中有JSP Container就可以使用原先编写的程序来运行;
4.采用标签简化页面开发;
5.完善的存储管理和安全性:由于JSP页面的内置脚本语言是基于Java语言的,而且所有的JSP页面都被编译成为Java
Servlet,所以JSP页面就具有Java技术的所有优点,包括完善的存储管理和安全性;
JSP技术并非单纯的JSP语法和几个JSP页面,而是一种涉及其他多种技术的综合技术,
它包括HTML、Java、JavaScript、Servlet、JDBC等,它是一个较为庞大的知识体系,各种知识之间有一定的层次关系,
6.Servlet技术是Java动态Web技术的基础,它使用Java书写的一种规范,是与平台无关
的服务器端构件可以在支持Servlet的Web服务器或应用服务器上运行;
JSP与Servlet有着极为密切的关系;
实际上,Servlet是JSP的基础,对于Java虚拟机的编译机制只能识别符合Java语法的代码文件,
而对于JSP文件是不可能由虚拟机直接编译的;Web服务器充当了JSP语言转换成Java代码的中间件,
在客户端访问某一JSP页面的时候,Web服务器首先将此JSP文件转换成Servlet源码,再有虚拟机编译运行并返回相应的结果给客户端;
所以说JSP在某种角度上来说就是Servlet,所有Servlet能做的事JSP一样可以处理;
7.Servlet很适合来开发业务层,但是对于表示层的开发就很不方便,JSP则只要是为了描述表示层而设计的;
JSP页面里面主要由以下元素构成:静态内容,表达式、Scriptlet、声明、动作、注释等等。
静态内容:JSP静态内容就是页面中的静态文件,它基本上HTML文本,与Java和JSP语法无关;
8.JSP指令:
JS表达式:
Scriptlet:Scriptlet是嵌套在页面里的一段Java代码,以<%代码%>,中间是Java代码,也被称为代码片段;
JSP声明:用于定义JSP页面中的变量和方法,它以<%%>;
JSP 动作:JSP动作允许在页面间转移控制权,JSP动作也有很多,它以"<jsp:动作名>"开始,以"</jsp:动作名>"结束;
JSP注释:
9.JSP页面的执行过程:
首先客户端的浏览器向JSP页面发送一个请求,然后JSP引擎就将分析JSP文件的内容,JSP引擎会根据JSP文件的内容,创建临时的Servlet源代码,所产生的Servlet负责生成在设计时说明
JSP页面的静态元素以及创建页面的动态元素;在编译JSP文件时如果发现有任何语法错误,转换过程将中断,并向客户端发出出错信息;如果编译成功,则转入下一步;将Servlet的源代码由java
编译器编译成为.class二进制文件即Servlet类文件;然后,实例化Servlet,该Servlet被JSP引擎加载到内存中,此时JSP引擎调用Servlet的jspinit和jspService方法,并执行Servlet逻辑;
接下来就是静态HTML和图形相结合,再与JSP页面定义中说明的动态元素结合在一起,通过Servlet响应对象的输出流传送到浏览器;
从形式上看,JSP页面是一种文本文件,更像HTML文档,但是从Web应用和Web服务器的角度看,它是一种Servlet,因为它从本质上看是Servlet的一种扩展;
在分析和编译JSP页面之后,会创建一个Servlet,此时开始Servlet的生命周期;
在Servlet生命周期中,JSP引擎(Web容器)会记载和创建Servlet类的实例;调用jspinit方法以初始化Servlet类,调用jspService方法,并将请求和响应对象传递给jspService方法,调用jspDestory方你发以删除Jsp页面的Servlet;
在执行JSp网页时,通常可分为转义时期和请求时期:
翻译(转译)时期:JSP网页翻译成Servlet类;
请求时期;Servlet类执行后响应结果至客户端;
转译时期主要完成两件事情:将JSP页面转译为Servlet源代码,此段称为翻译时期;
将Servlet源代码(.java)编译成Servlet类(.class),此段称为编译时期;
当JSP网页在执行时,JSp容器会检查JSp页面是否更新修改,如果发现JSp网页有更新修改,Jsp容器会重新翻译jSP;ruguo JSP没有更新,就直接执行前面所产生的Servlet;
当JSP被翻译成Servlet时,内容主要包含三个方法:
10.通过JSP技术,Web页面的技术开发人员可以使用HTML或者XML格式文档来设计和实现所要呈现的页面,并使用JSP标识或者小脚本来根据相应的请求来生成页面上的动态内容。由于JSP页面的内置脚本语言是基于Java的,而Tomcat在访问任何资源时都是在访问Servlet ,因此JSP 在本质上也是一种Servlet。因为JSP在第一次被访问时就会被编译成HTTPServlet的子类HTTPJSPPAge类,编译完成后在运行class文件来对浏览器所发送的请求进行响应。
JSP代码可以分为两个部分:模板数据(即HTML代码)和元素(JSP页面中的Java代码、JSP指令、JSP标签)。JSP的脚本就是JSP页面中的Java代码,也称为scriptlet。JSP的脚本需要使用<% %>括起来,否则会被当成是模板数据的。JSP指令用来声明JSP页面的相关属性,如编码方式、文档类型等;语法:<%@指令 属性名 = “值”%>。JSP指令控制JSP编译器如何去生成Servlet;JSP动作是一系列可以调用内建于网络网络服务器中的功能的XML标签;JSP支持标签技术,要是用标签技术就先得声明标签库和标签前缀。taglib指令就是用来指明JSP页面内使用标签库技术。