JSP介绍和运行机制

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38262968/article/details/78596381

     JSP指的是Java Servlet Pages,是基于Java Servlet的Web开发技术,具有如下特点:

  •   能够在任何Web或应用程序上运行     

        JSP可以适用于所有的平台。当从一个平台跨越到另一个平台时,JSP和JavaBean的代码不需要重新编译,这是因为Java字节码是与平台无关的。


  •    将程序逻辑和页面显示相分离
         Web开发人员使用HTML来设计页面,使用JSP标签和脚本来生成页面上的动态内容。在服务器端,JSP引擎负责解释JSP标签和脚本程序,生成请求内容,并将结果以HTML页面的形式返回到浏览器


  •    采用标签简化页面开发
           SP中对许多功能进行了封装,这些功能都是在与JSP相关的XML标签中进行动态内容生成时所必需的。使用JSP的标签可以执行访问和实例化JavaBean组件、设置或检索组件属性以及下载Applet等功能

              
  •    组件可重用   
         绝大多数JSP页面都依赖于可重用的、跨平台的组件来执行应用程序中所要求的复杂的处理。开发人员在开发过程中能够共享和交换那些执行普通操作的组件,并将这些组件提供给多的用户所使用。基于组件的方法加速了项目的总体开发过程,提高了应用程序得分开发效率。  

JSP的运行机制如图:

JSP运行过程为:
   (1) JSP容器先将该JSP文件转换成一个Java源文件(Java Servlet源程序),在转换过程中如果发现JSP文件中存在语法错误,则中断转换过程,并向服务端和客户端返回出错信息。
   (2) 如果转成功,则JSP容器使用Javac将生成的Java源文件编译成相应的字节码文件*.class。该.class文件就是一个Servlet,Servlet容器会像处理其他的Servlet一样来处理它。
   (3) 由Servlet容器加载转换后的Servlet类(.class文件),创建一个该Servlet(JSP页面的转换结果)的实例,并执行Servlet的jspInit()方法,jspInit()方法在Servlet的整个生命周期中只会执行一次。
   (4) 执行_jspService()方法来处理客户端的请求。对于每个请求,JSP容器都会创建一个新的线程来处理它。如果有多个客户端同时请求该JSP文件,则JSP容器也会创建多个线程,使得每个客户端请求对应一个线程。JSP运行过程中采用的这种多线程方式可以极大的降低对系统资源的需求,提高系统的并发量和响应时间。需要注意的是,第(3)步中生成的Servlet是常驻内存的,所以响应速度也是非常快的。
   (5) 如果.jsp文件被修改了,则服务器将根据设置决定是否对该文件重新编译,如果需要重新编译,则使用重新编译后的结果来代替内存中常驻的Servlet,并继续上述处理过程。
   (6) 虽然JSP效率高,但在第一次调用时往往由于需要转换和编译过程而产生一些轻微的延迟。此外,由于系统资源不足等原因,JSP容器会以某种不确定的方式将Servlet从内存中移去。当这种情况发生时会首先调用jspDestroy()方法。
   (7) 接着Servlet实例便被加入“垃圾收集”处理。
   (8) 当请求处理完成后,响应对象由JSP容器接收,并将HTML格式的响应信息发送回客户端。

    如果不知道什么是Servlet可以点击以下链接:

猜你喜欢

转载自blog.csdn.net/qq_38262968/article/details/78596381
今日推荐