跟小博老师一起学JSP ——简介与工作原理
来源:互联网 发布:众力网络安装电话 编辑:程序博客网 时间:2024/05/16 10:58
JSP是什么
JSP与ASP、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 执行流程
- 跟小博老师一起学JSP ——简介与工作原理
- 跟小博老师一起学Servlet ——Servlet工作原理
- 跟小博老师一起学JSP ——JSP指令
- 跟小博老师一起学JSP ——脚本元素
- 跟小博老师一起学JSP ——内置对象
- 跟小博老师一起学JSP ——通信作用域
- 跟小博老师一起学JSP ——动作元素
- 跟小博老师一起学JSP ——EL表达式
- 跟小博老师一起学JSP ——JSTL上篇
- 跟小博老师一起学JSP ——JSTL下篇
- 跟小博老师一起学JSP ——连接数据库
- 跟小博老师一起学JSP ——MVC 上篇
- 跟小博老师一起学JSP ——MVC 下篇
- 跟小博老师一起学Servlet ——初识Servlet
- 跟小博老师一起学Servlet ——Servlet案例
- 跟小博老师一起学Servlet ——Servlet生命周期
- 跟小博老师一起学Servlet ——Servlet案例
- 跟小博老师一起学Servlet ——Servlet取得请求参数
- 暗号编辑【代码056852】
- Create a mosaic out of several input videos
- linux下使用 du查看某个文件或目录占用磁盘空间的大小方法
- 关于OkHttp缓存post请求的问题
- lx007菲波那切数列(使用递归)
- 跟小博老师一起学JSP ——简介与工作原理
- C#串口通信
- Cow Bowling POJ
- Android 蓝牙开发之搜索、配对、连接、通信大全
- Android proguard混淆
- 数据结构实验之链表一:顺序建立链表
- TCP/UDP客户端服务器实现通信
- C语言字符串操作总结大全(超详细)
- maven_git_ignore配置