JavaWeb_04_EL&JSTL

EL&JSTL

EL简介

  • 全称:Expression Language,翻译过来叫表达式语言
  • 格式:${表达式}
  • 作用:主要用来获取域对象中的属性值
  • EL表达式默认进行全域查找
    • 先从page域中开始查找,找到后直接返回,不再去其他域中查找,如果找不到再去request域中查找,以此类推…
    • 如果最终在application域中也找不到则什么也不输出
  • EL给我们提供了四个Scope对象,用来精确获取指定域中的属性值,这四个Scope对象相当于将四个域对象中的域单独拿了出来
    • pageScope
      • 获取page域中的属性值
    • requestScope
      • 获取request域中的属性值
    • sessionScope
      • 获取session域中的属性值
    • applicationScope
      • 获取application域中的属性值
  • 通过EL表达式获取JavaBean的属性值
    • 通过对象.属性名的方式获取JavaBean的属性值,其实调用的是属性对应的get方法
      • 例如:${requestScope.emp.name},调用的是request域中的emp对象所对应的类中的getName()方法
    • 只要域中对象所对象的类中有getXxx方法,我们就可以通过对象.xxx(get后面单词的首字母小写)的方式获取该方法的返回值
      • 例如:${requestScope.emp.gender },request域中的emp对象所对应的类只要有getGender()方法就可以获取getGender()方法的返回值,不需要有gender这个属性
    • 如果域中对象的属性还是一个对象,可以通过一直点的方式获取属性值

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>EL表达式</title>
  </head>
  <body>
      <%--
          EL的全称:Expression Language,表达式语言
          格式:${表达式}
          作用:主要用来获取域对象中的属性值
          EL查找的规则:默认是四个域都查找
            先从page域中开始查找,找到后直接返回,不再去其他域中查找;
            如果在page域中找不到,再去request域中查找,也是找到后直接返回,不再去其他域中查找,以此类推...
            最后如果在application域中也找不到,则什么也不输出
          EL给我们提供了四个Scope对象,用来精确获取指定域中的属性值
            pageScope
                获取page域中的属性值
            requestScope
                获取request域中的属性值
            sessionScope
                获取session域中的属性值
            applicationScope
                获取application域中的属性值
           通过EL表达式获取JavaBean的属性值
              通过 对象.属性名 的方式获取,注意:调用的是对应的get方法
      --%>
      <%
        Date date = new Date();
        pageContext.setAttribute("date",date+"-");
        request.setAttribute("date",date+"--");
        session.setAttribute("date",date+"---");
        application.setAttribute("date",date+"----");
        //创建Employee对象
          Employee employee = new Employee(1,"张三",new Department(1001,"小卖部"));
          //将employee放到page域中
          pageContext.setAttribute("emp",employee);
      %>
      通过JSP表达式获取域中的属性值:<%=pageContext.getAttribute("date")%><br>
      通过EL表达式获取当前的时间:${date}<br>
      通过EL表达式获取request域中的时间:${requestScope.date}<br>
      通过EL表达式获取employee对象的name属性值:${emp.name}<br>
      通过EL表达式获取employee对象的getAddress方法的返回值:${emp.address}<br>
      通过EL表达式获取employee对象的dept属性的name属性值:${emp.dept.name}<br>
  </body>
</html>

