jsp基本介绍

来源:互联网 发布:客户数据分析报告 编辑:程序博客网 时间:2024/05/16 18:06

Jsp基本介绍

一、JSP起源

1、在很多动态网页中,大部分内容固定不变,只有局部内容需要动态产生改变

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

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

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

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

二、直观认识                    

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

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

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

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

三、概念

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

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

四、JspServlet使用情况原因

1、不管是JSP还是Servlet,都可以用于开发动态web资源。但各自特点不同,人们逐渐把servlet作为web应用中的控制器组件来使用,而把JSP技术作为数据显示模板来使用。

         2、使用原因:

程序的数据通常要美化后再输出(前提),让jsp既用java代码产生动态数据又做美化会导致页面难以维护。而让servlet产生数据,又在里面嵌套html代码美化数据,同样也会导致程序可读性差,难以维护。所以servlet只负责响应请求产生数据,并把数据通过转发技术带jsp数据的显示jsp来做

五、JSP的运行原理

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

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

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

4JSP规范无明确要求JSP中的脚本程序代码必须用Java语言,可以采用其他语言,但是,JSP页面最终必须转换成JavaServlet程序

5WEB应用程序正式发布之前其中的所有JSP页面预先编译Servlet程序

六、分析JSP所生成的Servlet代码

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

3SUN公司JSPWEB容器开发商和JSP页面开发人员提供了一套专门应用于开发JSP程序的Java,这套Java类被称为JSP API

HttpJspPage接口JspPage接口属于JSP APIHttpJspPage接口只定义了一个_jspService方法,但继承JspPage接口

JspPage接口中定义两个方法:jspInit()jspDestroy()

4HttpJspBaseinit方法调用jspInit_jspInit方法,

destroy方法内部调用jspDestroy_jspDestroy方法

service方法内部调用_jspService方法

HttpJspBase实现的initservicedestroy方法声明成了final类型 

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

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

1、客户端发出请求。

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

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

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

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

八.JSP语法

1JSP模版元素

2JSP表达式

3JSP脚本片断

4JSP注释

5JSP指令

6JSP标签

7JSP内置对象

原创粉丝点击