EL表达式
el表达式(Expression Language) 是为了使JSP写起来更加简单。
语法
在JSP中访问模型对象是通过EL表达式的语法来表达。所有EL表达式的格式都是以“${ }”表示。例如,${ userinfo}代表获取变量userinfo的值。当EL表达式中的变量不给定范围时,则默认在page范围查找,然后依次在request、session、application范围查找。也可以用范围作为前缀表示属于哪个范围的变量,例如:${ pageScope. userinfo}表示访问page范围中的userinfo变量。
变量
EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。
因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。
假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传。
用途
获取数据
执行运算
获取web开发的常用对象
需要导入的包
javax.servlet.jsp.jstl
jstl
1.2
taglibs
standard
1.1.2
示例
Titlerequest.setAttribute("name2","Hayden2"); //保存的数据只在一次请求中有效,请求转发会携带这个数据
session.setAttribute("name3","Hayden3"); //保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器
application.setAttribute("name4","Hayden4"); //保存的数据只在服务器中有效,从打开服务器到关闭服务器
%>
/*通过pageContent取出我们保存的值*/String name1= (String) pageContext.findAttribute("name1");
String name2= (String) pageContext.findAttribute("name2");
String name3= (String) pageContext.findAttribute("name3");
String name4= (String) pageContext.findAttribute("name4");
String name5= (String) pageContext.findAttribute("name5"); //本不存在
%>
${name1}
${name2}
${name3}
${name4}
${name5}
jsp标签
需要导入的依赖包
javax.servlet.jsp
jsp-api
2.2.1-b03
示例
这里实现的是一个页面转发数据到另一个页面中,并在另一个页面进行数据的获取。
值得注意的是,jsp标签内不可以写注释,否则编译通过,运行时会报错。
JSTL标签
JSTL标签的使用是为了弥补HTML标签的不足,它自定义许多标签可供使用,标签的功能和Java代码相同。
类别
核心标签(最常用)
格式化标签
SQL 标签
XML 标签
JSTL 函数
需要导入的依赖包
javax.servlet.jsp.jstl
jstl
1.2
javax.servlet.jsp.jstl
jstl-api
1.2
org.glassfish.web
jstl-impl
1.2
taglibs
standard
1.1.2
使用步骤
引入对于的taglib
使用其中的方法
在Tomcat/lib路径下也要有相关的依赖包,否则500错误
头文件支持
核心标签是最常用的 JSTL标签。引用核心标签库的语法如下:
示例1(coreif)
在页面中提交一个表单到自身页面,再判断输入的情况:
Titleif测试
示例2(corewhen)
jstl标签的when方法相当于Java中的if-else if结构:
你的成绩是优秀!
你的成绩是良好!
你的成绩是一般!
你的成绩是合格!
你的成绩是不合格!
示例3(coreforeach)
jstl中的foreach方法相当于Java中的for循环结构:
people = new ArrayList<>();
people.add(0,"oneone");
people.add(1,"twotwo");
people.add(2,"threethree");
people.add(3,"fourfour");
request.setAttribute("list",people);%>
items:要遍历的对象
begin:开始的下标
end:结束的下标
step:步长--%>