美文网首页
JSP工作原理及执行流程

JSP工作原理及执行流程

作者: CoderZS | 来源:发表于2018-11-30 11:06 被阅读0次

JSP:全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。JSP的本质是servlet, 通过response的printWriter返回,response的getOutputStream只能调用一次,返回流就不能返回页面刷新。

一、JSP工作原理

1.当一个JSP文件第一次被请求的时候,JSP引擎(本身也是一个Servlet)首先会把这个JSP文件转换成一个Java源文件。在转换过程中如果发现JSP文件有语法错误,转换过程将中断,并向服务端和客户端输出出错信息;如果转换成功,JSP引擎用javac把该Java源文件编译成相应的.class文件并将该.class文件加载到内存中。

2.其次创建一个该Servlet的实例,并执行该实例的jspInit()方法(jspInit()方法在Servlet的生命周期中只被执行一次)。

3.然后创建并启动一个新的线程,新线程调用实例的jspService()方法。(对于每一个请求,JSP引擎会创建一个新的线程来处理该请求。如果有多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程,每个客户端请求对应一个线程)。

4.浏览器在调用JSP文件时,Servlet容器会把浏览器的请求和对浏览器的回应封装成HttpServletRequest和HttpServletResponse对象,同时调用对应的Servlet实例中的jspService()方法,把这两个对象作为参数传递到jspService()方法中。

5.jspService()方法执行后会将HTML内容返回给客户端。

6.如果JSP文件被修改了,服务器将根据设置决定是否对该文件进行重新编译。如果需要重新编译,则将编译结果取代内存中的Servlet,并继续上述处理过程。 如果在任何时候由于系统资源不足,JSP引擎将以某种不确定的方式将Servlet从内存中移去。当这种情况发生时,jspDestroy()方法首先被调用, 然后Servlet实例便被标记加入“垃圾收集”处理。

以多线程方式执行可大大降低对系统的资源需求,提高系统的并发量及响应时间,但应该注意多线程的编程限制,由于该Servlet始终驻于内存,所以响应是非常快的。
虽然JSP效率很高,但在第一次调用时由于需要转换和编译而有一些轻微的延迟。

在jspInit()中可以进行一些初始化工作,如建立与数据库的连接、建立网络连接、从配置文件中获取一些参数等,而在jspDestory()中释放相应的资源。

JSP生命周期init() 和destory()

jspInit()及jspDestory()格式如下:

public void jspInit()      
 { 
     System.out.println("jspinit");   
 } 
public void jspDestory()    
 { 
    System.out.println("jspDestory");
}
二、执行流程
图片.png 图片.png

1.客户端发出请求,请求为JSP,web容器就会找出相应的servlet进行处理
2.将servlet转成字节码文件
3.将字节码文件加载到web容器里
4.这时会在web容器里建立实例
5.进行初始化
6.通过service接受请求
7.然后web容器会自动产生两个对象servlet和service最后进行销毁

相关文章

  • JSP工作原理及执行流程

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

  • Java面试问题

    1、JSP: jsp和servlet的区别 jsp本质就是Servlet,jsp的工作原理是:JSP页面在执行的时...

  • 复习

    JSP: 1、jsp和servlet的区别 jsp本质就是Servlet,jsp的工作原理是:JSP页面在执行的时...

  • SpringMVC执行流程及工作原理

    图解SpringMVC执行流程: 当然也有以下几种表示但是都是与第一种说法一样. 我们针对第一张图进行分析 组件说...

  • day_1_13 jsp&el&jstl

    JSP Java Server Page = html + java脚本 + jsp动态标签Jsp的执行流程:JS...

  • J2EE——之JSP篇

    本篇知识点 静态网页与动态网页 JSP工作原理及具体学习 了解了servlet,接下来进入学习jsp,jsp其实就...

  • JSP

    JSP JSP(JAVA Server Page),本质上是Servlet 执行流程 浏览器发送对jsp页面的请求...

  • java 面试

    一、javaWeb知识点: jsp和servlet的区别 jsp本质就是Servlet,jsp的工作原理是:JSP...

  • 1、springMVC入门(springMVC笔记)

    一、相关原理及概念 1.1执行流程 从上面的图中我们可以大致明白springMVC的调度流程,下面详细说明: 1....

  • 面试专题——Spring

    SpringMVC执行流程及原理? 用户发起请求到前端控制器(DispatcherServlet),该控制器会过滤...

网友评论

      本文标题:JSP工作原理及执行流程

      本文链接:https://www.haomeiwen.com/subject/wdbccqtx.html