JSP&&EL&&JSTL
-
全称:Java Server Page,使用java语言编写的运行在服务器端上的页面。
-
原理:JSP本质上就是一个Servlet。
-
脚本:
<% 代码 %>:定义的java代码,在service方法中。service方法中可以定义什么,该脚本中就可以定义什么。
<%! 代码 %>:定义的java代码,在jsp转换后的java类的成员位置。
<%= 代码 %>:定义的java代码,会输出到页面上。输出语句中可以定义什么,该脚本中就可以定义什么。 -
九个内置对象
变量名 真实类型 作用 pageContext PageContext 当前页面共享数据,还可以获取其他八个内置对象 request HttpServletRequest 一次请求访问的多个资源(转发) response HttpServletResponse 响应对象 session HttpSession 一次会话的多个请求间 application ServletContext 所有用户间共享数据 page Object 当前页面(Servlet)的对象 this out JspWriter 输出对象,数据输出到页面上 config ServletConfig Servlet的配置对象 exception Throwable 异常对象 -
指令
-
作用:用于配置JSP页面,导入资源性文件。
-
格式:
<%@ 指令名称 属性名1=属性值1 属性名2=属性值2 ... %>
-
分类:
-
page:配置JSP页面的
-
contentType:等同于response.setContentType()
-
设置响应体的mime类型以及字符集
-
MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型 : 大范围类型/小范围类型 text/html
-
-
import:导包
-
errorPage:当前页面发生异常,会自动跳转到指定的错误页面。
-
isErrorPage:标识当前也是是否是错误页面。
-
true:是,可以使用内置对象exception
-
false:否。默认值。不可以使用内置对象exception
-
-
-
include:页面包含的。导入页面的资源文件
-
taglib:导入资源
-
prefix:前缀,自定义的
-
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
-
-
-
-
注释:
-
<!-- html注释 -->:在源码级别可以看到
-
<%-- java注释 --%>:在源码级别不可见
-
EL表达式
-
概念:Expression Language 表达式语言
-
作用:替换和简化jsp页面中java代码的编写
-
注意:
-
jsp默认支持el表达式的。如果要忽略el表达式
-
-
\${表达式} :忽略当前这个el表达式
-
-
-
语法:${表达式} --->表达式是一个具体的值。
-
运算符
-
算数运算符: + - * /(div) %(mod)
-
比较运算符:> < >= <= == !=
-
逻辑运算符:&&(and) ||(or) !(not)
-
空运算符:empty
-
功能:用于判断字符串、集合、数组对象是否为null或者长度是否为0
-
${empty list}:判断字符串、集合、数组对象是否为null或者长度为0
-
${not empty str}:表示判断字符串、集合、数组对象是否不为null 并且 长度>0
-
${empty ""} 也是true
-
-
-
-
获取值
-
el表达式只能从域对象中获取值
-
默认从小范围向大范围查找获取值
-
语法:
-
${域名称.键名}:从指定域中获取指定键的值
-
pageScope --> pageContext
-
requestScope --> request
-
sessionScope --> session
-
applicationScope --> application(ServletContext)
-
-
${键名}:表示依次从最小的域中查找是否有该键对应的值,直到找到为止。
-
获取对象、List集合、Map集合的值
-
对象:${域名称.键名.属性名} 本质上会去调用对象的getter方法,而不是成员变量
-
List集合:${域名称.键名[索引]}
-
Map集合:
-
${域名称.键名.key名称}
-
${域名称.键名["key名称"]}
-
-
-
-
-
隐式对象:
-
el表达式中有11个隐式对象
-
pageContext:
-
获取jsp其他八个内置对象
-
${pageContext.request.contextPath}:动态获取虚拟目录
-
-
-
-
JSTL
-
概念:JavaServer Pages Tag Library JSP标准标签库
-
是由Apache组织提供的开源的免费的jsp标签 <标签>
-
-
作用:用于简化和替换jsp页面上的java代码
-
常用的JSTL标签:
-
if:相当于java代码的if语句
-
test 必须属性,接受boolean表达式
-
c:if标签没有else情况,想要else情况,则可以在定义一个c:if标签
-
-
choose:相当于java代码的switch语句
-
使用choose标签声明相当于switch声明
-
使用when标签做判断相当于case
-
使用otherwise标签做其他情况的声明相当于default
-
-
foreach:相当于java代码的for语句。
- begin end step组合
- items=“${容器}” var="随便起的变量名" varstatus="随便起状态名"
- varstatus里有两个属性,count 循环次数 从1开始 index 下标从0开始
-
fmt:formatDate格式化日期标签
- uri:http://java.sun.com/jsp/jstl/fmt
- 语法:<fmt:formatDate value="${user.updateTime}" type="both" pattern="MM-dd HH:mm"/>
-