jsp脚本:
<%..%> Java代码片段
<%=..%>输出表达式,相当于out.print();
<%!...%>声明成员
jsp指令:
page
重要属性三个:
contentType:设置响应流的编码,以及通知浏览器用什么编码打开,设置文件mimetype
pageEncoding:设置页面编码
这两个属性如果都出现,各自使用各自的编码;若只出现一个属性,两个都使用出现的编码
若两者都不出现,使用服务器默认的编码ISO8859-1
import;导包
了解属性:
language:jsp可以嵌套的语言
buffer:设置jsp页面流的缓冲区的大小
autoflush:是否自动刷新
extends:声明当前jsp页面继承于哪个类,不能乱写,必须继承HttpServlet及其子类
session:设置当前页面是否可以使用session内置对象
errorPage:当前jsp页面出现异常时跳转到哪里
isErrorPage:声明当前页面是否为一个错误页面,如果为true,可以使用内置对象exception
include:静态包含,即将其它页面或者servlet的内容包含进来,一起编译运行,生成一个Java文件
taglib:导入标签库
格式:<%@taglib prefix="前缀名" uri="名称空间" %>
若导入之后:
<前缀名:标签..> 例如: <c:if test="">输出内容</c:if>
jsp内置对象:9个,在jsp页面可以直接使用的对象
out、request、response、session、exception、page、config、application、pageContext
jsp域对象:
application
session
request
pageContext:当前页面中可以使用
pageContext作用:
1.域对象 xxxAttribute
2.操作其他域对象xxxAttribute(...,int scope);
3.findAttribute("")方法,从小到大域依次查找,查找到一个停止查询
jsp动作标签:
<jsp:forward>:请求转发 == Java的request.getRequestDispatcher(..).forward(..)
<jsp:include>动态包含:就是将被包含页面或者servlet的运行结果包含到当前页面中
el: jsp内置的表达式语言,从jsp2.0开始,用来代替<%=...%>
作用:
1.获取域中的数据
2.执行运算
3.获取常见的web对象
4.调用Java方法
格式:${表达式}
获取域中的数据
注意:若属性名中出现了"."、"+"、"-"等特殊符号,需要使用${xxxScope["属性名"] }这种方式获取
获取简单数据:${xxxScope.属性名}或者${属性名} 从小到大域依次查询,查找到一个停止查询
获取复杂数据
获取数组中的数据:${域中的名称[index] }
获取集合list中的数据:${域中的名称[index] }
获取集合map中的数据:${域中的名称.键名 }
Javabean导航:在域中存储实体对象,使用el表达式取出
格式:{域中存储的对象名.属性名}
注意:只有具有对应的get方法才能叫属性,否则只是一个普通字段
Javabean:
狭义:满足规范的普通编写的类
规范:
1.公共具体的类 public class
2.提供私有字段属性
3.提供公有的set/get方法
4.提供一个无参构造器(不写构造默认有)
5.一般实现序列化接口serializable
el还可以执行运算
四则运算、关系运算(> <..)、逻辑运算(&& ||)
注意:
+:只能进行加法运算,不能拼接,字符串形式的数字也可以
empty:可以判断一个容器(array、set、list、map)的长度是否为0,还可以一个对象是否为null
格式:{empty 域中对象名称}
三元运算符:{3>4 "yes" :"no"}
////////////////////////////////////////////////////////
el的内置对象(只能在el表达式内使用),共有11个
pageScope、requestScope、sessionScope、applicationScope
param、paramValues、header、headerValues、initParam、cookie、pageContext
注意:除了pageContext外,全是map集合
pageContext.request.contextPath:获取项目名
jsp注释:
HTML注释:<!-- -->:注释内容在Java代码和HTML代码中均会存在
Java注释:只在Java代码中存在
jsp注释<%-- %>:旨在jsp页面中存在,翻译成Java之后就没有了
////////////////////////////////////////////////////
jstl:
jsp标准标签库语言,用来替代在页面上的一些逻辑操作,例如if、循环等等
使用步骤;
1.导入jar包
2.在页面上导入标签库,<%@taglib prefix="c" uri="">
jstl的分类:
core:核心类库
fmt:国际化
xml:过时
sql:过时
函数库:很少使用
常用的core库语句:
<c:if test="${el表达式}">满足test条件输出</c:if>
<c:forEach>