zoukankan      html  css  js  c++  java
  • JSP/EL/JSTL

    jsp脚本

    写el表达式之前必须加上
    <%j ava代码 %>
    <%=java变量或表达式%>
    <%!java代码%>
    注释:
    Html注释:<!--注释内容-->
    java注释://单行注释  /*多行注释*/
    jsp注释:<%--注释内%>
    JSP指令:
     page指令
     include指令
    jsp内置/隐式对象
    out request  response  config   session application page  pageContext  exception
    jsp脚本第二弹
    9个内置隐式对象详解
    静态导入:

    <%@ include file="/header.jsp" %>
        <h3 style="color:red">这是身体!</h3>
        <%@ include file="/footer.jsp" %>

     比较灵活的导入

    <jsp:include page="/header.jsp"></jsp:include>
    这时身体
    <jsp:include page="/footer.jsp"></jsp:include>

    出来效果一样。
    out request response config application pageContext  session page exception
    out request response config application page pageContext session exception

    1、out详解,作为一个往页面输出的内置对象,它的写法是out.write();缓冲区默认8kb,设置成0自动关闭,与同样可以在页面输出东西的response.getWrite.write();来讲在<%%>中,顺序就一样了,要不就是response>out优先输出。

    pageContext作用域
        pageContext.setAttribute("name", "楚慈",pageContext.APPLICATION_SCOPE);
    pageContext.findAttribute("name")+"........."
    ---依次从pageContext域,request域,session域,application域中获    取属性,在某个域中获取后将不在向后寻找
    /通过pageContext从其他域中取值
    pageContext.getAttribute("name",pageContext.REQUEST_SCOPE)
    %>
    <%=
    pageContext.getAttribute("name",pageContext.SESSION_SCOPE)
    %>
    <%=
    pageContext.getAttribute("name",pageContext.APPLICATION_SCOPE)
    %>


       servlet作用域有三个,session(一个服务器),request(一次请求),servletContext(服务器)
       jsp四大作用域:pageContext(当前页)session(一次会话)application(整个应用)request(一次请求)
    因为有8大隐式,所以pageContext可以调用这里面的各种操作,如请求,响应等
    jsp的静态包含include是直接在jsp里面把路径固定死,而动态包含则是<jsp:include page="被包含页面">
    接着可以请求转发,<jsp:forward page="要转发的资源"/>

    EL一定要引入要不值取不出来

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


    <!-- 相当于pageCon.findAttrbute,用name取key,一次寻找后不再找 -->
    ${name}
    <!-- 实体类对象.属性 -->
    ${user.name}....${user.age}
    <!-- 集合 -->
    ${List[0].name }.....${List[1].age }
    <!-- el执行表达式 -->
    ${2*2 }
    <!--  判断集合或者对象是否为空,空=true,不空=false-->
    ${!empty user }
    ${user==null? }el获取普通字符串${name }
    el获取对象的属性${user.name }
    el获取集合里的属性${List[0].name }    
    el也执行表达式
    ${2*2 }直接进行计算取值
    ${empty user }判断是否为空
    ${user==null?"1":"2" }三目运算符
    从数据库里拿到商品信息。

    JSTL技术
    el技术是存取值,jstl是遍历。需要提前引入  <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    然后可以用来<c:if test="${empty user>用来判断</c:if>
    f普通for循环遍历
    <c:forEach begin="0" end="10" var ="i">
            ${i }
        </c:forEach>

    这个等同于

    for(int i=0;i<5;i++){

    i

    }
    增强for  
    <c:forEach items="${List }" var="user">
        ${user.name }
    </c:forEach>

    for(com c:co){

    c

    }

    只需要写一个就可以遍历后面的。

  • 相关阅读:
    Hive介绍和Hive环境搭建
    数学【p1658】 购物
    背包【p1858】 多人背包(次优解 or 第k优解)
    Manacher【p4555】 [国家集训队]最长双回文串
    Manacher【p1659】 [国家集训队]拉拉队排练
    数学【p2117】 小z的矩阵
    数学【p2613】 【模板】有理数取余(费马小定理)
    贪心+数学【p3156】 [CQOI2011]分金币 ([HAOI2008]糖果传递)
    线段树【 bzoj3132 】【p4145 】上帝造题的七分钟2 / 花神游历各国
    ST表【p1311】 选择客栈
  • 原文地址:https://www.cnblogs.com/a199706/p/11603486.html
Copyright © 2011-2022 走看看