什么是JSP
表面上看 JSP是HTML+java ,实际上他的本质是Servlet
JSP不能用浏览器直接打开,需要被服务器软件翻译成java(Servlet); 访问JSP 本质上访问的是Servlet
jsp和Servlet的区别
jsp是擅长将数据显示在页面上,而不擅长做逻辑运算 Servlet恰恰相反
实际中 是两者配合使用的
JSP的基本语法(现在基本都被EL和JSTL所代替了)
<%=Java表达式%>:把表达式显示在页面上
<%Java代码块%>: 可以写多行Java代码,通常用于if判断,for循环
<%!Java声明%>: 用于声明成员变量 成员方法
<%-- 注释 --%> :JSP里的注释
EL
EL表达式主要用于替代第一种JSP的基本语法
EL表达式主要的两个作用:1.从域里面取数据显示到页面上 2.进行数据运算
写法
${java表达式}
指定的域里面取数据
由小到大的顺序排列下来${pageScope.key} ${requestScope.key} ${sessionScope.key} ${applicationScope.key}
有更加简便的方法 直接${key} 从以上四个域中从小到大的顺序 查找key对应的数据
从JavaBean里取数据的话${user.name} 从域里找user对象的那么属性值
从Map里取数据:
m
a
p
.
u
1
:
从
域
里
找
m
a
p
里
u
1
对
应
的
数
据
从
数
组
/
集
合
里
面
取
数
据
:
{map.u1}: 从域里找map里u1对应的数据 从数组/集合里面取数据 :
map.u1:从域里找map里u1对应的数据从数组/集合里面取数据:{list[1]} :从余力找list 获取索引1的数据
也可以进行数据运算
基本数学运算:±*/%
* 比较运算:>,<,>=,<=,==,!= 或者 gt,lt,ge,le,eq,ne
* 逻辑运算:&&,||,! 或者 and,or,not
* 可以判空:empty
* 三元运算:${判断条件?true的值:false的值}
JSTL标签库:用于代替<% Java代码块 %>,提供了一些逻辑处理的标签
导入对应的jar包 并引入需要的标签库
<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
常用的两种标签
<c:if test=“判断条件,用EL表达式判断”>
如果test等于的值为true 那么这一行就会生效 否则不会生效
<c:if>
两种循环 的基本语法
c:forEach标签:用于循环遍历
var:定义一个变量。 变量的值,被JSTL放到了pageScope域对象里
begin:从几开始循环
end:循环到几结束
step:每次循环加几
items:被循环遍历的对象
var:定义一个变量。变量的值,被JSTL放到了pageScope域对象里
varStatus:循环状态对象。这个对象里存储了循环中,当前的索引、序号等等一些状态值
普通for循环
<c:forEach var=“i” begin=“1” end=“10” step=“1”> hello, 张三 ${i} </c:forEach>
这段的意思 定义一个 变量 i 从1 开始 到10 结束 每次增加1 循环十次 hello,张三 i
增强for循环
<c:forEach items="${stringList}" var="str" varStatus="status"> <span style="color:red;">
当前值${str}
当前索引:${status.index},
当前序号:${status.count} </span> <br> </c:forEach>