目录
JSP
JSP:Java服务器端页面(Java Server Pages) ,本质上是一个servlet,可以理解为是一个特殊的页面,该页面既可以定义HTML标签,又可以定义java代码.其作用是简化了书写页面,展示动态页面.
jsp指令
作用:声明jsp的一些属性和行为,jsp转换成servlet需要有一定的依据
格式:
<%@指令名称 属性1="值1" 属性2="值2"%>
例如:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
三大指令:
- page:声明页面的一些属性或者导入依赖的java文件
- include:将其他页面中的内容复制到当前页面中(指令包含. 静态包含)
- taglib:导入其他的标签库
page指令:
contentType:相当于java中的response.setContentType("")
language:声明 脚本的语言,目前只有java值
isELIgnored:是否忽略EL(el是否不可用),默认值是false
session:用来声明当前页面是否可用使用session这个对象 默认值是true
errorPage:当此页面出现错误的时候,转发到哪个页面上
isErrorPage:声明当前页面是一个错误页面,一旦此值为true的时候,就可用execption对象使用方式:
<%@ page contentType="text/html;charset=utf-8"%>
<%@ page language="java" session="false" %>
include指令:
用来包含其他的页面,一般开发中会将相同的代码抽取成公共的页面,通过include指定将公共的页面包含起来.
taglib指令
导入标签库.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
内置对象
jsp中一共有九大内置对象:
变量名 | 真实类型 | 作用 |
pageContext | PageContext | 当前页面中共享数据 |
request | HttpServletRequest | 一次请求中共享数据 |
session | HttpSession | 一次会话中共享数据 |
application | ServletContext | 整个web应用共享数据 |
response | HTTPServletResponse | 响应对象 |
page | Object | 当前页面对象 |
out | JSPWriter | 输出对象 |
config | ServletConfig | servlet配置对象 |
exception | Throwable | 异常对象 |
el
jsp可以嵌套java代码,使用脚本元素,但是相对复杂麻烦,当下,已经采用el+jspl的方式替换了.
el作用:主要是活的域中数据
jstl作用:获得数据后遍历 判断数据.
获取值
el表达式只能从域对象中获取数据
语法:
${pageScope.键名} //从page域中获取指定键名对应的值
${requestScope.键名} //从request域中获取指定键名对应的值
${sessionScope.键名} //从session域中获取指定键名对应的值
${applicationScope.键名} //从application域中获取指定键名对应的值
简化写法:
${键名}
:从最小域到最大域依次查找,若找到,立即返回且终止查找;若没有找到,返回""
el表达式支持运算符
* 算数运算符
语法: + - * /(div) %(mod)
* 比较运算符
语法:> < >= <= ==(eq) !=(ne)
* 逻辑运算符
语法:&&(and) ||(or) !(not)
* 三元运算符
语法:${条件表达式?为真:为假}
* 空运算符
语法:${not empty 对象}
功能:
用于非空判断,
判断一个字符串是否为null或者""
判断一个集合或者数组的长度是否为0
判断一个对象是否为null
JSTL
JSTL的本质是标签,含一定逻辑的标签,其作用主要在页面进行判断和循环操作.JSTL有5个子库,当前常用的核心库是core
标签库 | 标签库的URI | 前缀 |
---|---|---|
Core | http://java.sun.com/jsp/jstl/core | c |
国际化(几乎不用) | http://java.sun.com/jsp/jstl/fmt | fmt |
SQL(过时) | http://java.sun.com/jsp/jstl/sql | sql |
XML(过时) | http://java.sun.com/jsp/jstl/xml | x |
Functions(几乎不用) | http://java.sun.com/jsp/jstl/functions | fn |
jstl是一套标准(接口) , 必须要引入实现 引入jar 2个jar包
链接:https://pan.baidu.com/s/1qmMZp98dgjgjxDo9ydvp5w
提取码:rjca
使用步骤:
- 导入jar包
- 在使用的页面中通过
<%@taglib prefix="标签前缀" uri="标签库的uri"%>
导入标签库例如:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
常用标签
c:if
<c:if test="${返回值为boolen的el表达式}">若test为true的时候就会展示此内容</c:if>
c:foreach
普通循环:
<c:forEach begin="开始的数字" end="结束的数字" step="步长(若为1可省略)" var="当前遍历到的数据起个名字">
${变量名字}
</c:forEach><c:forEach begin="1" end="10" step="1" var="n">
${n}
</c:forEach>
增强循环:
<c:forEach items="${从域中获取要遍历的集合}" var="当前遍历到的数据起个名字" varStatus="循环遍历的状态">
${循环变量的名字}
</c:forEach>