17 EL、JSTL

目录

JSP

指令

taglib

include

page

内置对象(笔试可能会让你写出这9个内置对象)

pageContext

request

session

application

response

page

out

config

exception

MVC开发模式

概念

M:模型

V:视图

C:控制器

具体过程

EL表达式

概念

格式:${}

运算

获取值

获取对象中的值

虚拟对象

动态获取虚拟目录

JSTL

概念

使用步骤

常用jstl标签

完成重复操作

遍历容器


  1. JSP

    1. 指令

      1. taglib

        1. 用来导入标签库(可以使用其他特殊标签),类似于导入jar包
      2. include

        1. 不太常用
      3. page

        1. 导入jar包需要写在page指令里
        2. isErrorPage:用来标识当前页面是不是一个用来展示错误信息就开好的页面
          1. ture:可以使用内置对象exception,用来打印输出错误信息
    2. 内置对象(笔试可能会让你写出这9个内置对象)

      1. 域对象

        1. pageContext

        2. request

        3. session

        4. application

          1. 其实就是servletContext对象
      2. response

      3. page

      4. out

      5. config

      6. exception

  2. MVC开发模式

    1. 概念

      1. M:模型

      2. V:视图

        1. 一丁点java代码都不要写,写了就不遵循MVC的开发模式了
          1. 使用EL表达式和JSTL标签来替换java代码
      3. C:控制器

        1. 不做具体的业务操作,只作为一个数据的中转
    2. 具体过程

      1. 浏览器请求服务器,控制器获取用户的输入,调用相应的模型,完成具体的业务操作(查询数据库、封装对象),模型再将输出的数据返回给控制器,控制器将数据交给视图进行展示。
  3. EL表达式

    1. 概念

      1. 格式:${}

        1. 有返回值的,返回值就是表达式的返回值
      2. 输出大括号里面的值

        1. 也可以输出对象的值,不重写toString会输出对象的hash值
    2. 运算

    3. 获取值

      1. 将来最主要的作用还是获取到值,然后展示在页面中
      2. 获取对象中的值

        1. ${ 域名称 . 键名 . 属性名 }
          1. 属性名就是对应的getXxx方法
        2. 逻辑视图
          1. 比如说你在使用date对象时,直接输出的时间格式并不是我们想要的,想要输出我们想要的时间格式,你就可以再写一个对应的getXxx方法,然后通过.xxx调用即可
    4. 虚拟对象

      1. 类似于jsp的内置对象
      2. 有11个,但是掌握1个pageContext就可以啦
      3. 有啥作用
        1. 动态获取虚拟目录

          1. ${pageContext.request.contextPath}
          2. 可以把它写在表单里面
  4. JSTL

    1. 概念

      1. jsp标准标签库
    2. 页面中一丁点java代码都不能出现

      1. 但是有时候又不得不出现java代码,比如说你要使用for循环来遍历一个集合,就必须使用java代码,使用了之后前端人员就不太容易阅读代码,所以就引入了标签库这种东西。比如说,我可以指定一个标签,告诉前端,这个标签就是用来完成某某特定工作的。
    3. 使用步骤

      1.  导入 jstl 相关 jar 包
        1. 一般导入那个高版本的jar包(路径中包含jsp的)
      2. 引入标签库: taglib 指令: <%@ taglib %>
    4. 常用jstl标签

      1. <c:foreach>

        1. 完成重复操作

          1. ​​​​​​​for( int i=0; i<10; i++){ ... }
          2. 属性
            1. ​​​​​​​begin:0
            2. end:9
            3. var:i
            4. step:1
          3. <c:forEach begin="0" end="10" var="i" step="1">
                ${i}<br>
            </c:forEach>

             

        2. 遍历容器

          1. ​​​​​​​for(User user : list){ ... }
          2. 属性
            1. items:list
            2. var:user
            3. varStatus:循环状态对象
              1. index:元素在容器中的索引
              2. count:循环的次数,从1开始
          3. <c:forEach items="${list}" var="v" varStatus="s">
                索引:${s.index} 循环次数:${s.count}${v}<br>
            </c:forEach>

             

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值