跟小博老师一起学JSP ——简介与工作原理

来源:互联网 发布:众力网络安装电话 编辑:程序博客网 时间:2024/05/16 10:58

JSP什么

JSPASP、PHP类似都是动态网页技术,全称为JAVA SERVER PAGES。它是由SUN公司(以给ORACLE收购)提出且由多家公司共同设计出的一种技术,其本质是SERVLET。它在传统HTML页面内插入JAVA语言和TAGS形成JSP文件,文件的扩展名为.jsp。JSP将网页逻辑与设计进行分离,支持组件的重用,提高开发效率。

 

构成元素

JSP中既有HMTL相关的静态内容还有JAVA程序片断和JSTL,大致可分成以下几部分。

1. 静态内容

静态内容包含HTML、CSS、JAVASCRIPT,起到页面布局和内容的展示。

2. JSP指令

指令共有三条,容器安指令的设置对JSP文件进行转译成对应Servlet 。

3. JSP脚本

脚本由JAVA语句构成,可以定义变量编写执行逻辑。

4. 动作

通过JSP动作可以调用WEB容器内在功能的一组XML标签。

5. 自定标签库

为了规避JSP文件成分构成复杂问题尽可能统一编写格式,采用类似HTML方式的标签实现原本的JAVA逻辑。可使用内置的JSTL(标准标签存),还可以自定义标签库,实现个性的需求。

作原理

客户端第一次对JSP文件请求时,容器会JSP页面进行处理。首先对JSP文件转译成JAVA文件,接着将JAVA文件编译成CALSS文件,最后执行CALSS文件向客户端作出响应。以后请求同一JSP页面,容器会直接执行CLASS文件,所以第一次请求JSP时速度会比较慢。

JSP引擎会将JSP中的静态内容与动态内容分离,静态内容直接输出,动态内容转译成JAVA语句,最终生成一个的JAVA文件。生成类的父类是HttpJspPage,有初始化、销毁等方法 service()是JSP的核心方法。有学过Servlet的同学(没学过小伙伴,请参考小傅老师的Servlet系列文章)对这些方法一定很熟悉。是的,转义出来的类其本质就是一个Servlet。

在转义或编译的过程出现错误,JSP引擎会中止运行,直至修改JSP正确后方可执行。

下面二张图片展示了对应的流程,小伙们细细体会下。

l 转义和编译流程


l 执行流程


 

 

0 0