一.概述
JSP全名为Java Server
Pages,其根本是一个简化的Servlet设计【其实就是Servlet】,他实现了Html语法中的java扩张(以
<%, %>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
总结:网页中嵌入脚本代码【Java代码+JSP标记】
二.运行机制
用户请求一个JSP页面完成以下操作:
一个简单Myeclipse为我们默认生成的index,jsp文件
打开我的tomcat路径下,我们可以看到多了两个文件
原理很简单:我访问这个jsp页面的时候,会按照上面的顺序来运行的
下面看看我们翻译的Index_jsp的java文件【PS:默认翻译的命名规则就是名子_jsp】
看起来比较复杂吧。。有点像Servlet,因为都有init service destory这几个方法啊
规范定义中,JSP页面转换的Servlet必须实现 javax.servlet.jsp.JspPage这个接口【集成于javax.servlet.Servlet】
这个接口下有两个方法init destory
1.init
The jspInit() method is invoked when the JSP page is initialized.类型Servlet init 就是初始化
2.destory
The jspDestroy() method is invoked when the JSP page is about to be destroyed 同理就是销毁
文档上说是可以重写的,不过我们一般用不到吧
由于我们使用的一般都是http协议,所以还要实现它的一个子接口 HttpJspPage
【JSP页面使用Http协议】
该接口只有一个方法:service 类似Servlet的 service
The _jspService()method corresponds to the body of the JSP page. This method is defined automatically by the JSP container and
should never be defined by the JSP page author.
通过剖析原理我们发现jsp原理就是servlet