一、EL表达式

  作用:从作用域(pageContext,request,session,application)中取值,并显示在页面中。

  本质:用于替换输出脚本(<%= %>)。

  1、从作用域中取基本类型|字符串的值

    request.setAttribute("key","value");

    ${requestScope.key}--------->字符串value将输出在页面中。

    ps、EL表达式取命名属性时,若命名属性不存在,则不显示任何内容。而用输出脚本+内置对象取值时,则显示null。

    session.setAttribute("key","value");

    ${sessionScope.key}---------->字符串value将输出在页面中。

    application跟pageContext同理。

    

    ${key}  //这种情况的话,会从pageContext,request,session,application作用域依次查找,一旦发现,则直接将内容输出在页面中。

  2、从作用域中取对象的内容进行显示

    reqeust.setAttribute("people",people);

    ${requestScope.people.name};

    ${requestScope.people.age};

    ps、.name和.age的操作,EL表达式会自动调用people对象的getName()和getAge()方法。EL表达式只认方法,不认这个属性是否为这个对象的属性。

  3、运算

    a、算数运算(+、-、*、/、%)

      request.setAttribute("age",10);

      ${requestScope.age+1}-------->在页面输出11

    b、比较运算(>、>=、<、<=、==、!=)

      request.setAttribute("age",10);

      ${requestScope.age>11}--------->在页面输出false

    c、逻辑运算(&&、||、!)

      ${true&&true}------->在页面输出true

    d、empty运算

      作用是:用于判断这个明明属性是否存在。

      ${empty requestScopte.name}-------->存在:true,不存在:false

  4、EL表达式中的特殊内置对象

    a、pageContext(属于jsp的内置对象,在EL表达式中可以直接使用,其他的jsp内置对象均需要通过pageContext来获得)

      ${pageContext.request.contextPath}  //获取动态应用名

    b、param(基本没用)

      可以在EL表达式中获取用户client提交的数据。

      ${param.name}

    c、cookie

      可以再EL表达式中直接获取cookie的内容。

      ${cookie.JSESSIONID.value}

二、JSTL(java stander tag lib)java标准标签库

  作用:与EL表达式一起配合在JSP中显示数据。

  1、显示数据的几种方式

    a、显示单个数据

    b、有条件的显示数据

    c、显示多条数据

  2、JSTL的开发步骤

    准备阶段:<%taglib uri="http://java.sun.con/jsp/core" prefix="c"%>

    a、显示单个数据(8中基本类型+String+对象的属性)

      EL表达式直接负责

    b、有条件的显示数据

      <c:if test="EL表达式">

        你好。

      </c:if>

      类似于java代码中的if语句,当test=""中的内容为true时,便签体内的"你好"才会输出到页面中。

      <c:choose>

        <c:when test="">

          你好。

        </c:when>

        <c:when test="">

          再见。

        </c:when>

      </c:choose>

      类似于条件分支,满足哪个分支,输出哪个分支中的内容。

    c、显示多个数据(用于显示数组、集合)

      <c:forEach var="当前遍历集合中的元素" items="EL表达式(被遍历集合或者数组)">

        ${当前遍历集合中的元素}

      </c:forEach>

      ps、遍历Map时,var中定义的是key=value的组合,应用${当前遍历集合中的元素.key}来取key得值,用${当前便立即和中的元素.value}来取value的值。例如:

      <c:forEach var="u" items="${requestScope.users}">

        ${u.key}======${u.value.name}

      </c:forEach>

      

      遍历状态:

      <c:forEach var="" items="" varStatus="s">

        ${s.count}  //当前遍历的次数

        ${s.index}  //当前遍历的下标

        ${s.first}  //当前是不是第一次遍历 ture|false

        ${s.last}  //当前是不是最后一次遍历 true|false

      </c:forEach>

      <c:forEach step="" begin="" end="">

      </c:forEach>

      step步幅、begin遍历开始下标、end遍历结束下标。

    d、<c:url>标签

      处理url连接,需要把书写的URL内容都放置到这个标签当中。

      目的:如果用户禁用cookie的话,这个标签会自动完成url重写。

      <c:url context="${pageContext.request.contextPath}" value="/xxxx/action">          

