1、 Jsp生命周期
客户端第一次请求-》web容器把jsp文件转译为servlet源文件(java)-》编译为class文件-》载入class文件生成servlet对象
2、 Jsp转译的servlet
可重写的方法jspInit、jspDestroy
3、 指示元素
page
<%@ page pageEncoding="gb2312" contentType="text/html; charset=utf-8" %>
pageEncoding指定生成的servlet源文件采用的编码方式
contentType 相当于response的setContenttype
默认情况下pageEndoing使用的编码,就是做为charset的编码
taglib 见标签
Include
包含文件,只生成一个servlet文件,传不了参数
<%@include file="地址" %>
4、 声明
<%! %>定义为jsp类实例成员或方法
<% %> 定义局部变量或其他代码段
5、 隐式对象 隐式对象都是局部对象
request,response,session,
application(servletContext),
page(this),
exception(只能在设置了<%@page isErrorPage="true" %>才能使用) ,
out(JspWriter,内部关联一个PrintWriter),
pageContext(jsp页面的资源都放在这个对象上),
config(servletConfig)
6、 标准标签
1)包含其他文件,每个文件生成各自的servlet对象,跟指示标签的include的最大区别
<jsp:include page="地址">
<jsp:param value="变量" name="值"/> ...
</jsp:include>
2)转发到另一个页面
<jsp:forward page="">
<jsp:param value="变量" name="值"/> ...
</jsp:forward>
3)使用javabean
<jsp:useBean id="javabean名" class="类" scope="范围"></jsp:useBean>(scopel默认为page)
<jsp:setProperty value="值" property="属性名" name="javabean名"/>(如果property为*,则自动从请求参数中找相应的参数名和参数值,不用value属性)
<jsp:setProperty property="属性" param="请求参数名" name="javabean名"/>(把请求的参数值绑定到相应的属性上,也可<jsp:setProperty property="属性" name="javabean名"/>)
<jsp:getProperty property="属性名" name="javabean名"/>
也可以合并起来写,但合并起来,如果找到了对象,直接使用不再设置属性。
<jsp:useBean id="javabean名" class="类" scope="范围">
<jsp:setProperty property="属性名" value="值" name="javabean名"/>
</jsp:useBean>