【JavaWeb】JSP&EL&JSTL学习笔记

目录

JSP

jsp指令

内置对象

el

获取值

    el表达式支持运算符

JSTL

常用标签


JSP

     JSP:Java服务器端页面(Java Server Pages) ,本质上是一个servlet,可以理解为是一个特殊的页面,该页面既可以定义HTML标签,又可以定义java代码.其作用是简化了书写页面,展示动态页面.

jsp指令

作用:声明jsp的一些属性和行为,jsp转换成servlet需要有一定的依据

格式:

  • <%@指令名称 属性1="值1" 属性2="值2"%>

  • 例如:<%@ page contentType="text/html;charset=UTF-8" language="java" %>

三大指令:

  1. page:声明页面的一些属性或者导入依赖的java文件
  2. include:将其他页面中的内容复制到当前页面中(指令包含.   静态包含)
  3. taglib:导入其他的标签库

page指令:

contentType:相当于java中的response.setContentType("")
language:声明 脚本的语言,目前只有java值
isELIgnored:是否忽略EL(el是否不可用),默认值是false
session:用来声明当前页面是否可用使用session这个对象 默认值是true
errorPage:当此页面出现错误的时候,转发到哪个页面上
isErrorPage:声明当前页面是一个错误页面,一旦此值为true的时候,就可用execption对象

使用方式:

<%@ page contentType="text/html;charset=utf-8"%>
<%@ page language="java" session="false" %>

include指令:

        用来包含其他的页面,一般开发中会将相同的代码抽取成公共的页面,通过include指定将公共的页面包含起来.

                   

taglib指令

导入标签库.

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

内置对象

jsp中一共有九大内置对象:

变量名 真实类型 作用
pageContext PageContext 当前页面中共享数据
request  HttpServletRequest  一次请求中共享数据
session HttpSession 一次会话中共享数据
application ServletContext 整个web应用共享数据
response HTTPServletResponse 响应对象
page Object 当前页面对象
out JSPWriter 输出对象
config ServletConfig servlet配置对象
exception Throwable 异常对象

el

       jsp可以嵌套java代码,使用脚本元素,但是相对复杂麻烦,当下,已经采用el+jspl的方式替换了.

       el作用:主要是活的域中数据

       jstl作用:获得数据后遍历 判断数据.

获取值

el表达式只能从域对象中获取数据

语法:

  • ${pageScope.键名} //从page域中获取指定键名对应的值

  • ${requestScope.键名} //从request域中获取指定键名对应的值

  • ${sessionScope.键名} //从session域中获取指定键名对应的值

  • ${applicationScope.键名} //从application域中获取指定键名对应的值

简化写法:

${键名}:从最小域到最大域依次查找,若找到,立即返回且终止查找;若没有找到,返回""

    el表达式支持运算符

* 算数运算符
        语法: + - * /(div) %(mod)
* 比较运算符
        语法:> < >= <= ==(eq) !=(ne)
* 逻辑运算符
        语法:&&(and) ||(or) !(not)
* 三元运算符
        语法:${条件表达式?为真:为假}
* 空运算符
         语法:${not empty 对象}
         功能:
             用于非空判断,
             判断一个字符串是否为null或者""
             判断一个集合或者数组的长度是否为0
             判断一个对象是否为null

JSTL

        JSTL的本质是标签,含一定逻辑的标签,其作用主要在页面进行判断和循环操作.JSTL有5个子库,当前常用的核心库是core

标签库 标签库的URI 前缀
Core http://java.sun.com/jsp/jstl/core c
国际化(几乎不用) http://java.sun.com/jsp/jstl/fmt fmt
SQL(过时) http://java.sun.com/jsp/jstl/sql sql
XML(过时) http://java.sun.com/jsp/jstl/xml x
Functions(几乎不用) http://java.sun.com/jsp/jstl/functions fn

jstl是一套标准(接口) , 必须要引入实现 引入jar 2个jar包

链接:https://pan.baidu.com/s/1qmMZp98dgjgjxDo9ydvp5w 
提取码:rjca

使用步骤:

  1. 导入jar包
  2. 在使用的页面中通过<%@taglib prefix="标签前缀" uri="标签库的uri"%>导入标签库

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

常用标签

    c:if

<c:if test="${返回值为boolen的el表达式}">若test为true的时候就会展示此内容</c:if>

    c:foreach

普通循环:

<c:forEach begin="开始的数字" end="结束的数字" step="步长(若为1可省略)" var="当前遍历到的数据起个名字">
    ${变量名字}
</c:forEach>

<c:forEach begin="1" end="10" step="1" var="n">
    ${n}
</c:forEach>

增强循环:

<c:forEach items="${从域中获取要遍历的集合}" var="当前遍历到的数据起个名字" varStatus="循环遍历的状态">
    ${循环变量的名字}
</c:forEach>

猜你喜欢

转载自blog.csdn.net/weixin_43267344/article/details/108664407