JSP技术原理理解(1)
来源:互联网 发布:原创网络女歌手靖雯 编辑:程序博客网 时间:2024/05/06 20:57
一.概述
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】
public abstract class HttpJspBase extends HttpServlet implements HttpJspPage { protected HttpJspBase() { } public final void init(ServletConfig config) throws ServletException { super.init(config);jspInit(); _jspInit(); } public String getServletInfo() {return Localizer.getMessage("jsp.engine.info"); } public final void destroy() {jspDestroy();_jspDestroy(); } /** * Entry point into service. */ public final void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { _jspService(request, response); } public void jspInit() { } public void _jspInit() { } public void jspDestroy() { } protected void _jspDestroy() { } public abstract void _jspService(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException;}
看起来比较复杂吧。。有点像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
0 0
- JSP技术原理理解(1)
- JSP动态页面技术及其工作的原理的理解
- 深入理解JSP原理
- JSP 的技术原理
- jsp技术(一)—— jsp简介与原理
- jsp技术:day2--jsp的几个容器、myAjax(隐藏帧技术)底层原理、jsp的三代开发技术
- jsp分页技术(1)
- jsp/servlet相关技术 (二) --- jsp的原理、注释、声明、脚本等
- JSP技术-01-语法及运行原理
- 深入理解Servlet/JSP之“Servlet和JSP原理”
- JSP服务端页面技术:JSP的简介与运行原理
- JSP原理(二)
- JSP技术(一)
- JSP技术(二)
- JSP技术(一)
- JSP技术(二)
- JSP技术(五)
- JSP技术(六)
- JBPM-4.3所需的最小依赖库列表,JDK1.5十分需要
- 嵌入式Linux之我行——S3C2440上LCD驱动(FrameBuffer)实例开发讲解(一)
- php 技术笔记
- !!! FAILED BINDER TRANSACTION !!!
- SQL模糊查询注意事项
- JSP技术原理理解(1)
- 嵌入式Linux之我行——S3C2440上LCD驱动(FrameBuffer)实例开发讲解(二)
- 又一个教训
- zdfgnxfm,cfgn
- Java NIO系列教程(七) FileChannel
- 让FDT支持Scout高级遥测功能
- Eclipse project copy
- Android 检查Service是否已经启动
- Android学习小Demo(16)Android中使用已存在数据的SqliteDatabase