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.http
session属性
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”%>