JavaWeb基础知识day12——EL和JSTL以及JavaBean导航

版权声明:版权本人所有,转载请标明出处,谢谢合作! https://blog.csdn.net/qq_36326332/article/details/88205806

EL【Expression Language】

概述:EL(Expression Language)  jsp的内置表达式语言,从jsp2.0开始        用来替代jsp的脚本  <%=..%>
格式:${el表达式}

作用:
    1.获取域中数据 ★
    2.执行运算 ★
    3.获取常见的web对象
    4.调用java的方法

获取域中数据:★

注意:★
        若属性名中出现了"."|"+"|"-"等特殊符号,需要使用scope获取
            例如:${requestScope["arr.age"] }
★获取简单数据
    ${pageScope|requestScope|sessionScope|applicationScope.属性名}
        以后经常使用:
    ${属性名}:依次从pageContext,request,session,application查找指定属性,若查找到返回值,结束该次查找。若查找不到,返回""即空串
★获取复杂数据
        获取数组中的数据
            ${域中的名称[index]}
        获取list中的数据
            ${域中的名称[index]}
        获取map中的数据
            ${域中的名称.键名}
★执行运算:
    四则运算 关系(>..) 逻辑(&& ||)
    注意:
        +:只能进行加法运算,字符串形式数字可以进行加法运算.【数字和非数字的字符串相加会报错】
        empty:判断一个容器的长度是否为0(array set list map),还可以判断一个对象是否为空
            ${empty 域中的对象名称}
        三元运算符等等。

el的内置对象(了解)    11个

        pageScope
        requestScope
        sessionScope
        applicationScope
        
        param
        paramValues
        
        header
        haederValues
        
        initParam
        
        cookie★
        
        pageContext★
    注意:
        除了pagecontext其余对象获取的全是map集合
    
    了解:和参数相关的el内置对象
        params
        paramValues
        
    了解:和请求头相关的el内置对象
        header
        haederValues
    
    了解:和全局初始化参数相关的el内置对象
        initParam
        
【重要&掌握】cookie内置对象:
        ${cookie} 获取map{key=Cookie}
            例如:创建cookie
                Cookie c=new Cookie("username","tom");
            通过${cookie}获取相当于    
                {username=new Cookie("username","tom")}
            相当于map的key是cookie的键
            map的value是当前cookie
            
        若项获取名称username的cookie的value值(获取tom)
            ${cookie.username.value}--javabean导航
        注意:
            java中Cookie的api
                getName():获取cookie的名称
                getValue():获取cookie的value值
            我们称name和value是cookie的bean属性
    
        使用cookie内置对象:
            ${cookie.给cookie起名字.value}
            
        例如:
            获取jsession的值
            ${cookie.JSESSIONID.value}
            
【重要&掌握】pageContext:获取不是map集合,相当于jsp的pageContext内置对象
            在jsp页面中获取项目名
            ${pageContext.request.contextPath}

[]和. 有什么区别?
“[]”获得带有下标的(数组,List)。“ ”.获得一个对象的属性,如果属性名中包含了特殊字符必须使用“[]”不能使用“.”。 



JSTL【JavaServer Pages Standard Tag Library,JSP标准标签库】

JSTL概述:
    jsp标准的标签库语言    apache的    用来替代<%...%>脚本【替代JSP页面上的java代码】
    使用步骤:
        1.导入jar包 (jstl.jar和standard.jar)
        2.在页面上导入标签库    <%@taglib prefix="" uri=""%>
        例如:<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

JSTL的分类:
    core:核心类库 ★
    fmt:格式化|国际化
    xml:过时了
    sql:过时了
    fn函数库:很少使用

    core:掌握
        ★c:if
        ★c:forEach
        
        c:set 往域中设置值
        c:choose c:when c:otherwise 分支
        
    ★c:if 判断
        <c:if test="${el表达式}">满足的时候输出的内容</c:if>
        例如:
            <c:if test="${3>4 }">
                3大于4
            </c:if>
            <c:if test="${3<=4 }">
                3不大于4
            </c:if>
            //////////////
    ★c:forEach 循环
        格式1:
             <c:forEach begin="从那里开始" end="到那里结束" step="步长" var="给变量起个名字" varStatus="循环状态变量">
                ${i }--${vs.count }--${vs.current }<br>
             </c:forEach>
             
            varStatus:用来记录循环的状态
                常用的属性:
                    count:记录次数
                    current:当前遍历的内容
        例如:
            <c:forEach begin="1" end="20" step="2" var="i" varStatus="vs">
                ${i }--${vs.count }--${vs.current }<br>
            </c:forEach>
        
        格式2:
            <c:forEach items="${el获取域中的容器}" var="n">
                ${n }
            </c:forEach>
            
            例如:
                //遍历list
                <c:forEach items="${list }" var="n">
                    ${n }
                </c:forEach>
                
                //遍历map
                 <c:forEach items="${map }" var="en">
                    ${en.key }-- ${en.value }<br/>
                  </c:forEach>

常用的标签:
c:set        设置值
c:if        选择结构
c:forEach    循环结构        
        
c:choose        相当于switch结构
    * c:when    相当于case
    * c:otherwise相当于default
JSTL的函数库(EL的函数库)
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
${ fn:length("HelloWorld") }
${ fn:toLowerCase("ABCDEFG") }
${ fn:toUpperCase("abcdefg") }
${ fn:contains("www.baidu.com","baidu") }





JavaBean导航

javabean概述:
            java语言编写的一个可重用的组件,
            狭义上来说就是我们编写的一个普通的java类 例如:User Person 

javabean:
    java语言编写的一个可重用的组件,
    狭义上来说就是我们编写的一个普通的java类 例如:User Person 
    javabean规范:
        1.必须是一个公共的具体的类  public class
        2.提供私有的字段  private String id;//id称之为字段
        3.提供公共访问字段的方法 get|set|is方法
            public String getId(){..}
            一旦有公共的方法之后,get|set|is之后的内容,将首字母小写,将这个东西称之为bean属性
                id就是一个bean属性
        4.提供一个无参的构造器
        5.一般实现序列化接口  serializable

${域中javabean名称.bean属性}

猜你喜欢

转载自blog.csdn.net/qq_36326332/article/details/88205806