zoukankan      html  css  js  c++  java
  • JSP、EL动态页面技术

    JSP、EL动态页面技术

     

    JSP

    jsp中写java代码的方式有三种

      1.<%java代码%>——被翻译到service方法内部

      2.<&=java变量或表达式&>——翻译成service方法内部out.print();

      3.<&!java代码&>——翻译成servlet成员内容

    jsp里面的注释可见范围不同

      <!--  -->——可见范围jsp源码、翻译后的servlet、页面显示html源码

      //单行注释  /*多行注释*/——可见范围jsp源码、翻译后的servlet

      <%--注释内容--%>——可见范围jsp源码

    jsp中三个指令

      1.page指令  <%@page属性名1="属性值1" 属性名2="属性值2"...%>

        language:jsp脚本中可以嵌入的语言种类(默认为java,无法修改)

        pageEncoding:当前jsp文件本身编码——内部可以包含contentType

        contentType:response.setContentType(text/html;charset=UTF-8)

        session:是否jsp在翻译时自动创建session(布朗值)

        import:导包

        errorPage:当前页面出错后跳转页面到哪

        isErrorPage:处理出错页面,配合errorPage使用

      2.include指令  页面静态包含<&@include file="被包含文件地址"&>

      3.taglib指令  引入标签库<%@taglib uri="标签库地址" prefix="前缀"%>

    jsp中内置对象

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

    jsp中四个域

      pageContext域:当前jsp页面范围

      request域:一次请求中

      session:一次会话中

      application域:整个web应用

    EL

    ${EL表达式  };

    EL获得pageContext域中的值:${pageScope.key};

    EL获得request域中的值:${requestScope.key};

    EL获得session域中的值:${sessionScope.key};

    EL获得application域中的值:${applicationScope.key};

    el从上到下依次从4个域中寻找,获取key值,在某个域中获取后不再寻找

    <!-- 模拟域中的数据 -->
    <%
        pageContext.setAttribute("name", "pageContxt");
        //存储字符串
        request.setAttribute("name", "request");
        //存储一个对象
        Users user=new Users();
        user.setId(1);
        user.setUsername("lisi");
        user.setPwd("123");
        session.setAttribute("user", user);
        //存储一个集合
        List<Users> list=new ArrayList<Users>();
        Users user1=new Users();
        user1.setId(1);
        user1.setUsername("wangwu");
        user1.setPwd("123");
        list.add(user1);
        Users user2=new Users();
        user2.setId(1);
        user2.setUsername("zhaoliu");
        user2.setPwd("123");
        list.add(user2);
        application.setAttribute("List", list);
    %>
    <hr>
    <!-- 使用脚本取出域中的值 -->
    <%=request.getAttribute("name") %>
    <%Users u=(Users)session.getAttribute("user");
        out.write(u.getUsername());
    %>
    <hr>
    <!-- 使用EL表达式取出域中的值 -->
    ${requestScope.name}
    ${sessionScope.user.username}
    ${applicationScope.List[0].pwd}
    <hr>
    <!-- 使用el表达式 全域查找(会从最小的找,底层就是findAttribute()) -->
    ${name }
    ${user.username}
    ${List[0].pwd}
  • 相关阅读:
    当我们开发一个接口时需要注意些什么
    一条查询语句在MySQL服务端的执行过程
    痞子衡嵌入式:基于恩智浦i.MXRT1060的MP4视频播放器(RT-Mp4Player)设计
    痞子衡嵌入式:基于恩智浦i.MXRT1010的MP3音乐播放器(RT-Mp3Player)设计
    《痞子衡嵌入式半月刊》 第 18 期
    痞子衡嵌入式:MCUBootUtility v2.4发布,轻松更换Flashloader文件
    华为HMS Core助力开发者打造精品应用,共创数智生活
    HMS Core 6.0即将发布 加码应用生态升级
    华为开发者联盟生态市场企业特惠GO第1期—应用软件专题
    卡片跳转快应用指定页面,如何点返回直接退出快应用回到卡片
  • 原文地址:https://www.cnblogs.com/luzhijin/p/13554491.html
Copyright © 2011-2022 走看看