了解和使用:jsp技术、el表达式、jstl标准标签库

一、jsp:

  • 概念:HTML代码和java代码能共同存在,JSP文件的扩展名为.jsp
  • 特点:跨平台、业务代码相分离、组建重用(复用JavaBean)、预编译(jsp编译一次,下次再访问不再编译)
  • jsp的执行流程:jsp底层就是一个servlet,jsp最终会被翻译成.java文件
    文件地址:C:\Users\Administrator\.IntelliJIdea2017.3\system\tomcat\你的项目名\work\Catalina\localhost\你的model名\org\apache\jsp
    在这里插入图片描述
  • jsp的语法
    • 注释: <%-- jsp注释 --%> //不会出现在源码上
    • 脚本片段: <% Java代码片段 %> //嵌入java代码`
      在这里插入图片描述
    • 脚本声明: <%! 书写Java代码 %> //脚本声明书写的java代码会翻译在类的成员位置上
    • 脚本表达式:<%= 表达式 %> //out.print(表达式); ,代替response向页面输出内容
  • 使用脚本片段向request、session、servletcontext域中存入值
    	<%
    		request.setAttribute("username","张三");
    		request.getSession().setAttribute("username","李四");
    		//session.setAttribute("username","李四");
    		request.getSession().getServletContext().setAttribute("username","王五");
    		//application.setAttribute("username","王五");
    	%>
    

二、EL表达式(主要用来替代脚本表达式)

  • EL表达式的格式${表达式内容}
  • EL表达式的作用:主要是从域对象中查找指定的数据
  • 从指定容器中获取简单数据
    • 从request容器中获取数据:${requestScope.key}
    • 从session容器中获取数据:${sessionScope.key}
    • 从servletContext容器中获取数据:${applicationScope.key}
  • 获取和解析复杂数据(数组集合(list,map)JaveBean)
    • 获取数组数据:${ arr[0] }
    • 获取集合
      • 获取list集合:${list}
      • 获取list结合某一个数据:${list[0]}
      • 获取map集合:${map}
      • 获取map集合某一数据:${map.name} //获取key为name的值
      • 获取map集合特殊key数据:${map["a.b.c"]} // a.b.c是key
    • 注意:map中的key尽量不要由".“和使用”.“可以获取的数据,使用”[]"也可以获取
  • 获取JavaBean
    • 获取JavaBean数据:${p}
    • 获取JavaBean指定属性的数据:${p.name} ${p.age}
    • 使用中括号,获取JavaBean指定属性的数据:${p["name"]} ${p["age"]}
  • 算术运算符
    	${ 3 + 4 }   //7
    	${ 3 - 4 }    //-1
    	${ 3 * 4 }    //12
    	${ 3 / 4 }    //0.75
    	${ 3 % 4 }   //3
    	${ 3 + 4 + "5"}   //7
    	${ 3 + 4 + a }      //7
    	//注意:数字执行运算,默认将所有数据转换成Long类型,如果一个数不存在,该数不参与运算,并且继续执行。
    
  • 逻辑运算符
    在这里插入图片描述
  • 比较运算符:
    在这里插入图片描述
  • empty运算符
    • 概述:是用来判断当前获取的数据是否为空或者当前获取的集合是否没有任何数据
        <%
          request.setAttribute("str",null);
          request.setAttribute("list",new ArrayList<>());
        %>
        ${empty str}<br/>   // true
        ${empty list}<br/>   // true
        //注意:empty运算符可以和逻辑运算符组合使用 ${not empty list}
      
  • 三元运算符${str == “aa” ? "是" : "否"} // 否

三、JSTL(主要用来替代脚本片段)

  • 导入jar包
  • 主要使用的:<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  • 主要使用的标签:<c:if></c:if> 和 <c:forEach></c:forEach>
  • <c:if></c:if>:
        <c:if test="判断条件">
        		判断为true的时候,这里的内容会生效
        </c:if>
    
    
  • <c:forEach></c:forEach>:
    • 普通for循环语法:
      <c:forEach var="变量名" begin="起始值" end="结束值" step="步长,每次循环加几">
      		${变量名}
      </c:forEach>
      
    • 增强for循环语法:
      <c:forEach items="被循环遍历的对象" var="变量名" varStatus="状态变量">
           	${变量名},
           	当前索引:${状态变量.index},
           	当前序号:${状态变量.count},
           	是否第1个:${状态变量.first},
           	是否最后1个:${状态变量.last},
      </c:forEach>
      //注意:var的值被保存在pageContext容器中
      
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值