EL中的11个隐含对象

  • 一个我们比较熟悉的
    • pageContext
      • 类型:PageContext
      • 它既是JSP的隐含对象,也是EL的隐含对象
      • 作用:通过它可以获取JSP中其他8个隐含对象
  • 四个Scope对象
    • pageScope
      • 类型:Map<String , Object>
      • 作用:获取page域中的属性值
    • requestScope
      • 类型:Map<String , Object>
      • 作用:获取request域中的属性值
    • sessionScope
      • 类型:Map<String , Object>
      • 作用:获取session域中的属性值
    • applicationScope
      • 类型:Map<String , Object>
      • 作用:获取application域中的属性值
  • 其他六个隐含对象
    • param
      • 类型:Map<String , String>
      • 作用:获取请求参数
    • paramValues
      • 类型:Map<String , String[]>
      • 作用:获取请求参数中一个键对应多个值的情况
    • header
      • 类型:Map<String , String>
      • 作用:获取请求头中的信息
    • headerValues
      • 类型:Map<String , String[]>
      • 作用:获取请求头中一个键对应多个值的情况
    • cookie
      • 类型:Map<String , Cookie>
      • 作用:根据Cookie对象的名字获取对应的Cookie对象
    • initParam
      • 类型:Map<String , String>
      • 作用:获取当前Web应用的初始化参数

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>EL的隐含对象</title>
</head>
<body>
    <%--
        EL中一共有11个隐含对象:
            一个我们比较熟悉的
                pageContext
                    类型:PageContext
                    作用:通过它可以获取JSP中其他八个隐含对象
                    它既是jsp的隐含对象,也是EL的隐含对象;在JSP和EL中可以直接使用,但是如果在EL中
                    要使用JSP的其他八个隐含对象,需要通过pageContext获取
            四个Scope对象
                pageScope
                    类型:Map<String , Object>
                    作用:获取page域中的属性值
                requestScope
                    类型:Map<String , Object>
                    作用:获取request域中的属性值
                sessionScope
                    类型:Map<String , Object>
                    作用:获取session域中的属性值
                applicationScope
                    类型:Map<String , Object>
                    作用:获取application域中的属性值
            其他六个隐含对象
                param
                    类型:Map<String , Stirng>
                    作用:获取请求参数
                paramValues
                    类型:Map<String , Stirng[]>
                    作用:获取请求参数中一个键对应多个值的情况
                header
                    类型:Map<String , Stirng>
                    作用:获取请求头中的信息
                headerValue
                    类型:Map<String , Stirng[]>
                    作用:获取请求头中一个键对应多个值的情况
                cookie
                    类型:Map<String , Cookie>
                    作用:根据Cookie的名字获取对应的Cookie对象
                initParam
                    类型:Map<String , String>
                    作用:获取当前Web应用的初始化参数


    --%>
     通过JSP表达式获取项目的虚拟路径:<%=request.getContextPath()%><br>
     通过EL表达式的隐含对象pageContext获取项目的虚拟路径:${pageContext.request.contextPath}<br>
     通过EL表达式的隐含对象param获取请求参数:${param.username}<br>
     通过EL表达式的隐含对象header获取请求头中的信息:${header['User-Agent']}<br>
     通过EL表达式的隐含对象cookie获取对应的Cookie对象:${cookie.JSESSIONID}<br>
     通过EL表达式的隐含对象initParam获取当前Web应用的初始化参数:${initParam.encoding}<br>

</body>
</html>

JSTL简介

  • 全称:JSP Standard Tag Library,翻译过来叫JSP的标准标签
  • 标签库的分类
    • 核心标签库我
      • 们又称为c标签
    • 函数标签库
      • 需要结合EL表达式使用,里面定义了一些对字符串的操作(对字符串的截取、替换等)
    • 格式化标签库
      • 主要用来对日期、时间、数字进行国际化的操作
    • sql标签库
      • 已被淘汰
    • xml标签库
      • 已被淘汰
  • 使用标签库需要导入以下两个jar包
    • taglibs-standard-impl-1.2.5.jar
    • taglibs-standard-spec-1.2.5.jar
  • 使用c标签需要通过taglib指令将标签导入到页面中
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

常用的标签

  • set标签
 <%--
      1.set标签:用来向域中设置属性值,默认添加到page域中
          var属性:用来指定向域中设置属性值的key
          value属性:用来指定向域中设置的属性值
          scope属性:用来指定放到那个域中,可选值有page、request、session、application
    --%>
    <c:set var="star" value="苍老师" scope="page"></c:set>
    <c:set var="star" value="贾老师" scope="request"></c:set>
    <c:set var="star" value="沈老师" scope="session"></c:set>
    <c:set var="star" value="小泽老师" scope="application"></c:set>
    page域对象中的属性值是:${pageScope.star}<br>
    request域对象中的属性值是:${requestScope.star}<br>
    session域对象中的属性值是:${sessionScope.star}<br>
    application域对象中的属性值是:${applicationScope.star}<br>
  • remove标签
<%--
      2.remove标签:用来移除域中的属性值,默认全域移除,即四个域中都会移除
        var属性:用来指定要移除的域中的属性的key
        scope属性:用来指定移除那个域中的属性值
      --%>
    <c:remove var="star" scope="page"></c:remove>
    <h1>移除之后再次获取域中的属性值</h1>
    page域对象中的属性值是:${pageScope.star}<br>
    request域对象中的属性值是:${requestScope.star}<br>
    session域对象中的属性值是:${sessionScope.star}<br>
    application域对象中的属性值是:${applicationScope.star}<br>
  • if标签
