1.Servlet与JSP关系
JSP工作原理:
一个JSP文件第一次被请求时,JSP引擎把该JSP文件转换成为一个servlet
JSP引擎使用javac把转换成的servlet的源文件编译成相应的class文件
对每一个请求,JSP引擎创建一个新的线程来处理请求。JSP的Servlet本质:
2.JSP页面生命周期
阶段 | 描述 |
转译 | 将JSP源文件转译成对应的Servlet源文件 |
编译 | 编译Java源文件为类文件 |
加载 | 将类加载至内存 |
实例化 | 创建一个Servlet类实例对象 |
初始化 | 调用_jspInit()方法,最终调用Servlet类的init()方法初始化 |
服务 | 调用_jspService()方法,最终调用Servlet类的service()方法,将请求和响应传递进对应的doXXX()方法 |
销毁 | 调用_jspDestroy()方法,最终调用destroy()方法,销毁Servlet |
3.JSP与Servlet的内部转换:
JSP转译Servlet(Java生命周期第一阶段) : 解析 校检 转译
4.page伪指令属性
import属性(相当于java中的import)
用于描述JSP页面中使用类的全包名,可选属性<%@page import=“java.io.*,java.sql.*”%>默认导入包:java.lang、javax.servlet、javax.servlet.jsp、javax.servlet.httpsession属性session属性指定页面是否需要一个http会话<%@page session=“true/false”%>
errorPage和isErrorPage属性(JSP异常处理)
JSP产生一个不能捕获的溢出时跳转到一个错误页面<%@page errorPage=“error.jsp”%>在error.jsp页面中必须加入<%@page isErrorPage=“true”%>才能进行错误处理
language和extends属性
language属性指定JSP页面中声明、脚本、和表达式中使用语言,默认是Java<%@page language=“java” %>extends属性用于指定JSP页面对应Servlet类的基类,极少使用<%@page extends=“mypackage.BaseServlet”%>language和extends属性
language属性指定JSP页面中声明、脚本、和表达式中使用语言,默认是Java<%@page language=“java” %>extends属性用于指定JSP页面对应Servlet类的基类,极少使用<%@page extends=“mypackage.BaseServlet”%>
contentType和pageEncoding属性
contentType属性指定页面响应的MIME类型和字符编码<%@page contentType =“text/html;charset=UTF-8” %>pageEncoding属性用于指定JSP页面字符编码格式,默认值为ISO-8859-1<%@page pageEncoding =“UTF-8”%>