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. Java解析Excel工具类(兼容xls和xlsx)

    依赖jar <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml&l ...

  2. cudpp库的编译和使用

    项目主页 http://cudpp.github.io/ 根据这个网址的提示进行 https://github.com/cudpp/cudpp/wiki/BuildingCUDPPwithCMake ...

  3. C语言学生成绩管理系统(简易版)

    #include<stdio.h> #include<stdlib.h> #include<string.h> int readstudents(struct st ...

  4. C编程经验总结4

    {}体里的语句不管在一行还是在多行,之间都是要有: for与for之间可以是独立的,也可以是相互嵌套的 For( ; i<5; )=for( ;i<=4;  ) 一般都是在循环里面进行判断 ...

  5. WIN10使用安装包安装Mysql5.6+JDBC

    很多教程教的是安装绿色版mysql或者是安装zip版的mysql,没什么不好,各有千秋,今天要教大家的是使用mysql-installer-community-5.6.43.0.msi安装mysql5 ...

  6. (转)神舟飞船上的计算机使用什么操作系统,为什么是自研发不是 Linux?

    中国航天用的SpaceOS主要内容是仿造美国风河系统公司的VxWorks653(653是产品名,并非版本号).先解释为什么用这个系统不用Linux:航天器的内存和CPU都非常弱,弱到什么程度呢:天宫一 ...

  7. thinkphp5控制器向+vue的data里传值

    传一维数组传值 $array=['id'=>40,"cat_name"=>"明星产品"]; $MenuCats_info=json_encode($ ...

  8. python网络爬虫入门范例

    python网络爬虫入门范例 Windows用户建议安装anaconda,因为有些套件难以安装. 安装使用pip install * 找出所有含有特定标签的HTML元素 找出含有特定CSS属性的元素 ...

  9. 学习Pytbon第十八篇,异常处理

    什么是异常? 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行. 一般情况下,在Python无法正常处理程序时就会发生一个异常. 异常是Python对象,表示一个错误. 当Pyth ...

  10. 477. Total Hamming Distance

    class Solution { public: int totalHammingDistance(vector<int>& nums) { ; ; i < ; i++) { ...