<%--
        1.if标签:相当于Java中的if条件判断
            test属性:用来接收一个布尔类型的值,通常是通过EL表达式获得,当值是true时才执行标签体中的内容
    --%>
    <%
        int age = 5;
        pageContext.setAttribute("age",age);
    %>
    <c:if test="${age < 18}">
        少儿不宜!
    </c:if>
    <c:if test="${age > 18}">
        请尽情浏览!注意身体!
    </c:if>
  • choose标签
 <%--
        2.choose标签:相当于Java中的if..else if...else...
            when标签不能单独使用,必须放在choose标签中
            when标签中的条件的顺序一定要注意
    --%>
    <c:choose>
        <c:when test="${age > 38}">
            大龄少妇
        </c:when>
        <c:when test="${age > 28}">
            懵懂少妇
        </c:when>
        <c:when test="${age > 18}">
            花季少女
        </c:when>
        <c:when test="${age > 8}">
            懵懂少女
        </c:when>
        <c:otherwise>
            小屁孩一个
        </c:otherwise>
    </c:choose>
  • forEach标签
 <%--
        forEach标签:相当于Java中的for循环
            var属性:用来设置一个变量接收遍历到的值,同时会以变量值为key放到page域中
            begin属性:指定循环的开始,值是一个大于等于0的整数
            end属性:指定循环的接收
            step属性:指定循环的步长,默认是1
    --%>
    <%--使用方式一:--%>
    <c:forEach begin="1" end="10" var="index" step="2">
        <a href="#">${pageScope.index}</a>
    </c:forEach>

    <hr>
    <%
        List<String> list = new ArrayList();
//        list.add("苍老师");
//        list.add("马蓉");
//        list.add("李小璐");
//        list.add("宋吉吉");
//        list.add("陶吉吉");
//        list.add("白百何");
//        list.add("苏大强");
//        list.add("文章");
//        list.add("姚笛");
        //将list放到page域中
        pageContext.setAttribute("stars",list);
    %>
    <%--使用方式二(使用的较多):
        items属性:用来接收一个要遍历的集合
    --%>
    <c:forEach var="star" items="${stars}">
        <a href="#">${pageScope.star}</a><br>
    </c:forEach>

    <%--
        empty运算符:主要用来判断一个字符串或一个集合是否为空
            非空的表示方式:
                not empty
              或 !empty
    --%>
    <c:if test="${empty stars}">
        世界很美好!
    </c:if>
    <c:if test="${not empty stars}">
        世界不美好,明星胡乱搞!
    </c:if>
    <c:if test="${!empty stars}">
        世界不美好,明星胡乱搞!
    </c:if>

EL表达式

<%@ page import="java.util.Date" %>
<%@ page import="com.atguigu.el.beans.Employee" %>
<%@ page import="com.atguigu.el.beans.Department" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>EL表达式</title>
  </head>
  <body>
      <%--
          EL的全称:Expression Language,表达式语言
          格式:${表达式}
          作用:主要用来获取域对象中的属性值
          EL查找的规则:默认是四个域都查找
            先从page域中开始查找,找到后直接返回,不再去其他域中查找;
            如果在page域中找不到,再去request域中查找,也是找到后直接返回,不再去其他域中查找,以此类推...
            最后如果在application域中也找不到,则什么也不输出
          EL给我们提供了四个Scope对象,用来精确获取指定域中的属性值
            pageScope
                获取page域中的属性值
            requestScope
                获取request域中的属性值
            sessionScope
                获取session域中的属性值
            applicationScope
                获取application域中的属性值
           通过EL表达式获取JavaBean的属性值
              通过 对象.属性名 的方式获取,注意:调用的是对应的get方法
      --%>
      <%
        Date date = new Date();
        pageContext.setAttribute("date",date+"-");
        request.setAttribute("date",date+"--");
        session.setAttribute("date",date+"---");
        application.setAttribute("date",date+"----");
        //创建Employee对象
          Employee employee = new Employee(1,"张三",new Department(1001,"小卖部"));
          //将employee放到page域中
          pageContext.setAttribute("emp",employee);
      %>
      通过JSP表达式获取域中的属性值:<%=pageContext.getAttribute("date")%><br>
      通过EL表达式获取当前的时间:${date}<br>
      通过EL表达式获取request域中的时间:${requestScope.date}<br>
      通过EL表达式获取employee对象的name属性值:${emp.name}<br>
      通过EL表达式获取employee对象的getAddress方法的返回值:${emp.address}<br>
      通过EL表达式获取employee对象的dept属性的name属性值:${emp.dept.name}<br>
  </body>
