`

jsp工作原理

 
阅读更多

JSP起源

 

在很多动态网页中,绝大部分内容都是固定不变的,只有局部内容需要动态产生和改变。 

如果使用Servlet程序来输出只有局部内容需要动态改变的网页,其中所有的静态内容也需要程序员用Java程序代码产生,整个Servlet程序的代码将非常臃肿,编写和维护都将非常困难。  

对大量静态内容的美工设计和相关HTML语句的编写,并不是程序员所要做的工作,程序员对此也不一定在行。网页美工设计和制作人员不懂Java编程,更是无法来完成这样的工作。 

为了弥补Servlet的缺陷,SUN公司在Servlet的基础上推出了JSPJava Server Pages)技术作为解决方案。 

JSP是简化Servlet编写的一种技术,它将Java代码和HTML语句混合在同一个文件中编写,只对网页中的要动态产生的内容采用Java代码来编写,而对固定不变的静态内容采用普通静态HTML页面的方式编写。

 

建立对JSP的直观认识 

 

JSP页面是由HTML语句和嵌套在其中的Java代码组成的一个普通文本文件,JSP 页面的文件扩展名必须为.jsp

JSP页面中编写的Java代码需要嵌套在<%%>中,嵌套在<%%>之间的Java代码被称之为脚本片段(Scriptlets),没有嵌套在<%%>之间的内容被称之为JSP的模版元素。

JSP中的Java代码可以使用out.println语句将其他Java程序代码产生的结果字符串输出给客户端,也可以使用System.out.println语句将它们打印到命令行窗口。 

JSP文件就像普通的HTML文件一样,它们可以放置在WEB应用程序中的除了WEB-INF及其子目录外的其他任何目录中,JSP页面的访问路径与普通HTML页面的访问路径形式也完全一样。

 

 

JSP

 

JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。

 

JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比html而言,html只能为用户提供静态内容,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据。

 

Jsp快速入门:在jsp页面中输出当前时间。

 

不管是JSP还是Servlet,虽然都可以用于开发动态web资源。但由于这2门技术各自的特点,在长期的软件实践中,人们逐渐把servlet作为web应用中的控制器组件来使用,而把JSP技术作为数据显示模板来使用。

 

其原因为,程序的数据通常要美化后再输出:

jsp既用java代码产生动态数据,又做美化会导致页面难以维护。

servlet既产生数据,又在里面嵌套html代码美化数据,同样也会导致程序可读性差,难以维护。

因此最好的办法就是根据这两门技术的特点,让它们各自负责各的,servlet只负责响应请求产生数据,并把数据通过转发技术带给jsp,数据的显示jsp来做。

 

 

JSP的运行原理

 

WEB容器(Servlet引擎)接收到以.jsp为扩展名的URL的访问请求时,它将把该访问请求交给JSP引擎去处理。Tomcat中的JSP引擎就是一个Servlet程序,它负责解释和执行JSP页面。

每个JSP 页面在第一次被访问时,JSP引擎将它翻译成一个Servlet源程序,接着再把这个Servlet源程序编译成Servletclass类文件,然后再由WEB容器(Servlet引擎)像调用普通Servlet程序一样的方式来装载和解释执行这个由JSP页面翻译成的Servlet程序。 

Tomcat 5.x把为JSP页面创建的Servlet源文件和class类文件放置在“<TOMCAT_HOME>\work\Catalina\<主机名>\<应用程序名>\”目录中,TomcatJSP页面翻译成的Servlet的包名为org.apache.jsp.<JSP页面在WEB应用程序内的目录名

 

JSP规范也没有明确要求JSP中的脚本程序代码必须采用Java语言,JSP中的脚本程序代码可以采用Java语言之外的其他脚本语言来编写,但是,JSP页面最终必须转换成Java Servlet程序。 

可以在WEB应用程序正式发布之前,将其中的所有JSP页面预先编译成Servlet程序。

 

 

分析JSP所生成的Servlet代码

 

JSP页面翻译成的Servlet继承了org.apache.jasper.runtime.HttpJspBase类,HttpJspBase类是HttpServlet的一个子类,因此JSP页面翻译成的ServletHttpServlet的一个孙子类。HttpJspBase类实现了javax.servlet.jsp.HttpJspPage接口中的部分方法,因此,HttpJspBase类是抽象的。 

SUN公司为JSPWEB容器开发商和JSP页面开发人员提供了一套专门应用于开发JSP程序的Java类,这套Java类被称为JSP APIHttpJspPage接口和JspPage接口属于JSP API,在HttpJspPage接口中只定义了一个_jspService方法,但它继承了JspPage接口,JspPage接口中定义了两个方法:jspInit()jspDestroy()

HttpJspBaseinit方法调用了jspInit_jspInit方法,destroy方法内部调用了jspDestroy_jspDestroy方法,service方法内部调用了_jspService方法。在HttpJspBase中实现的initservicedestroy方法都被声明成了final类型。  

 

JSP页面中的位于<% %>外面的每行和紧临<%%>两边的每段文本被转换成以这些文本作为参数的一条条out.write语句,JSP脚本片断(位于<%%>内的一段java代码)中的java代码被原封不动地搬移进了_jspService方法中的相应位置处,JSP表达式(位于<%=%>之中的内容)则是被转换成以其中的变量或表达式作为参数的out.print语句。 

 

JSP的执行过程

JSP的执行过程主要可以分为以下几点:

 

客户端发出请求。

Web容器将JSP转译成Servlet源代码。

Web容器将产生的源代码进行编译。

Web容器加载编译后的代码并执行。

把执行结果响应至客户端。

过程介绍

客户端发出请求,请求为JSP,web容器就会找出相应的servlet进行处理

将servlet转成字节码文件

将字节码文件加载到web容器里

这时会在web容器里建立实例

进行初始化

通过service接受请求

然后web容器会自动产生两个对象servlet和service最后进行销毁

分享到:
评论

相关推荐

    了解JSP工作原理.ppt

    了解JSP工作原理 JSP(Java Server Pages)是一种服务器端的WEB程序开发技术,由Sun公司发布,具有跨平台、通用性好、安全可靠等特点。JSP是基于Java的,页面程序由HTML或XML标记和JSP脚本共同组成,文件以“ .jsp...

    JSP的工作原理.pptx

    在学习JSP的过程中,理解其工作原理和生命周期,以及如何与其他组件(如JavaBean和Servlet)协同工作,对于开发高效、可维护的web应用至关重要。此外,实际项目的经验可以帮助将理论知识转化为实际技能,增强问题...

    jsp 原理 jsp教程

    **JSP(Java Server Pages)原理与教程** Java Server Pages(JSP)是Java平台上的一个服务器端技术,用于创建动态网页。它结合了HTML、脚本语言(如JavaScript)和Java代码,允许开发者在服务器端生成HTML内容,...

    JSP开发技术大全(一本最好的学习JSP的书)

    学习JSP开发的最佳参考资料,解压密码为www.csai.cn。

    jsp_Java网络程序设计教程

    7. **JSP工作原理**:JSP的工作流程包括翻译阶段(将JSP转化为Servlet)、请求处理、执行Servlet(生成Java代码并编译为Servlet类)、响应请求和发送HTTP响应。 8. **JSP示例**:例如Hello.jsp展示了简单的JSP代码...

    jsp实现-交易平台JSP源码

    本篇将详细讲解基于JSP实现的交易平台的核心知识点,包括JSP的工作原理、页面结构、核心技术及如何应用于交易平台的建设。 1. **JSP工作原理** JSP是Java技术的一部分,它允许开发者将静态内容(HTML、CSS、...

    jsp课程资料源代码

    **JSP(Java Server Pages)课程资料源代码详解** JSP是Java技术在Web开发领域中的一个...通过研究提供的“jsp源代码”,你可以深入学习JSP的工作原理,掌握动态网页的开发技能,并进一步提升你的Java Web编程能力。

    易语言jsp编辑器

    这有助于提升开发者对易语言的掌握程度,同时也能加深对JSP工作原理的理解。 在源码中,我们可以看到易语言是如何处理JSP文件的解析、编辑和保存等操作的。易语言提供了丰富的API接口,使得开发者可以方便地进行...

    jsp高级开发与教程

    通过实例,读者可以学习如何在实际项目中有效地运用JSP,从而加深对JSP工作原理的理解。实例通常会涉及以下几个方面: 1. JSP基本语法:包括脚本元素(scriptlets、表达式、声明)、指令(page、include、taglib)...

    JSP 英文文献+翻译1

    通过理解JSP的工作原理、元素、与Servlet的关系以及最佳实践,开发者能够更好地利用JSP构建高效、可维护的Web应用程序。而提供的“JSP英文文献+翻译”资源则为深入学习和研究提供了宝贵的资料。

    Jsp站内搜索实例(Jsp)

    **JSP工作原理**: JSP文件首先被JSP容器(如Tomcat)转换成Servlet,然后编译成Java字节码执行。在执行过程中,JSP的静态部分(HTML、CSS、JavaScript)会被直接发送到浏览器,而动态部分(Java代码)则会在服务器...

    jsp执行原理图(UML描述)

    动力节点王勇,jsp执行原理图,轻松掌握jsp原理

    分享JSP学习经验总结

    ### 一、JSP 工作原理 1. **JSP 文件转换**:当JSP文件首次被请求时,JSP引擎(通常是一个名为JspServlet的特殊Servlet)会将JSP文件转化为一个Servlet源码。如果在转化过程中出现语法错误,引擎会终止转换并向...

    jsp_手册

    通过解压并部署到Web服务器,可以直接运行这些例子,从而加深对JSP工作原理的理解。 总之,JSP_手册提供的资料全面覆盖了JSP 2.0的核心概念和实践,对于任何想要掌握或提升JSP技能的开发者来说,都是宝贵的资源。...

    简单jsp应用

    在这个简单的JSP应用中,我们将探讨JSP的基本概念、工作原理以及如何通过实例来理解其使用方法。 1. JSP基本概念 - JSP页面:JSP页面由HTML或XML标记和嵌入的Java代码组成,这些代码被用来处理动态内容。 - JSP...

    JSP+JavaBean+Servlet工作原理

    总结起来,JSP+JavaBean+Servlet的工作原理是一个典型的Web应用程序开发模型,通过合理的分工,实现了高效、可维护的动态网站开发。在实际应用中,开发者通常会结合其他框架,如Spring MVC,进一步提升开发效率和...

    jsp编辑器.rar

    9. **源码分析**:通过分析"易语言jsp编辑器源码",可以了解编辑器如何实现这些功能,比如解析JSP语法、与服务器交互、处理用户输入等,对于学习JSP编辑器开发或者理解JSP工作原理都非常有帮助。 10. **开源项目**...

    jsp运行原理

    ### JSP运行原理详解 #### 一、JSP的基本概念 JSP(Java Server Pages)是一种结合了HTML标记和Java代码的技术,用于创建动态网页。它允许开发人员将业务逻辑和展示逻辑分离,使得Web应用更加模块化和易于维护。 ...

Global site tag (gtag.js) - Google Analytics