上下文监听器
1)ServletContextListe
JSP执行原理、
当客户端请求某一个JSP页面的时候,web容器会将这个请求交给JsspServlet来处理,JspServlet会通过JSP引擎(jsper.jar)将这个JSP页面转译成一个Servlet组件,同时会在这个Servlet组件中定义好9个内置对象。最后通过编译命令(javac)来编译成字节码文件,并加载到JVM中来执行我们在JSP中编写的Java晓脚本(<%%>),通过转译,最终会被定义为Servelt的实例变量
注意:当第一才请求的时候,容器会先检查之前有没有转译过这个JSP,如果没有就执行转译和编译,否则就直接使用之前转译好的Servelt组件来运行,提高效率
JSP通常有以下几块内容构成
1)内置对象
就是已经存在于JSP组件中,不需要而外创建出来的对象,拿来即用。在JSP中一共有9个内置对象。
Page,request,session,application,out,pageContext,response,exception,config
2)三大元素
指令元素(page,taglib)
Page指令,用于设置当前JSP页面的信息,比如:编码、需要用到的类库、是否支持EL表达式、设置错误页面等等。
Tablib指令,用于导入标签库,比如:JSTL标准标准库或自定义标签库。
include指令,用于静态包含一个页面,静态包含是在转译的时候,将要包含的页面源代码合并到当前的JSP中,形成一个servlet文件,并且静态包含是不能带参数的。动作元素
<JSP:>动作元素,例如:<JSP:useBean>、<JSP:include>动态包含(动态包含,最终会变成或者多个servlet文件,并且动态包含)、<JSP:forward>转发、….
脚本元素
声明:<%!%>
脚本:<% %>
表达式:<%= %>
3)标准标签库以及表达式
标准标签库:JSTL
EL表达式:${表达式}