2021.1.21学习日记

JSP+四大域对象+EL表达式+JSTL的使用

JSP语法

  1. JSP注释<%-- --%>

<%-- 这是JSP注释 --%>快捷键command+/

  1. JSP代码块<% %>

<%
System.out.println(“hello”); //输出在控制台上
out.println(“hello jsp”); //输出在页面
%>

  1. JSP表达式<%= %>

jsp表达式 <%=“hello”%> 相当于等于out.println(“hello”);

  1. JSP声明 <%! %> ps:一般都是变量或方法

jsp声明 [变量或方法] <%!String s = “abc” %>
不加! 代表的是局部变量
加! 代表的是成员变量

四大域对象

域对象名称|作用范围|级别|使用状况

  • PageContext |页面范围|当前页面可用|很少使用;JSP
  • Request|请求范围|请求或请求转发|请求转发之后,再次转发无效
  • HttpSession|会话范围|多次数据共享|不同客户端不能数据共享
  • ServletContext|应用范围|整个应用可用|尽量少用

八大隐式对象

斜体的对象可以操作四大域对象的数据

隐式对象作用
pageContext获取所有域对象和隐式对象
applicationScope操作应用域对象数据
sessionScope操作会话域对象数据
requestScope操作请求域对象数据
pageScope操作页面域对象数据
header获取请求头数据
headerValues获取多个请求头数据
param获取请求参数数据
paramValues获取多个请求参数数据
initParam获取全局配置参数数据
cookie获取Cookie对象
//操作四大域对象数据
<% requerst.setAttribute("name","zhangsan") %>
${requestScope.name}

EL表达式

语法:${表达式内容}
EL表达式都可以用四大域对象和八大隐式对象获取数据

  • 获取基本数据类型
<% pageContext.setAttribute("a",10); %>
${num}
  • 获取自定义对象
<% 
Student stu = new Student("张三",23); 
request.setAttribute("stu",stu);
%>
${stu} //显示的地址值
${stu.name} //获取stu对象的name值
${stu.age}
  • 获取数组类型
<%
String[] arr = {"zhangsan","lisi"};
session.setAttribute("arr",arr);
%>
${arr} //显示的地址值
${arr[0]} //获取数组arr的0索引的值
${arr[1]}
  • 获取List集合
<%
ArrayList<String> list = new ArrayList<>();
list.add("aaa");
list.add("bbb");
application.setAttribute("list",list);
%>
${list} //显示所有元素,原理是重写了toString方法
${list[0]} //获取0索引的值
  • 获取Map集合
<%
HashMap<String,Student> map = new HashMap<>();
map.put("stu1",new Student("张三",20));
map.put("stu2",new Student("李四",21));
pageContext.setAttribute("map",map);
%>
${map}  //显示地址值
${map.stu1.name} //获取stu1对象的name值
${map.stu1.age} //获取stu1对象的age值

注意点:
1)EL表达式没有空指针异常
2)EL表达式没有索引越界异常
3)EL表达式没有字符串拼接

4)EL表达式运算符和Java相同

JSTL: JSP标准标签库

  1. 导入jar包
  2. 导入JSTL标签库
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%--流程控制--%>
<%--获取数据 使用core库的if语句  对成绩进行判断--%>
    ${pageContext.setAttribute("score","A")}
    <c:if test=" ${score eq 'A'}">
        优秀
    </c:if>
<%--多条件判断--%>
    <c:choose>
        <c:when test="${score eq 'A'}">优秀</c:when>
        <c:when test="${score eq 'B'}">良好</c:when>
        <c:when test="${score eq 'C'}">及格</c:when>
        <c:when test="${score eq 'D'}">不及格</c:when>
        <c:otherwise>请输入正确的成绩</c:otherwise>
    </c:choose>

<%--循环的使用--%>
<%
    ArrayList<String> list = new ArrayList<>();
    list.add("aaa");
    list.add("bbb");
    list.add("ccc");
    pageContext.setAttribute("list",list);
%>
<%--遍历集合 遍历出来的值赋给新的数组--%>
<c:forEach items="${list}" var="arr">
    ${arr}
</c:forEach>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值