一. JSP 简介
JSP全名为Java Server Pages,中文名叫java服务器页面,是一种动态网页开发技术,其根本是一个简化的Servlet设计,它是在传统的网页HTML文件(.htm,.html)中插入Java程序段和JSP标记,从而形成JSP文件,后缀名为(*.jsp)。
二. JSP 技术原理
JSP的工作方式是请求/应答模式,客户端发出HTTP请求,JSP收到请求后进行处理,并返回处理结果。在一个JSP文件首次被请求时,JSP引擎首先把这个JSP文件转换成一个servlet,而该引擎本身也是一个servlet。运行过程如下:
- JSP引擎首先把该JSP文件转换成一个Java源文件(servlet),在转换时,如果发现JSP文件中有任何语法错误,则中断转换过程,并向服务端和客户端输出错误信息。
- 如果转换成功,JSP引擎用javac把该Java源文件编译成相应的class文件。
- 创建一个servlet(JSP页面的转换结果)实例,该servlet的jspInit()方法被执行,jspInit()方法在servlet生命周期中只调用一次。
- 用jspService()方法处理客户端的请求。对每一个请求,JSP引擎创建一个新的线程来处理。如果多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程来处理每个请求。由于该servlet始终驻留与内存,所以可以非常迅速的响应客户端的请求。
- 如果JSP文件被修改了,服务器将根据设置决定是否对该文件重新编译,如果需要重新编译,则将以编译结果取代内存中的servlet,并继续以上过程。
- 虽然JSP的效率很高,但首次调用时,由于需要转换和编译,会有一些轻微的延迟。此外,在任何时候,由于系统资源不足的原因,JSP引擎将以某种不确定的方式将servlet中从内存中移去。在此情况下,jspDestroy()方法首先被调用,然后servlet实例将被回收。
在jspInit()中可进行一些初始化工作,如建立与数据库的连接或其他配置。

三. JSP 与 HTML
-
HTML是超文本标记语言,使用微软自带的记事本或写字板都可以编写,主要用于编写静态页面。什么静态页面呢?是在客户端运行的程序、网页、插件与组件,注意它是可以播放动态的视频或者图片的,静态网页的意思可以理解为拷贝到哪儿都可以运行。
-
JSP是java服务器网页技术,必须通过发布到Tomcat等服务器上再运行转化为servlet才行,当然它是动态页面。
-
HTML的优点
- 开发过程中前端与后端脱离,交互通过JSON传输来实现
- 跨平台能力更强,依托于浏览器的支持
- 使后台数据接口能够得到复用
- JSP的优点
- 可被爬虫爬到
- 减少请求次数
- 不用考虑浏览器的兼容性
- HTML的缺点
- 开发难度大,考虑浏览器的兼容性
- 页面请求过多
- 属于后加载,无法被爬虫爬到
- 接口代码需要新增很多
- 无法直接显示java实体类对象,需要转换为json格式
- JSP的缺点
- 增大了服务器的压力
- 前端与后端未脱离,拖慢开发进度
- 过于依赖java运行环境
- 复用较低。