# JSP 概述

  1. jsp:Java Server Pages java 服务端页面
  2. 一个既可以指定 html 标签,又可以定义 java 代码的特殊页面
  3. 原理:JSP 本质就是一个 Servlet

# 脚本域注释

脚本:JSP 定义 Java 代码的方式

  1. <% 代码 %> :java 代码
  2. <%! 代码 %> :java 的成员位置代码
  3. <%= 代码 %> :输出语句
  4. <!-- --> :只能注释 html 代码片段
  5. <%-- --%> :可以注释所有 jsp 片段

# JSP 内置对象

内置对象:在 jsp 页面中不需要获取或者创建,可以直接使用的对象

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

out 和 response.getWriter () 区别:

  1. 在 tomcat 服务器真正给客户端做出响应之前,会先找 response 缓冲区数据,再找 out 缓冲区数据
  2. response.getWriter () 数据输出永远在 out.write () 之前

# JSP 指令

# JSP 指令作用

用于配置 JSP 页面,导入资源文件

# JSP 指令格式

<% 指令名称 属性名1=属性值1 属性名2=属性值2 ...%>

# JSP 指令的分类

# page:配置 JSP 页面

  1. contentType:等同于 response.setContentType ()
    1. 设置响应体的 mime 类型以及字符集
    2. 设置当前 jsp 页面的编码
  2. import:导包
  3. errorPage:当前页面发生异常后,会自动跳转指定的错误页面
  4. isErrorPage:标识当前也是是否是错误页面
    1. true:是,可以使用内置对象 exception
    2. false:否,默认值,不可以使用内置对象 exception

# include:导入页面资源文件

<%@include file="top.jsp" %>

# taglib:导入资源

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

# EL 表达式

# EL 表达式概述

  1. EL 概念:Expression Language 表达式语言
  2. 作用:替换和简化 jsp 页面中 java 代码的编写
  3. 语法: ${表达式}
  4. jsp 默认支持 el 表达式的

忽略 el 表达式的方法:

  1. 设置 jsp 中 page 指令中: isELIgnored="true" 忽略当前 jsp 页面中所有的 el 表达式
  2. \${表达式} :忽略当前这个 el 表达式

# EL 表达式运算符

  1. 算数运算符: + - * /(div) %(mod)
  2. 比较运算符: > < >= <= == !=
  3. 逻辑运算符: &&(and) ||(or) !(not)
  4. 空运算符: empty
    1. 功能:用于判断字符串、集合、数组对象是否为 null 或者长度是否为 0
    2. ${empty list} :判断字符串、集合、数组对象是否为 null 或者长度为 0
    3. ${not empty str} :表示判断字符串、集合、数组对象是否不为 null 并且 长度 > 0

# EL 表达式获取值

  1. el 表达式只能从域对象中获取值
  2. 从指定域中获取指定键的值: $
    1. 域名称:
      1. pageScope–> pageContext
      2. requestScope–> request
      3. sessionScope–> session
      4. applicationScope –> application(ServletContext)
    2. ${键名}:表示依次从最小的域中查找是否有该键对应的值
  3. 获取对象,List 集合,Map 集合的值
    1. 对象:$
      1. 本质上会去调用对象的 getter 方法
    2. List 集合:$
    3. Map 集合:
      1. $
      2. $
    4. 隐式对象
      1. ${pageContext.request.contextPath}:动态获取虚拟目录

# JSTL

# JSTL 概述

  1. 概念:JavaServer Pages Tag Library JSP 标准标签库
  2. 作用:用于简化和替换 jsp 页面上的 java 代码
  3. 使用:
    1. 导入 jstl 相关 jar 包
    2. 引入标签库:taglib 指令: <%@ taglib %>
    3. 使用标签

# JSTL 标签

# if:相当于 if 语句

  1. test:必须属性,接受 boolean 表达式
    1. 如果表达式为 true,则显示 if 标签体内容,如果为 false,则不显示标签体内容
    2. 一般情况下,test 属性值会结合 el 表达式一起使用
  2. c:if 标签没有 else 情况,想要 else 情况,则可以在定义一个 c:if 标签

# choose:相当于 switch 语句

  1. 使用 choose 标签声明:相当于 switch 声明
  2. 使用 when 标签做判断:相当于 case
  3. 使用 otherwise 标签做其他情况的声明:相当于 default

# foreach:相当于 for 语句

  1. 完成重复操作
    1. begin:开始值
    2. end:结束值
    3. var:临时变量
    4. step:步长
    5. varStatus:循环状态对象
      1. index:容器中元素的索引,从 0 开始
      2. count:循环次数,从 1 开始
  2. 遍历容器
    1. items:容器对象
    2. var:容器中元素的临时变量
    3. varStatus:循环状态对象
      1. index:容器中元素的索引,从 0 开始
      2. count:循环次数,从 1 开始
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Baozi 微信支付

微信支付

Baozi 支付宝

支付宝

Baozi 微信

微信