JSP

指令

  • 格式: <%@ 指令名称 属性名1=属性值1 属性名2=属性值2 ... %>
  • 分类:
    • page 配置JSP页面

      • contentType:等同于response.setContextType()
      • import:导包
      • errorPage:当页面发生异常后,会自动跳转到指定的错误页面
      • isErrorPage:标识当前页是否是错误页面
    • include:导入页面资源
      • <%@include file="top.jsp"%>
    • taglib:导入资源
      • <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
      • prefix:前缀,自定义

注释

  1. HTML注释

    • <!-- -->
  2. JSP注释:推荐使用
    • <%-- --%>

内置对象

变量名 真实类型 作用
pageContext PageContext 当前页面共享数据,还可以获取其他八个内置对象
request HttpServletRequest 一次请求访问的多个资源(转发)
session HttpSession 一次会话的多个请求间
application ServletContext 所有用户间共享数据
response HttpServletResponse 响应对象
page Object 当前页面(Servlet)的对象 this
out JspWriter 输出对象,数据输出到页面上
config ServletConfig Servlet的配置对象
exception Throwable 异常对象

EL

${表达式}

  • jsp默认支持el表达式,设置page中的 isELIgnored="true" 忽略当前页面中的所有el表达式
  • \${表达式} :忽略当前这个el表达式

使用

  • 空运算符: empty

    • 判断字符串、集合、数组对象是否为null或者长度是否为0
    • ${empty list} :判断字符串、集合、数组对象是否为null或者长度为0
    • ${not empty str} :表示判断字符串、集合、数组对象是否不为null 并且 长度>0
  • 获取值

    • 只能从域对象中获取值 ${域名称.键名}

      • pageScope --> pageContext
      • requestScope --> request
      • sessionScope --> session
      • applicationScope --> application(ServletContext)
    • ${键名}:表示依次从最小的域中查找是否有该键对应的值,直到找到为止
    • 获取对象、List集合、Map集合的值
      1. 对象:${域名称.键名.属性名}

        • 本质上会去调用对象的getter方法
      2. List集合:${域名称.键名[索引]}

      3. Map集合:

        • ${域名称.键名.key名称}
        • ${域名称.键名["key名称"]}
  • ${pageContext.request.contextPath}:动态获取虚拟目录

JSTL

JSP标准标签库

使用步骤

  1. 导入jstl相关jar包
  2. 引入标签库:taglib

常用的JSTL标签

  • if

      <c:if test=""></c:if>
  • choose

      <c:choose>
    <c:when test="">情况1</c:when>
    <c:when test="">情况2</c:when>
    <c:otherwise>其他情况</c:otherwise>
    </c:choose>
  • foreach

    1. 完成重复的操作 for(int i = 0; i < 10; i ++)

      • 属性:

        • begin:开始值
        • end:结束值
        • var:临时变量
        • step:步长
        • varStatus:循环状态对象
          • index:容器中元素的索引,从0开始
          • count:循环次数,从1开始
    2. 遍历容器 for(User user : list)
      • 属性:

        • items:容器对象
        • var:容器中元素的临时变量
        • varStatus:循环状态对象
          • index:容器中元素的索引,从0开始
          • count:循环次数,从1开始