浅谈JSP(二)的更多相关文章

  1. 【sql注入】浅谈JSP安全开发之SQL注入

    [sql注入]浅谈JSP安全开发之SQL注入 本文转自:i春秋社区 前言不管是用什么语言编写WEB应用程序,他们都或多或少有一些地方存在漏洞.如果你想知道漏洞的运行原理,和防御方案,那么请看完本篇文章 ...

  2. Android开发-浅谈架构(二)

    写在前面的话 我记得有一期罗胖的<罗辑思维>中他提到 我们在这个碎片化 充满焦虑的时代该怎么学习--用30%的时间 了解70%该领域的知识然后迅速转移芳草鲜美的地方 像游牧民族那样.原话应 ...

  3. 浅谈Struts2(二)

    一.struts2的跳转 1.action跳转JSP a.默认为forward <action name="action1" class="com.liquidxu ...

  4. 浅谈JSP(一)

    一.JSP引言 JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计.它是在传统的网页HTML文件(*.htm,*.html)中插入Java ...

  5. 【安全开发】浅谈JSP安全开发之XSS

    前言     大家好,好男人就是我,我就是好男人,我就是-0nise.在各大漏洞举报平台,我们时常会看到XSS漏洞.那么问题来了,为何会出现这种漏洞?出现这种漏洞应该怎么修复?目录     1.XSS ...

  6. Salesforce Consumer Goods Cloud 浅谈篇二之门店产品促销的配置

    本篇参考:https://documentation.b2c.commercecloud.salesforce.com/DOC1/index.jsp?topic=%2Fcom.demandware.d ...

  7. 浅谈JSP中include指令与include动作标识的区别

    JSP中主要包含三大指令,分别是page,include,taglib.本篇主要提及include指令. include指令使用格式:<%@ include file="文件的绝对路径 ...

  8. 浅谈JSP注释

    HTML注释 JSP文件是由HTML尿急和嵌入的Java程序片段组成的,所以在HTML中的注释同样可以在JSP文件中使用.注释格式:<!--注释内容--> <!-- 欢迎提示信息! ...

  9. Qt浅谈之二十七进程间通信之QtDBus

    一.简介 DBus的出现,使得Linux进程间通信更加便捷,不仅可以和用户空间应用程序进行通信,而且还可以和内核的程序进行通信,DBus使得Linux变得更加智能,更加具有交互性.        DB ...

随机推荐

  1. 製程能力介紹(SPC introduction) ─ Ck之製程能力解釋

    Ck之製程能力解釋 a=M-X: 代表規格中心(也就是製程之期望中心)與實際製造出來之群體中心的距離. b=T/2: 代表規格的一半. 所以,當Ck=a/b=M-X/(T/2)以文字來說明就是:實際作 ...

  2. Android 使用Jsoup解析Html

    想要做一个看新闻的应用,类似Cnbeta客户端的东西.大致思路如下:根据链接获取新闻列表页的html代码,然后解析,找到所有的新闻标题和新闻链接用listView显示,当点击ListView的Item ...

  3. sql like 通配符 模糊查询技巧及特殊字符

    最近碰到like模糊匹配的问题,找到一些答案接触迷惑,觉得有知识是自己忽略的,现在整理出来,既强化记忆,又是一次记录,以下转自一篇Blog,关于sql server like的通配符和字符带通配符的处 ...

  4. 计算机原理学习(2)-- 存储器和I/O设备和总线

    前言 前一篇文章介绍了冯诺依曼体系结构的计算机的基本工作原理,其中主要介绍了CPU的结构和工作原理.这一篇主要来介绍存储区,总线,以及IO设备等其他几大组件,来了解整个计算机是如何工作的. 这些东西都 ...

  5. 如何显示Mac OS X上的隐藏文件和文件夹

    显示隐藏文件以及文件夹命令: defaults write com.apple.finder AppleShowAllFiles YES Mac显示隐藏文件 对于OS X Mavericks 10.9 ...

  6. 假设说这个世界不是真实存在的,仅仅是一段代码,迄今为止你发现了哪些bug?

    给这个世界写代码的不是一个人,而是一个团队(这么大的项目,一个人开发不了).并且严重怀疑这个一个开源项目.开发人员被我们觉得是神,所以一神论是不正确的,众神论才是真理,且凡人是有机会成为神的(參悟神道 ...

  7. js快排与namespace

    function quickSort(arr){ if(arr.length<=1){ return arr; } var num = Math.floor(arr.length/2); var ...

  8. HTML5的绘图的支持

    一.简单介绍canvas元素 <canvas.../>是HTML5新增的一个元素,该元素用于绘制图形.实际上<canvas../>只是相当于一张画布. 它除了可以指定通用属性外 ...

  9. 用VIM删除空行

    从网上找了一个 :g/^s*$/d 开始用的挺好,后来遇到一种空格开头的空行,就不好用了. MSDN上说正则匹配空行用/^\s*$/,就试着把上面的命令改为: :g/^\s*$/d 就可以了. 用的操 ...

  10. English - when用法

    一.作为副词,它有以下的用法:  1. 作为疑问副词,引导特殊疑问句,意为“什么时候:何时”.如: ( 1 ) When will they come back?( 2 ) What time wil ...