el和jstl
el表达式(jsp就是一个servlet)
定义: jsp表达式语言
语法: ${表达式}
四大作用域(变量的作用域==>变量的使用范围)
pageContext 一次页面,除了此页面将无法访问
request 一次请求
session(会话) 一次会话[浏览器打开到浏览器关闭]
application jsp上下文[项目开启之后,项目重启或关闭]
<%
//pageContenxt就是作用域
//setAttribut()往作用域中赋值
//("key",value) 以键值对的形式赋值
//pageContext.setAttribute("name", "tomPage");
//out输出对象
//print输出
//getAttribute("name")获得name对应的值
//可以使用el表达式代替java中getAttribute这种方式取值
out.print(pageContext.getAttribute("name"));
//--------------------------------------
request.setAttribute("name2", "tom2");
session.setAttribute("name3", "tom3");
application.setAttribute("name4", "tom4");
//request.setAttribute("name", "tomRequest");
//session.setAttribute("name", "tomSession");
application.setAttribute("name", "tomApplication");
%>
el获取四大作用域得值
<!-- 使用el表达式获取四大作用域的值 -->
${name }
${pageScope.name }
${requestScope.name2 }
${sessionScope.name3 }
${applicationScope.name4 }
<!--可以省略作用域范围,直接写名称变量名称-->
${name }
${name2 }
${name3 }
${name4 }
如果4个作用域中同时存在name属性
${name} ==>1pageContxt==>2request==>3session==>4application
el表达式访问javabean对象
Student stu=new Student();
${stu.id}
${stu.name}
el表达式中可以做计算
<!-- el表达式中可以做计算 -->
${6+1 }
<!-- 加上\的意思是堪称直接输出 -->
\${6==6}结果为 ${6==6}
param/paramValues获取值(访问参数对象(url中变量))
param是jsp页面获得请求的参数
getParameter()是servlet中获得请求的参数
请求:http://localhost:8080/jsp_05/el3.jsp?aaa=abc
获得url中的参数:${param.aaa }
请求:http://localhost:8080/jsp_05/el3.jsp?aaa=abc&aaa=bbb[多选按钮]
<!-- 获得多个值 的数组-->
${paramValues.aaa[0] }
${paramValues.aaa[1] }
getParameter()和getAttribute()区别
getParameter() 获得url中的变量值====>获得< form >表单的值.
使用setAttribute()设置值就要使用getAttribute()获取值====>四大作用域
jstl标签库
jsp标准标签库
如果想使用jstl标签库,那么需要做两步
1导入jar包 ===>jstl.jar
2 引入标签库
<%--引入标签库
taglib 引入标签库指令
uri 标签的地址
prefix 标签的段名称
--%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
< c:foreach > 遍历
< c:if > 判断
<%
List list=new ArrayList();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
//将集合放入request作用域
request.setAttribute("list",list);
%>
<!--遍历
items 代表的集合或者数组,一般是放在el表达式中
var 集合或数组中的每一个元素
-->
<c:forEach items="${list }" var="li">
${li }
</c:forEach>
<!-- 条件语句
test写的就是条件==>el表达式
-->
<c:if test="${6==5}">
xxxxx
</c:if>