JSPv2之El

()EL的基本语法

1优点

       1 jsp的java太长了,el自己的语言${ 开始       }结束

        2el直接返回空字符转,而java直接报错        

       3使用“lt”代替“<”运算符,如果运算符后面是数字,在运算符

        *EL取值时,没有数组的下标越界,没有空指针异常,没有字符串的拼接。

       

2java请求转发到jsp里

el与jsp对比

JSPv2之El_第1张图片

  • 2RequestDispatcher dispatcher = request
            .getRequestDispatcher("/myjsp.jsp");
  • request.getRequestDispatcher("/myjsp.jsp") 是一个方法调用,它返回一个 RequestDispatcher 对象,该对象可以用于将请求转发到 "/myjsp.jsp" 这个资源。

3作用域

pageContext..JSP的作用域(request、 session、 application 以及page)EL不仅可以访问一般变量,还可以访问JavaBean中的属性、嵌套属性和集合对象。

4.中括号

如“-”或“?”等非字母或数字的符号,就只能使用中括号运算符访问该属性。中括号运算符的用法示例如下:${user["My-Name"]}

什么时候用:联合使用集合里有多个对象,对象又有属性${users[0].userName}

一般情况可以互换

${student.name}等价于${student["name"]}。

()EL中常见的隐式对象

JSPv2之El_第2张图片

可分为5种

1pageContext    ${pageContext.request.requestURI}对象对象的属性

  请求URI为:${pageContext.request.requestURI}

  Content-Type响应头:${pageContext.response.contentType}

  服务器信息为:${pageContext.servletContext.serverInfo}

  Servlet注册名为:${pageContext.servletConfig.servletName}

2.4个scope

最后会打印itcase因为找的顺序是pageScope、requestScope、 sessionScope和applicationScope都可以通过setAttribute()方法存储属性,通过getAttribute()方法获取属性

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

  <% pageContext.setAttribute("userName", "itcast"); %>

  <% request.setAttribute("bookName", "Java Web"); %>

  <% session.setAttribute("userName", "itheima"); %>

  <% application.setAttribute("bookName", "Java 基础"); %>

  表达式\${pageScope.userName}的值为:${pageScope.userName}

  表达式\${requestScope.bookName}的值为:${requestScope.bookName}

  表达式\${sessionScope.userName}的值为:${sessionScope.userName}

  表达式\${applicationScope.bookName}的值为:${applicationScope.bookName}

  表达式\${userName}的值为:${userName}

3param对象用于获取请求参数的某个值与request.getParameter()方法相同

,它是Map类型

例子:获取客户端请求参数的值

${param.num}获取一个

${paramValues.nums[0]} 获取数组

 

  num1: />

  num2: />

  num3: /> />

    

  />

  num1: ${param.num1} />

  num2: ${paramValues.num[0]} />

  num3: ${paramValues.num[1]} />

 

JSPv2之El_第3张图片

4Cookie隐式对象,第一次只有cookie字段,第二次才会获取对象和值

第一次访问服务器时,服务器会向浏览器回写一个Cookie,此时的Cookie信息是存储在浏览器中的,当刷新浏览器,

第二次访问cookie.jsp页面时,由于浏览器中已经存储了名为userNameCookie信息,浏览器会将此Cookie信息一同发送给服务器,这时使用表达式${cookie.userName.name }${cookie.userName.value }便可以获取Cookie的名称和值。

一开始访问一下都是空

获取cookie对象的信息:${cookie.userName}

获取cookie对象的名称:${cookie.userName.name}

获取cookie对象的值:${cookie.userName.value}

5initParam获取(web.xml里面)参数的值

Web应用初始化值

${initParam.author}

()JSTL标签库

JSTL

1在使用这些标签库前,必须在JSP页面的顶部使用<%@ taglib%>指令定义引用的标签库和访问前缀。

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

用于输出文本内容的标签、用于条件判断的标签、用于迭代循环的标签

2.格式标签库Fmt

SQL标签库sql

XML标签库xml

函数标签库fn

每个厂商都有一个标签库,所以jsp里面要自定义标签

()JSTL的下载与使用

jstl.jar文件包含JSTL规范中定义的接口和相关类,standard.jar文件包含用于实现JSTL的.class文件以及JSTL中5个标签库描述符文件(TLD)。

Tld

写上核心地址

()Core标签库中的常用标签

1语法       escapeXml属性default属性value属性

escapeXml=true下面就不会编码输出

输出:

单标签

双标签unknown

输出都是unknown

可以在网页里面直接传入键值输出

JSPv2之El_第4张图片

2移除标签

范围pagerequestsessionapplication

3标签,     

双标签在标签体中指定要输出的内容

[scope="{page|request|session|application}"]>

  body content

标签,该标签用于指定多个条件选择的组合边界,它必须与标签一起使用。

都不成立就执行里面语句

 

    

      unKnown user.

     

    

      ${ param.username} is manager.

     

    

       ${ param.username} is employee.

     

 

可以用c_choose.jsp?username=itcast传参

4.标签   

 双标签:迭代指定范围内的集合start,end,步长就行

迭代包含多个对象的集合

<%

  List colorsList=new ArrayList();

  colorsList.add("red");

  colorsList.add("yellow");

  colorsList.add("blue");

  colorsList.add("green");

  colorsList.add("black");

  %>

 

     end="3" step="2">

  ${color} 

 

5.url标签 

双标签中构造URL参数

其中标签用于获取URL地址中的附加参数,标签用于按特定的规则重新构造URL,标签负责重定向。

var属性:用于指定将构造的URL地址保存到域对象的属性名称。

 

 使用绝对路径构造URL:

 

        value="http://localhost:8080/chapter07/c_out1.jsp">

     :param name="username" value="张三" />

 

 c_out1.jsp

 使用相对路径构造URL:

 

  value="c_out1.jsp?username=Tom" />

 c_out1.jsp

var  value就可以

参数值进行编码

你可能感兴趣的:(JSP,前端)