JSP/EL/JSTL学习笔记

jsp:

  java 服务器页面

  作用:将内容的生成和信息的展示相分离

  执行原理:运行在服务器端,本质上是一个servlet,被编译成class

jsp脚本格式:

  <%..%> java代码片段

  <%=..%> 输入表达式 相当于out.print();

  <%!..%> 生命成员

jsp的指令

  三大指令:page指令、include指令、taglib指令

    page指令:

        language     JSP的语言属性,默认java,目前也只有java

        contentType   设置浏览器默认的打开的时候的编码

        pageEncoding  设置JSP文件保存到硬盘,以及翻译成Servlet保存到硬盘的编码格式

        import      设置JSP中引入其他的类

        extends      设置JSP被翻译成Servlet后继承的类,

        autoFlush    设置自动刷出缓存

        buffer      JSP缓冲区的大小,默认8kb

        session     默认值是true,设置是否可以直接使用session对象

        isELIgnored   设置JSP是否忽略EL表达式,默认false,JSP中可以使用EL表达式

        isErrorPage      设置JSP页面中出现错误应该如何处理

        errorPage    设置JSP页面中出现错误应该如何处理  

    include指令:用于引入其他的页面

      file属性:属性中不能使用变量,不能传递参数

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

    taglib指令:用于在JSP中引入标签库

      <%@ taglib url="" prefix="" %>

JSP的内置对象

  内置对象:JSP中可以直接使用的对象

  九大内置对象(面试):

    request,response,session,application,page,pageContext,out,config,exception

JSP的四个域对象

  pageContext  页面范围

  request     请求范围

  session     回话范围

  application     应用范围

JSP的动作标签

  语法:<jsp:动作标签 属性="" />  使用该标签能够简化代码的编写,尽量少在JSP中使用<%%>

  <jsp:forward page="/demo.jsp"></jsp:forward>

  <jsp:include page="/demo.jsp"></jsp:include>

    动态包含&静态包含

      静态包含相当于代码的copy,最终被翻译诚意Servlet解释执行的,动态包含包含了其他页面运行的结果,最终翻译成多个Servlet执行的

EL 标签

  EL Expression Language  表达式语言

  语法:${ EL 表达式}

    JSP中尽量少的使用<%%>代码块,使用EL和JSTL替换页面中<%%>  

  用途

    1.获取数据

    2.EL执行运算

    3.获得常用web开发对象

    4.调用java中的函数

EL获取四个域范围中的值

  获取普通值

  获取数据的数据

  获取List集合

  获取Map集合

[]和.区别:[]获取带有下标的数据、list等  .获取一个对象的属性,如果属性中包含了特殊字符,必须使用[]不能使用.

demo

  <%

    pageContext.setAttribute("pname","zhangsan");

    request.setAttribute("rname","lisi");

    session.setAttribute("sname","wangwu");

    application.setAttribute("aname","zhaner");

  %>

----------------传统方式取值-----------------------------

<%= pageContext.getAttribute("pname")%>

<%= request.getAttribute("pname")%>

<%= session.getAttribute("pname")%>

<%= application.getAttribute("pname")%>

----------------EL 表达式取值----------------------------

${ pageContext.pname }

${ request.rname }

${ session.sname }

${ application.aname } 

demo获取数组数据

  <%

    String[] arr = {"zhangsan","lisi","wangwu"};

    pageContext.setAttribute("arr",arr)

  %>

  %{ arr[1] }

demo获取List集合数据

  <%

    List<String> list = new ArrayList<String>();

    list.add("zhangsan");

    list.add("lisi");

    list.add("wangwu");

  %>

${ list[1] }

demo获取Map集合

  <%

  Map<String,String> map = new HashMap<String,String>();

  map.put("a","zhangsan");

  map.put("b","wangwu");

  map.put("c","lisi");

  %>

${ map["a"] }

demo获取JavaBean中的数据

  <%

  Person p = new person();

  p.setId(1);

  p.setName("zhangsan");

  p.setPassword("root");

  pageContext.setAttribute("person",p);

  %>

  ${ person.name }

EL标签还可以执行运算,包括算术运算和逻辑运算

EL获得WEB开发的常用的对象(EL的内置对象)

11个  

   ${pageScope}

   ${requestScope}

   ${sessionScope}

   ${applicationScope}

   ${param}      相当于request.getParameter

   ${paramValues}     相当于request.getParameterValues  

   ${header}      获得请求头  一个key对应一个value

   ${headerValues}   获得请求头 一个key对应多个value

   ${initParam}     获得初始化参数

   ${cookie}      获得cookie信息

   ${pageContext}   相当于pageContext对象

JSTL标签库

  JSTL是一个不断完善的开放源代码的JSP标签库,是由apache的Jakarta小组维护的,从Servlet2.0开始

作用:结合EL替换页面中的<% %>

使用JSTL标签库

  JSTL五大标签库:core、fmt、xml、sql、fn

  引入标签库

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

    常用标签

      c:set

      c:if

      c:forEach

      c:choose

猜你喜欢

转载自www.cnblogs.com/cl-andy/p/9083855.html
今日推荐