</html>

EL的隐含对象


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>EL的隐含对象</title>
</head>
<body>
    <%--
        EL中一共有11个隐含对象:
            一个我们比较熟悉的
                pageContext
                    类型:PageContext
                    作用:通过它可以获取JSP中其他八个隐含对象
                    它既是jsp的隐含对象,也是EL的隐含对象;在JSPEL中可以直接使用,但是如果在EL中
                    要使用JSP的其他八个隐含对象,需要通过pageContext获取
            四个Scope对象
                pageScope
                    类型:Map<String , Object>
                    作用:获取page域中的属性值
                requestScope
                    类型:Map<String , Object>
                    作用:获取request域中的属性值
                sessionScope
                    类型:Map<String , Object>
                    作用:获取session域中的属性值
                applicationScope
                    类型:Map<String , Object>
                    作用:获取application域中的属性值
            其他六个隐含对象
                param
                    类型:Map<String , Stirng>
                    作用:获取请求参数
                paramValues
                    类型:Map<String , Stirng[]>
                    作用:获取请求参数中一个键对应多个值的情况
                header
                    类型:Map<String , Stirng>
                    作用:获取请求头中的信息
                headerValue
                    类型:Map<String , Stirng[]>
                    作用:获取请求头中一个键对应多个值的情况
                cookie
                    类型:Map<String , Cookie>
                    作用:根据Cookie的名字获取对应的Cookie对象
                initParam
                    类型:Map<String , String>
                    作用:获取当前Web应用的初始化参数


    --%>
     通过JSP表达式获取项目的虚拟路径:<%=request.getContextPath()%><br>
     通过EL表达式的隐含对象pageContext获取项目的虚拟路径:${pageContext.request.contextPath}<br>
     通过EL表达式的隐含对象param获取请求参数:${param.username}<br>
     通过EL表达式的隐含对象header获取请求头中的信息:${header['User-Agent']}<br>
     通过EL表达式的隐含对象cookie获取对应的Cookie对象:${cookie.JSESSIONID}<br>
     通过EL表达式的隐含对象initParam获取当前Web应用的初始化参数:${initParam.encoding}<br>

</body>
</html>

JSTL


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
  <head>
    <title>JSTL</title>
  </head>
  <body>
    <%--
        JSTL全称:JSP Standard Tag Library,JSP的标准标签库
         标签库的分类:
            ★核心标签库,我们也称为c标签
            函数标签库,结合EL表达式,主要用来对字符集进行一些操作
            格式化标签库,主要用来进行国际化
            xml标签库,已被淘汰
            sql标签库,已被淘汰
         想要使用标签库需要导入以下两个jar包:
             taglibs-standard-impl-1.2.5.jar
             taglibs-standard-spec-1.2.5.jar

    --%>
    <%--
      1.set标签:用来向域中设置属性值,默认添加到page域中
          var属性:用来指定向域中设置属性值的key
          value属性:用来指定向域中设置的属性值
          scope属性:用来指定放到那个域中,可选值有page、request、session、application
    --%>
    <c:set var="star" value="苍老师" scope="page"></c:set>
    <c:set var="star" value="贾老师" scope="request"></c:set>
    <c:set var="star" value="沈老师" scope="session"></c:set>
    <c:set var="star" value="小泽老师" scope="application"></c:set>
    page域对象中的属性值是:${pageScope.star}<br>
    request域对象中的属性值是:${requestScope.star}<br>
    session域对象中的属性值是:${sessionScope.star}<br>
    application域对象中的属性值是:${applicationScope.star}<br>

    <%--
      2.remove标签:用来移除域中的属性值,默认全域移除,即四个域中都会移除
        var属性:用来指定要移除的域中的属性的key
        scope属性:用来指定移除那个域中的属性值
      --%>
    <c:remove var="star" scope="page"></c:remove>
    <h1>移除之后再次获取域中的属性值</h1>
    page域对象中的属性值是:${pageScope.star}<br>
    request域对象中的属性值是:${requestScope.star}<br>
    session域对象中的属性值是:${sessionScope.star}<br>
    application域对象中的属性值是:${applicationScope.star}<br>
  </body>
</html>

