JSP起源
在很多动态网页中,绝大部分内容都是固定不变的,只有局部内容需要动态产生和改变。
如果使用Servlet程序来输出只有局部内容需要动态改变的网页,其中所有的静态内容也需要程序员用Java程序代码产生,整个Servlet程序的代码将非常臃肿,编写和维护都将非常困难。
对大量静态内容的美工设计和相关HTML语句的编写,并不是程序员所要做的工作,程序员对此也不一定在行。网页美工设计和制作人员不懂Java编程,更是无法来完成这样的工作。
为了弥补Servlet的缺陷,SUN公司在Servlet的基础上推出了JSP(Java 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源程序编译成Servlet的class类文件,然后再由WEB容器(Servlet引擎)像调用普通Servlet程序一样的方式来装载和解释执行这个由JSP页面翻译成的Servlet程序。
Tomcat 5.x把为JSP页面创建的Servlet源文件和class类文件放置在“<TOMCAT_HOME>\work\Catalina\<主机名>\<应用程序名>\”目录中,Tomcat将JSP页面翻译成的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页面翻译成的Servlet是HttpServlet的一个孙子类。HttpJspBase类实现了javax.servlet.jsp.HttpJspPage接口中的部分方法,因此,HttpJspBase类是抽象的。
SUN公司为JSP的WEB容器开发商和JSP页面开发人员提供了一套专门应用于开发JSP程序的Java类,这套Java类被称为JSP API。HttpJspPage接口和JspPage接口属于JSP API,在HttpJspPage接口中只定义了一个_jspService方法,但它继承了JspPage接口,JspPage接口中定义了两个方法:jspInit()和jspDestroy()。
HttpJspBase的init方法调用了jspInit和_jspInit方法,destroy方法内部调用了jspDestroy和_jspDestroy方法,service方法内部调用了_jspService方法。在HttpJspBase中实现的init、service和destroy方法都被声明成了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工作原理 JSP(Java Server Pages)是一种服务器端的WEB程序开发技术,由Sun公司发布,具有跨平台、通用性好、安全可靠等特点。JSP是基于Java的,页面程序由HTML或XML标记和JSP脚本共同组成,文件以“ .jsp...
在学习JSP的过程中,理解其工作原理和生命周期,以及如何与其他组件(如JavaBean和Servlet)协同工作,对于开发高效、可维护的web应用至关重要。此外,实际项目的经验可以帮助将理论知识转化为实际技能,增强问题...
**JSP(Java Server Pages)原理与教程** Java Server Pages(JSP)是Java平台上的一个服务器端技术,用于创建动态网页。它结合了HTML、脚本语言(如JavaScript)和Java代码,允许开发者在服务器端生成HTML内容,...
学习JSP开发的最佳参考资料,解压密码为www.csai.cn。
7. **JSP工作原理**:JSP的工作流程包括翻译阶段(将JSP转化为Servlet)、请求处理、执行Servlet(生成Java代码并编译为Servlet类)、响应请求和发送HTTP响应。 8. **JSP示例**:例如Hello.jsp展示了简单的JSP代码...
本篇将详细讲解基于JSP实现的交易平台的核心知识点,包括JSP的工作原理、页面结构、核心技术及如何应用于交易平台的建设。 1. **JSP工作原理** JSP是Java技术的一部分,它允许开发者将静态内容(HTML、CSS、...
**JSP(Java Server Pages)课程资料源代码详解** JSP是Java技术在Web开发领域中的一个...通过研究提供的“jsp源代码”,你可以深入学习JSP的工作原理,掌握动态网页的开发技能,并进一步提升你的Java Web编程能力。
这有助于提升开发者对易语言的掌握程度,同时也能加深对JSP工作原理的理解。 在源码中,我们可以看到易语言是如何处理JSP文件的解析、编辑和保存等操作的。易语言提供了丰富的API接口,使得开发者可以方便地进行...
通过实例,读者可以学习如何在实际项目中有效地运用JSP,从而加深对JSP工作原理的理解。实例通常会涉及以下几个方面: 1. JSP基本语法:包括脚本元素(scriptlets、表达式、声明)、指令(page、include、taglib)...
通过理解JSP的工作原理、元素、与Servlet的关系以及最佳实践,开发者能够更好地利用JSP构建高效、可维护的Web应用程序。而提供的“JSP英文文献+翻译”资源则为深入学习和研究提供了宝贵的资料。
**JSP工作原理**: JSP文件首先被JSP容器(如Tomcat)转换成Servlet,然后编译成Java字节码执行。在执行过程中,JSP的静态部分(HTML、CSS、JavaScript)会被直接发送到浏览器,而动态部分(Java代码)则会在服务器...
动力节点王勇,jsp执行原理图,轻松掌握jsp原理
### 一、JSP 工作原理 1. **JSP 文件转换**:当JSP文件首次被请求时,JSP引擎(通常是一个名为JspServlet的特殊Servlet)会将JSP文件转化为一个Servlet源码。如果在转化过程中出现语法错误,引擎会终止转换并向...
通过解压并部署到Web服务器,可以直接运行这些例子,从而加深对JSP工作原理的理解。 总之,JSP_手册提供的资料全面覆盖了JSP 2.0的核心概念和实践,对于任何想要掌握或提升JSP技能的开发者来说,都是宝贵的资源。...
在这个简单的JSP应用中,我们将探讨JSP的基本概念、工作原理以及如何通过实例来理解其使用方法。 1. JSP基本概念 - JSP页面:JSP页面由HTML或XML标记和嵌入的Java代码组成,这些代码被用来处理动态内容。 - JSP...
总结起来,JSP+JavaBean+Servlet的工作原理是一个典型的Web应用程序开发模型,通过合理的分工,实现了高效、可维护的动态网站开发。在实际应用中,开发者通常会结合其他框架,如Spring MVC,进一步提升开发效率和...
9. **源码分析**:通过分析"易语言jsp编辑器源码",可以了解编辑器如何实现这些功能,比如解析JSP语法、与服务器交互、处理用户输入等,对于学习JSP编辑器开发或者理解JSP工作原理都非常有帮助。 10. **开源项目**...
### JSP运行原理详解 #### 一、JSP的基本概念 JSP(Java Server Pages)是一种结合了HTML标记和Java代码的技术,用于创建动态网页。它允许开发人员将业务逻辑和展示逻辑分离,使得Web应用更加模块化和易于维护。 ...