JavaWeb笔记(五)JSP的更多相关文章

  1. 超全面的JavaWeb笔记day11<JSP&Session&Cookie&HttpSession>

    1.JSP 2.回话跟踪技术 3.Cookie 4.HttpSession JSP入门 1 JSP概述 1.1 什么是JSP JSP(Java Server Pages)是JavaWeb服务器端的动态 ...

  2. 超全面的JavaWeb笔记day12<Jsp&JavaBean&El表达式>

    1.JSP三大指令 page include taglib 2.9个内置对象 out page pageContext request response session application exc ...

  3. javaweb(十五)——JSP基础语法

    任何语言都有自己的语法,JAVA中有,JSP虽然是在JAVA上的一种应用,但是依然有其自己扩充的语法,而且在JSP中,所有的JAVA语句都可以使用. 一.JSP模版元素 JSP页面中的HTML内容称之 ...

  4. javaweb笔记五

    JSP:java server page服务器脚本语言.(脚本===插件),是一种在html代码中,嵌入java代码的方式.解决servlet产生动态页面缺陷而产生的一门技术.js:客户端脚本语言js ...

  5. C#可扩展编程之MEF学习笔记(五):MEF高级进阶

    好久没有写博客了,今天抽空继续写MEF系列的文章.有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后. 前面四篇讲了MEF的基础知识,学完了前四篇,MEF中比较常用 ...

  6. 《MFC游戏开发》笔记五 定时器和简单动画

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9332377 作者:七十一雾央 新浪微博:http:// ...

  7. (转)Qt Model/View 学习笔记 (五)——View 类

    Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...

  8. java之jvm学习笔记五(实践写自己的类装载器)

    java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...

  9. javaWEB总结(12):JSP页面的九个隐含对象

    前言 jsp本质上是一个servlet,而在jsp中有九个不用声明就可以使用的对象,我们叫他隐含对象.本文基于上文所写,如有需要可查看上一篇文章javaWEB总结(11):JSP简介及原理. 打开上次 ...

  10. Crazyflie笔记五: CRTP 实时通信协议(一)(转)

    源:Crazyflie笔记五: CRTP 实时通信协议(一) 这里详细介绍了 Crazyflie 的 CRTP实时通信协议的相关内容,由于内容很长,分几篇博文来讲述.这里是第一节内容.欢迎交流:301 ...

随机推荐

  1. 在写移动端时,a标签或者input标签等 在手机上点击背后会有阴影的解决办法

    a,input{-webkit-tap-highlight-color:rgba(255,0,0,0);} 被背景设置成透明的就行了

  2. 单源最短路模板(dijkstra)

    单源最短路(dijkstra算法及堆优化) 弱化版题目链接 n^2 dijkstra模板 #include<iostream> #include<cstdio> #includ ...

  3. cudpp库使用说明

    所有信息是我个人在使用过程中的小小经验,不是什么权威性文档,旨在帮助需要研究此类信息的朋友少走点弯路. 整个项目的主函数,一切从这里开始 在cudpp_testrig右键属性页里找到调试,在命令行里输 ...

  4. 泉五培训Day3

    T1 家庭作业 题目 [问题描述] 小P为了能高效完成作业,规定每项作业花一个单位时间. 他的学习日从0时刻开始,有100000个单位时间.在任一时刻,他都可以选择编号1~N的N项作业中的任意一项作业 ...

  5. LeetCode111. Minimum Depth of Binary Tree

    题目 给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 说明: 叶子节点是指没有子节点的节点. 示例: 给定二叉树 [3,9,20,null,null,15, ...

  6. PXE自动化安装CentOS6/7

    服务器为centos7 安装前准备:关闭防火墙和SELINUX 虚拟机准备第二块网卡,设置主机模式,关闭虚拟机网络配置中主机模式的DHCP功能,并设置静态IP nmcli c a con-name e ...

  7. 近年来爆发的CVE漏洞编号

    1.Office漏洞 Office漏洞是大部分APT组织最喜爱的漏洞,Office在个人办公电脑使用量大,对针对性目标是最佳的外网入口,效果也是最直接的. CVE编号  漏洞类型 使用组织 CVE-2 ...

  8. html之table&select不为人知的操作

    table标签和其它标签不一样,他有属性和方法! table属性: rows      可以得到table的row集合 cells      得到table所有单元格 table方法: insertR ...

  9. TP5 行为Behavior用法说明

    TP5 行为Behavior用法说明 无论是tp3还是在tp5中,行为都是一个非常重要的概念,关于太多的理论知识,就不多说了,不了解的请查看开发文档:TP5 行为概述 以下,就由代码来一步一步实现行为 ...

  10. stark组件(7):增加分页功能

    效果图: 分页部分代码: # 1.分页处理 all_count = self.model_class.objects.all().count() query_params = request.GET. ...