zoukankan      html  css  js  c++  java
  • javaWeb第四天-----jspELJSTL

    一、JSP(java server pages)

      1、概念:

      jsp是一种动态网页技术标准。jsp部署在服务器上,根据请求来动态生成html、xml和其他格式的网页,然后返回给请求者。jsp以java语言为脚本语言。

      jsp将java代码和特定变动内容放在静态页面中,以静态页面为模板,动态生成其中的部分内容。jsp在运行时会先被jsp编译器编译成servlet.java文件,然后再被编译成class文件。

      2、为什么要使用jsp

        jsp就是一个特殊的servlet。

        普通的servlet也可以通过wirte()来向客户端生成网页,但是css,html,java代码写在了一块,耦合度高,可读性差。所以官方就制定了一个标准,即可显示数据,又可以设置css和js.

      3、JSP创建过程

        ①客户端发送请求到服务器,服务器根据请求来加载指定的jsp文件

        ②web服务器的jsp引擎编译将jsp文件加载为servlet.java文件

        ③jsp引擎将servlet.java文件再编译成class文件

        ④服务器执行class文件

        ⑤服务器将执行结果返回给客户端

      4、jsp的组成

        Ⅰ、指令

          作用:用于配置jsp页面,加载资源文件

          格式:<%@ 指令名称   属性名=属性值%>  

    <!--导入jar包-->
    <%@ page import="java.util.List" %>  
    <%@ page import="java.util.Map" %>
    <!--设置页面的字符集编码 和mime 类型-->
    <%@ page contentType="text/html;charset=UTF-8" language="java" %> 

        Ⅱ、注释

          <!-- --> 只能注释html代码

          <%-- --%>所有代码都可以注释

        Ⅲ、9大内置对象:在jsp中不用创建对象,直接使用的对象

          pageContext 、request、session、application、response、page、out、config、exception

        Ⅳ、四大域对象

          pageContext、request、session、application

          注意:

            <% %> 这个标签中写java代码

            <%=变量名 %> 这种方式表示可以将java变量显示在jsp页面中

    <%@ page import="java.util.Map" %>
    <%@ page import="java.util.List" %>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>用户信息展示</title>
        <style>
            table{
                background-color: red;
                border: 2px solid blue;
            }
            td{
                border: 1px solid green;
            }
        </style>
    </head>
    <body>
    <table>
        <thead>
            <tr>
                <th>编号</th>
                <th>用户名</th>
                <th>密码</th>
            </tr>
        </thead>
        <tbody>
            <%
                List<Map<String, Object>> maps = (List<Map<String, Object>>)request.getAttribute("maps");
                for (Map<String, Object> map : maps) {
            %>
            <tr>
                <td><%=map.get("id")%></td>
                <td><%=map.get("username")%></td>
                <td><%=map.get("password")%></td>
            </tr>
            <%
                }
            %>
        ${requestScope.maps}
        ${sessionScope.msg}
        </tbody>
    </table>
    </body>
    </html>
    View Code

    二、EL表达式

        概念:表达式语言:Expression language

        作用:<%=变量名%> 这种写法有缺点,将html标签和java语言写在一块,用el来替代它

        语法:${域对象.变量名}

        使用:可以运算、取值

        Ⅰ、支持运算符

          算术运算符:+ - * % /

          关系运算符:< > == !=

          逻辑运算符:and or not

        Ⅱ、值的获取

          值只能在域对象中获取(四大内置域对象)

          语法:${域名.键名}、${变量名}

          域名称:pageScope、requestScope、sessionScope、applicationScope

          示例一:取Map中的值 

    <%Map<Object, Object> map = new HashMap<>();
    map.put("id",1);
    map.put("name","张大骚");
    map.put("age",18);
    map.put("address","泰国");
    request.setAttribute("map",map);//将map添加到request域对象中
    %>
    
    ${requestScope.map.get("name")}

           示例二:${变量名}

    <%
        request.setAttribut("name","zhangsan");
    %>
    ${name}

    三、JSTL  --标准标签库

      JSTL(Java server tag library)  作用:为了替代<%%>

      JSTL标签库是jsp的一个标签集合,它封装了jsp的通用核心功能。

      5个类别:核心标签、sql标签、格式化标签、xml标签、jstl标签

      使用步骤:

        Ⅰ、导入jar包

          jstl-1.2.jar 和  standard.jar

        Ⅱ、在页面上引入指令

          <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

        Ⅲ、if判断和for循环的使用

          ①c:if判断     

     <%--
        test:if是否执行的条件判断
        没有else,如果需要else,就再写一个c:if
      --%>
      <c:if test="${requestScope.map1 !=null}">
        ${requestScope.map1}
      </c:if>

          ②c:foreach循环

    <%--遍历常量
          begin:开始的初始值
          end:结束的范围
          step:步进表达式
          var:临时变量
      --%>
      <c:forEach begin="1" end="10" var="i" step="1">
        ${i}
      </c:forEach>
    
      <%--遍历容器
          items:需要遍历的数据
          var:每次遍历的结果
          varStatus:包含两个属性index 和 count,分别代表当前索引和当前循环的次数,
      --%>
      <c:forEach items="${lists}" var="cc" varStatus="aa">
        <h5>${cc}------${aa.index}</h5>
      </c:forEach>

        

  • 相关阅读:
    数据库注意事项
    SQL函数
    2019 SDN阅读作业(2)
    2019 SDN上机第五次作业
    2019 SDN上机第四次作业
    2019 SDN阅读作业
    2019 SDN上机第三次作业
    mysql使用记录
    2019 SDN上机第二次作业
    2019 SDN上机第一次作业
  • 原文地址:https://www.cnblogs.com/fbbg/p/14239777.html
Copyright © 2011-2022 走看看