`
ihuashao
  • 浏览: 4553292 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

JSP2.0 学习笔记 (5)

阅读更多

JSP 与Servlet 的比较:

Sun 公司首先发展出Servlet,其功能非常强大,且体系设计也很完善,但是它输出HTML 语法

时,必须使用out.println( )一句一句地输出,但是当整个网页内容非常复杂时,那么你的Servlet 程序可能

大部分都是用out.println( )输出HTML 的标签了!

Sun 公司推出类似于ASP 的嵌入型Scripting Language,并且给它一个新的名称:

JavaServer Pages,简称为JSP


JSP 的执行过程: 36 / 197

(1) 客户端发出Request (请求);

(2) JSP Container 将JSP 转译成Servlet 的源代码;

(3) 将产生的Servlet 的源代码经过编译后,并加载到内存执行;

(4) 把结果Response (响应)至客户端。

如下:

<!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter" /> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0" /> <v:f eqn="sum @0 1 0" /> <v:f eqn="sum 0 0 @1" /> <v:f eqn="prod @2 1 2" /> <v:f eqn="prod @3 21600 pixelWidth" /> <v:f eqn="prod @3 21600 pixelHeight" /> <v:f eqn="sum @0 0 1" /> <v:f eqn="prod @6 1 2" /> <v:f eqn="prod @7 21600 pixelWidth" /> <v:f eqn="sum @8 21600 0" /> <v:f eqn="prod @7 21600 pixelHeight" /> <v:f eqn="sum @10 21600 0" /> </v:formulas> <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect" /> <o:lock v:ext="edit" aspectratio="t" /> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:230.25pt; height:156.75pt'> <v:imagedata src="file:///D:/DOCUME~1/powinder/LOCALS~1/Temp/msoclip1/03/clip_image001.emz" o:title="" /> </v:shape><![endif]--><!--[if !vml]-->

在执行JSP 网页时,通常可分为两个时期:转译时期(Translation Time)和请求时期(Request

Time)

转译时期:JSP 网页转译成Servlet 类。

转译期间主要做了两件事情:将JSP 网页转译为Servlet 源代码(.java),此段称为转译时

(Translation time);将Servlet 源代码(.java)编译成Servlet (.class),此段称为

编译时期(Compilation time)

请求时期:Servlet 类执行后,响应结果至客户端。

<!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter" /> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0" /> <v:f eqn="sum @0 1 0" /> <v:f eqn="sum 0 0 @1" /> <v:f eqn="prod @2 1 2" /> <v:f eqn="prod @3 21600 pixelWidth" /> <v:f eqn="prod @3 21600 pixelHeight" /> <v:f eqn="sum @0 0 1" /> <v:f eqn="prod @6 1 2" /> <v:f eqn="prod @7 21600 pixelWidth" /> <v:f eqn="sum @8 21600 0" /> <v:f eqn="prod @7 21600 pixelHeight" /> <v:f eqn="sum @10 21600 0" /> </v:formulas> <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect" /> <o:lock v:ext="edit" aspectratio="t" /> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:338.25pt; height:137.25pt'> <v:imagedata src="file:///D:/DOCUME~1/powinder/LOCALS~1/Temp/msoclip1/07/clip_image001.emz" o:title="" /> </v:shape><![endif]--><!--[if !vml]--><!--[endif]-->

<!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter" /> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0" /> <v:f eqn="sum @0 1 0" /> <v:f eqn="sum 0 0 @1" /> <v:f eqn="prod @2 1 2" /> <v:f eqn="prod @3 21600 pixelWidth" /> <v:f eqn="prod @3 21600 pixelHeight" /> <v:f eqn="sum @0 0 1" /> <v:f eqn="prod @6 1 2" /> <v:f eqn="prod @7 21600 pixelWidth" /> <v:f eqn="sum @8 21600 0" /> <v:f eqn="prod @7 21600 pixelHeight" /> <v:f eqn="sum @10 21600 0" /> </v:formulas> <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect" /> <o:lock v:ext="edit" aspectratio="t" /> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:338.25pt; height:137.25pt'> <v:imagedata src="file:///D:/DOCUME~1/powinder/LOCALS~1/Temp/msoclip1/07/clip_image001.emz" o:title="" /> </v:shape><![endif]--><!--[if !vml]--><!--[endif]-->

转译时期与请求时期程序

特别注意:

JSP 网页在执行时,JSP Container 会做检查的工作,若发现JSP 网页有更新修改时,JSP Container (tomcat ) 才会再次编译JSP ServletJSP 没有更新时,就直接执行前面所产生的Servlet

假如 当执行HelloJSP.jsp 时,Tomcat 会将它先转译为Servlet 如某目录下的HelloJSP_jsp.javaHelloJSP_jsp.class。其中HelloJSP_jsp.java

就是HelloJSP.jsp 所转译的Servlet 源代码。 其中 *.java 文件内容主要包含三部分:

public void _jspInit() { //JSP 网页一开始执行时,最先执行此方法。因此,我们通常会把//初始化的工作写在此方法中。

.

}

public void _jspDestroy() { //JSP 网页最后执行的方法。

.

}

public void _jspService(HttpServletRequest request, HttpServletResponse

response) throws java.io.IOException, ServletException { //JSP 网页最主要的程序都是在//此方法中。

.

}

可对照HelloJSP.jsp HelloJSP_jsp.java



<!--[endif]-->

分享到:
评论

相关推荐

    jsp2.0 学习笔记+完整源码

    jsp2.0 学习笔记+完整源码,包含了JSP开发中要用到的知识.

    JSP 2.0 完整笔记+源码

    我在学习JSP 2.0 时作的完整笔记+源码,希望能对JSP的学习者有所帮助.

    jsp笔记帮助学习jsp

    jsp2.0技术手册jsp2.0技术手册jsp2.0技术手册jsp2.0技术手册jsp2.0技术手册jsp2.0技术手册jsp2.0技术手册

    voa英语听力学习平台jsp版 v2.0.rar

    6、发布个人学习笔记,并对学习笔记进行维护;7、支付宝在线支付接口,实现在线购买服务功能;8、个人信息管理,个人界面方案维护;9、信息反馈及维护;10、JavaMail邮件发送功能实现。各功能模块的稳定性都经过了...

    JSP2_0技术学习笔记

    对学习jsp技术的总结 jsp标签的应用

    Java/JavaEE 学习笔记

    JSP学习笔记..................236 JSP前言.................236 第一章 Introduction to JSP...............238 第二章 Creating,Deploying and Executing a JSP..................239 第三章 JSP Scriplets,...

    J2EE学习笔记(J2ee初学者必备手册)

    JSP学习笔记..................236 JSP前言.................236 第一章 Introduction to JSP...............238 第二章 Creating,Deploying and Executing a JSP..................239 第三章 JSP Scriplets,...

    SSH(Struts+spring+hibernate)整合资料

    java(1) 整合入门(spring,struts,hibernate的整合)资料(1) 中大软件工厂项目前培训资料(1) 完整笔记+源码(1) ssh(1) C#查询参数化例子(1) 学习笔记+完整源码(1) 介绍与深入(1) 学习笔记(不含整合)(1) C#(1) .CHM格式...

    AppFuse学习笔记(J2EE入门级框架)

    采用TDD的开发方式,使用JUnit测试各层,甚至测试 jsp 输出的 w/o 错误。为了简化开发,预定义好了一套目录结构、基类、用来创建数据库、配置Tomcat、测试部署应用的 Ant 任务,帮助快速自动生成源程序和自动维护...

    appfuse 学习笔记

    采用TDD的开发方式,使用JUnit测试各层,甚至测试 jsp 输出的 w/o 错误。为了简化开发,预定义好了一套目录结构、基类、用来创建数据库、配置Tomcat、测试部署应用的 Ant 任务,帮助快速自动生成源程序和自动维护...

    复读365英语在线学习平台1.2版

    6、发布个人学习笔记,并对学习笔记进行维护; 7、支付宝在线支付接口,实现在线购买服务功能; 8、个人信息管理,个人界面方案维护; 9、信息反馈及维护; 10、JavaMail邮件发送功能实现。 项目演示地址:...

    整理后java开发全套达内学习笔记(含练习)

    十六进制数,零x开头 0x55(十六进制)=5*16+5(十进制) 类型:数据都必须有类型 boolean (8bit,不定的)只有true和false两个值 char 16bit, 0~2^16-1 (2^16=6万6) byte 8bit, -2^7~2^7-1 (2^7=128; 注意:两个 ...

    swing界面设计之JTree

    (十七) Swing 学习笔记 108 Swing API 包括18个公共包: 108 例程1.1 HelloWorldSwing.java 109 例程2.2 HelloWorldJFrame.java 110 (十八) 动态加载文件树的java程序 111 FileSystemTree.java源代码 112 //内部类 ...

Global site tag (gtag.js) - Google Analytics