JSP的工作原理
当一个JSP文件第一次被请求的时候,JSP引擎(本身也是一个Servlet)首先会把这个JSP文件转换
成一个Java源文件。在转换过程中如果发现JSP文件有语法错误,转换过程将中断,
并向服务端和客户端输出出错信息如果转换成功JSP引擎用javac把该Java源文件编译成相应的.class文件并将该.class 文件加载到
内存中。其次创建一个该Servlet的实例,并执行该实例的jspInit()方法然后创建并启动一个新的线程,新线程调用实例的jspService()方法。
jsp编译过程(对于每一个请求,JSP引擎会创建一个新的线程来处理该请求。如果有多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程, 每个客户端请求对应一个线程)。
浏览器在调用JSP文件时,Servlet容器会把浏览器的请求和对浏览器的回应封装成 HttpServletRequest和HttpServletResponse对象,同时调用对应的Servlet实例中的jspService()方法, 把这两个对象作为参数传递到jspService()方法中。
jspService()方法执行后会将HTML内容返回给客户端。
如果JSP文件被修改了,服务器将根据设置决定是否对该文件进行重新编译。如果需要重新编译,则将编译结果取代内存中的Servlet,并继续上述处理过程。
如果在任何时候由于系统资源不足,JSP引擎将以某种不确定的方式将Servlet从内存中移去。当这种情况发生时,jspDestroy()方法首先被调用,然后Servlet实例便被标记加入“垃圾收集”处理。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。