jsp基础-指令,内置对象,动作,EL表达式,JSTL技术

一、指令
  1、page指令
    1):语法:<%@ page 属性名1=属性值1 属性名2=属性值2%>
    2):Page指令用来定义jsp文件的全局属性
    3):只有impot属性可以出现多次,其他的属性只能出现一次

    4):常用属性:
      language属性:声明使用脚本的语言。
      extends属性:表明jsp编译成servlet的时候继承的类。默认值:HttpJspBase
      session属性:表明jsp中时候可以直接使用session对象
      errorPage属性:当当前页面出错后跳转到哪个页面
      isErrorPage属性:当前页面是一个处理错误的页面
      import属性:导包
      isElgnored属性:通知jsp是否忽略El表达式
  2、include指令
   1):语法<%@ include 属性名=属性值% >
   2):作用:在jsp页面静态包含一个文件,同时又jsp解析包含的文件内容
   3:):常用属性:
      file属性:指示jsp包含属性的路径
  3、Taglib指令
   1):语法<%@ taglib 属性名=属性值%>
   2):用于在jsp页面引入标签库
   3:):常用属性
      uri属性:引入标签库的路径
      prefix属性:引入标签库的别名
二、内置对象
  定义:可以直接在jsp页面使用的对象。(九大内置对象)
    1、out:输出对象 out.write(object o);
    2、request:客户端发送的请求对象
    3、response:服务器发送的相应对象
    4、config:服务器的全局配置对象
    5、application:服务器的全局域对象
    6、session:服务器对应客户端的session对象
    7、page:当前jsp被翻译为的servlet对象
    8、pageContext:当前jsp的上下文对象
    9、exception:本jsp运行时产生异常的对象
    注意:exception只有在声明 isErrorPage="true" 后才生成

  pageContext对象:页面的上下文对象
    作用一:提供page范围的数据存取的方法(域对象)
      1):存入数据:setAttribute(String str,Object val,[int i]):第一个参数为key ,第二个参数为value,第三个参数为需要调用其他的域对象所对应的 int 值(可以不写)
      2):获取数据:getAttribute(String str,[int i]):第一个参数为key ,第二个参数为需要调用其他的域对象所对应的 int 值(可以不写)
      3):移除数据:removeAttribute(String str,[int i]):第一个参数为key ,第二个参数为需要调用其他的域对象所对应的 int 值(可以不写)
      4:):获取数据:findAttribute(String str,[int i]):第一个参数为key ,第二个参数为需要调用其他的域对象所对应的 int 值(可以不写),依次从 pageContext,request,session,application 域中查找,找到后即刻返回

    作用二:通过这个对象可以获取其他的八大内置对象
      pageContex.get****():获取其他八大内置对象
三、jsp标签(动作)
  1、页面包含(动态包含):<jsp:include page="被包含的页面"/>
  2、请求转发:<jsp:forward page="要转发的资源" />

  注意:静态包含与动态包含的区别?
    静态包含:编译为一个java文件
    动态包含:便以为多个java文件

四、EL表达式:
  1、概述:EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL 出现的目的是要替代jsp页面中脚本的编写。
  2、语法 ${EL表达式}
  3、EL获取pageContext域中的值:${}pageScope.key}
     EL获取reqest域中的值:${requestScope.key}
     EL获取session域中的值:${sessionScope.key}
       EL获取application域中的值:${applicationScope.key}
     EL获取四个域中的某个值${key}依次从 pageContext,request,session,application中查找

  4、通过pageContext获取其他8大内置对象
    ${pagetContext.8大内置对象}
  5、EL执行表达式
    ${num1+num2}:可以是当前页面的变量,也可以是从域中获取的字符串,不需要转int类型
    ${empty user}:判断是不是为空 ${!empty user} 或 ${not empty user} 判断不为空
    ${三元表达式}
五、JSTL技术
  1、实现过程:
    1)下载工具类并导入项目
    2)导包:<%@ taglib uri="标签库地址" prefix="前缀"%>
    3)调用:<c:if test="${EL表达式}">成立后需要显示的内容</c:if>
  2、if表达式
    <c:if test="${EL表达式(判断条件)}"></c:if>
  3、forEach表达式
    <c:forEach items="${从域中获取需要遍历的容器 }" var="遍历后对应的每一项" >
      ${pro.name }
    </c:forEach>
  常用属性:varStatus 表示 比表示循环的状态 对应的属性有 count :第几次循环,index:循环的索引

posted @ 2019-11-10 11:20  养一只Tom猫  阅读(225)  评论(0编辑  收藏  举报