javaWeb第四天-----jsp\EL\JSTL

一、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>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    

posted @ 2021-01-06 10:49  橙汁one  阅读(108)  评论(0编辑  收藏  举报