if和choose标签


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>if和choose标签</title>
</head>
<body>
    <%--
        1.if标签:相当于Java中的if条件判断
            test属性:用来接收一个布尔类型的值,通常是通过EL表达式获得,当值是true时才执行标签体中的内容
    --%>
    <%
        int age = 5;
        pageContext.setAttribute("age",age);
    %>
    <c:if test="${age < 18}">
        少儿不宜!
    </c:if>
    <c:if test="${age > 18}">
        请尽情浏览!注意身体!
    </c:if>
    <hr>
    <%--
        2.choose标签:相当于Java中的if..else if...else...
            when标签不能单独使用,必须放在choose标签中
            when标签中的条件的顺序一定要注意
    --%>
    <c:choose>
        <c:when test="${age > 38}">
            大龄少妇
        </c:when>
        <c:when test="${age > 28}">
            懵懂少妇
        </c:when>
        <c:when test="${age > 18}">
            花季少女
        </c:when>
        <c:when test="${age > 8}">
            懵懂少女
        </c:when>
        <c:otherwise>
            小屁孩一个
        </c:otherwise>
    </c:choose>
</body>
</html>

forEach

<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %><%--

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>forEach标签</title>
</head>
<body>
    <%--
        forEach标签:相当于Java中的for循环
            var属性:用来设置一个变量接收遍历到的值,同时会以变量值为key放到page域中
            begin属性:指定循环的开始,值是一个大于等于0的整数
            end属性:指定循环的接收
            step属性:指定循环的步长,默认是1
    --%>
    <%--使用方式一:--%>
    <c:forEach begin="1" end="10" var="index" step="2">
        <a href="#">${pageScope.index}</a>
    </c:forEach>

    <hr>
    <%
        List<String> list = new ArrayList();
//        list.add("苍老师");
//        list.add("马蓉");
//        list.add("李小璐");
//        list.add("宋吉吉");
//        list.add("陶吉吉");
//        list.add("白百何");
//        list.add("苏大强");
//        list.add("文章");
//        list.add("姚笛");
        //将list放到page域中
        pageContext.setAttribute("stars",list);
    %>
    <%--使用方式二(使用的较多):
        items属性:用来接收一个要遍历的集合
    --%>
    <c:forEach var="star" items="${stars}">
        <a href="#">${pageScope.star}</a><br>
    </c:forEach>

    <%--
        empty运算符:主要用来判断一个字符串或一个集合是否为空
            非空的表示方式:
                not empty
              或 !empty
    --%>
    <c:if test="${empty stars}">
        世界很美好!
    </c:if>
    <c:if test="${not empty stars}">
        世界不美好,明星胡乱搞!
    </c:if>
    <c:if test="${!empty stars}">
        世界不美好,明星胡乱搞!
    </c:if>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
4S店客户管理小程序-毕业设计,基于微信小程序+SSM+MySql开发,源码+数据库+论文答辩+毕业论文+视频演示 社会的发展和科学技术的进步,互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。手机具有便利性,速度快,效率高,成本低等优点。 因此,构建符合自己要求的操作系统是非常有意义的。 本文从管理员、用户的功能要求出发,4S店客户管理系统中的功能模块主要是实现管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理,用户客户端:首页、车展、新闻头条、我的。门店客户端:首页、车展、新闻头条、我的经过认真细致的研究,精心准备和规划,最后测试成功,系统可以正常使用。分析功能调整与4S店客户管理系统实现的实际需求相结合,讨论了微信开发者技术与后台结合java语言和MySQL数据库开发4S店客户管理系统的使用。 关键字:4S店客户管理系统小程序 微信开发者 Java技术 MySQL数据库 软件的功能: 1、开发实现4S店客户管理系统的整个系统程序; 2、管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理等。 3、用户客户端:首页、车展、新闻头条、我的 4、门店客户端:首页、车展、新闻头条、我的等相应操作; 5、基础数据管理:实现系统基本信息的添加、修改及删除等操作,并且根据需求进行交流信息的查看及回复相应操作。
现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本微信小程序医院挂号预约系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此微信小程序医院挂号预约系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。微信小程序医院挂号预约系统有管理员,用户两个角色。管理员功能有个人中心,用户管理,医生信息管理,医院信息管理,科室信息管理,预约信息管理,预约取消管理,留言板,系统管理。微信小程序用户可以注册登录,查看医院信息,查看医生信息,查看公告资讯,在科室信息里面进行预约,也可以取消预约。微信小程序医院挂号预约系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值