el&jstl

JSP
    JSP= HTML + Java + JSP自身的语法
    JSP脚本 3个
    JSP指令 3个
        page指令,设置页面的参数
        include指令,用于静态包含页面
            如果页面中有公共部分可以抽取,可以单独写入一个页面文件中,使用include包含引入。
            include相当于代码的拷贝,在jsp翻译成servlet之前就代码拷贝完成了。支持跨页面编程
        taglib指令,用于引入标签库
    JSP注释 3个
        在什么类型的代码中使用什么类型的注释即可。
    JSP内置对象 9个
        在jsp内部能直接使用的对象。
        out    JspWriter    输出对象,数据输出到页面上
        pageContext****
            域对象
                范围:当前页面
                    无论转发还是重定向,只要页面发生了跳转,pageContext就会销毁。
            获取其他八个内置对象
                在一些框架中使用。
            操作其他三个域对象,获取或存储值
                api:
                    设置值:pageContext.setAttribute(key,value,域范围);
                    获取值:pageContext.getAttribute(key,域范围)
                    查找值:pageContext.findAttribute("name");
                        从四个域中,按照范围从小到大,依次查找指定key的值,如果任意一级找到,就不再继续向后查找。
                    域范围:
                        PageContext.PAGE_SCOPE   page域,也就是pageContext
                        PageContext.REQUEST_SCOPE  request域
                        PageContext.SESSION_SCOPE session域
                        PageContext.APPLICATION_SCOPE application域,也就是ServletContext
        四个域的范围排序:
            从小到大:
                PageContext<ServletRequest<HttpSession<ServletContext
MVC开发模式
    代码的解耦合
    JSP仅用于结果的展示,纯表现层。尽量不要在jsp中编写java的代码逻辑。
    M    model
        模型层,用于封装数据、处理业务逻辑。
        JavaBean、DAO、Service层
    V    View
        视图层,用于展示数据,是和用户交互的一层。
            在视图层不要编写逻辑。
        JSP
    C    Controller
        控制层,用于指派任务,任务的分发。
        Servlet
EL表达式*****
    在jsp中简化代码编写的一种表达式语言
    和java语法不能互用,也就是说不能在el中编写java代码。
    写法:
        ${ 表达式 }   最终会把表达式执行为一个值。
    转义:
        \${ 表达式} 会转义掉$,不会把这个表达式作为el执行,而是当字符串直接输出。
    用法:
        1.运算
            empty
                String  ""  null
                List  new ArrayList()  null
                判断对象是否为null,如果不为null,并且改对象有长度,长度为0,也会返回true。
        2.获取值*****
            el只能从域对象中获取值。如果获取不到值,返回空串。
            ${ key名称 }相当于pageContext.findAttribute,从小到大一次从四个域中获取值。
        获取域中存储的对象
            1.在Java中,JavaBean的属性是由setter和getter决定的,和成员变量的名称没有关系。
            2.获取时el中指定key的名称,而不是存入的数据的变量名。
        获取域中存储的list或map集合中的值
            list集合和数组获取方式一致,使用下标指定
                ${ array[0]}
            map集合两种获取方式
                1.把map看成对象,map中的键值对看成此对象的属性
                    map.put("user",user);
                    ${map.user.birthday.year}
                2.把map看成一个集合,索引值为map中数据的键值
                    map.put("user",user);
                    ${map["user"]} 引号不能省略
                    map.put("aaa.bbb",user);
                    ${ map["aaa.bbb"] }
        内置对象(隐式对象) 11个
            cookie:获取请求中携带到页面上的cookie数组,把数组的每个元素取出,以cookie的name为key,cookie对象为value构造了一个map集合。
                获取某个指定名称的cookie的值:${ cookie.名称.value } value不要忘记!
            <form action="${pageContext.request.contextPath}/xxx"></form>
                注意el两侧不要添加空格
JSTL    
    对JSP的标签进行补充,方便编写逻辑。
    编写步骤:
        1.导入jar包。
        2.页面上引入标签库
            使用taglib指令引入。
                <%@ taglib prefix="" uri="" %>
                    prefix:前缀,任意指定,但是一般有约定俗成的表示法。
        3.在页面中,用前缀使用标签
    常用标签
        核心标签库
            <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
                uri要使用带jsp路径的这一个
            if标签
                test:接收boolean值,用于判断条件,如果满足才会输出标签内部的内容。
                注意:
                    没有else标签
                    test中的el表达式外部不要添加空格!!!
            foreach标签
                普通for循环
                    属性:
                        begin:开始值
                        end:结束值
                        var:临时变量
                        step:步长,可以为负数
                        varStatus:循环状态对象
                            index:容器中元素的索引,从0开始
                            count:循环次数,从1开始
                增强for循环 for(String s : list)
                    items:容器对象
                    var:容器中元素的临时变量
                    varStatus:循环状态对象
                        index:容器中元素的索引,从0开始
                        count:循环次数,从1开始
                for循环中产生的值都存储在page域中。
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值