实例解析JSP中EL表达式的各种运用

EL运算符:

<%@page language="java" contentType="text/html;charset=gb2312"%>
<%@page import="java.sql.*" %>
<!DOCTYPE html>
<html>
  <head>
    <title>El算数运算符</title>
  </head>
  <body>
    <table border=1>
      <tr>
        <td>算数运算符</td>
        <td>结果</td>
      </tr>
      <tr>
        <td>加法运算符\${1 + 1}</td>
        <td>结果${1+1}</td>
      </tr>
      <tr>
        <td>减法运算符\${1 - 1}</td>
        <td>结果${1-1}</td>
      </tr>
      <tr>
        <td>乘法运算符\${1 * 2}</td>
        <td>结果${1 * 1}</td>
      </tr>
      <tr>
        <td>除法运算符\${3 / 2}</td>
        <td>结果${3 / 2}</td>
      </tr>
      <tr>
        <td>求余运算符\${3 % 2}</td>
        <td>结果${3 % 2}</td>
      </tr>
    </table>
    <table border=1>
      <tr>
        <td>关系运算符</td>
        <td>结果</td>
      </tr>
      <tr>
        <td>等于运算符\${1 == 1}</td>
        <td>结果${1==1}</td>
      </tr>
      <tr>
        <td>不等于运算符\${1 != 1}</td>
        <td>结果${1!=1}</td>
      </tr>
      <tr>
        <td>小于运算符\${1 < 2}</td>
        <td>结果${1 < 2}</td>
      </tr>
      <tr>
        <td>大于运算符\${3 > 2}</td>
        <td>结果${3 > 2}</td>
      </tr>
      <tr>
        <td>小于等于运算符\${1 <= 2}</td>
        <td>结果${1 <= 2}</td>
      </tr>
      <tr>
        <td>大于等于运算符\${3 >= 2}</td>
        <td>结果${3 >= 2}</td>
      </tr>
    </table>
    <table border=1>
      <tr>
        <td>逻辑运算符</td>
        <td>结果</td>
      </tr>
      <tr>
        <td colspan="2">逻辑运算符&&</td>
      </tr>
      <tr>
        <td>\${true && true}</td>
        <td>结果${true && true}</td>
      </tr>
      <tr>
        <td>\${true && false}</td>
        <td>结果${true && false}</td>
      </tr>
      <tr>
        <td>\${false && false}</td>
        <td>结果${false && false}</td>
      </tr>
      <tr>
        <td colspan="2">逻辑运算符||</td>
      </tr>
      <tr>
        <td>\${true || true}</td>
        <td>结果${true || true}</td>
      </tr><tr>
        <td>\${true || false}</td>
        <td>结果${true || false}</td>
      </tr><tr>
        <td>\${false || false}</td>
        <td>结果${false || false}</td>
      </tr>
      <tr>
        <td colspan="2">逻辑运算符!</td>
      </tr>
      <tr>
        <td>\${!true}</td>
        <td>结果${!true}</td>
      </tr><tr>
        <td>\${!false}</td>
        <td>结果${!false}</td>
      </tr>
    </table>
    <table border=1>
      <tr>
        <td>条件运算符</td>
        <td>结果</td>
      </tr>
      <tr>
        <td>\${2>1?"Yes":"No"}</td>
        <td>结果${2>1?"Yes":"No"}</td>
      </tr>
      <tr>
        <td>\${2<1?"Yes":"No"}</td>
        <td>结果${2<1?"Yes":"No"}</td>
      </tr>
    </table>
    <table border=1>
      <tr>
        <td>验证运算符</td>
        <td>结果</td>
      </tr>
      <tr>
        <td>\${empty param.username}</td>
        <td>结果${empty param.username}</td>
      </tr>
      <tr>
        <td>\${empty param.password}</td>
        <td>结果${empty param.password}</td>
      </tr>
    </table>
    <table border=1>
      <tr>
        <td>括号运算符及运算符的优先级</td>
        <td>结果</td>
      </tr>
    </table>
  </body>
</html>

EL处理内置对象:
“.”和"[]"符号是用来存取数据的

${applicationScope.user.username}

${applicationScope.user[0].username}

${applicationScope.user["user-name"]}

通过变量来传值就必须使用[]

${applicationScope.user["data"]}

与存储有关的内置对象

<!DOCTYPE html>
<html>
  <head>
    <title>与存储有关的内置对象</title>
  </head>
  <body>
    <%
      //application范围设置属性name,值为application_name
      application.setAttribute("name","application_name");
      //session范围设置属性name,值为session_name
      session.setAttribute("name","session_name");
      //request范围设置属性name,值为request_name
      request.setAttribute("name","request_name");
      //page范围设置属性name,值为page_name
      pageContext.setAttribute("name","page_name");
    %>
    <%--获取page范围内的name属性--%>
    page范围内的那么属性的值为:${pageScope.name}<br />
    <%--获取request范围内的name的属性--%>
    request范围内的那么属性的值为:${requestScope.name}<br />
    <%--获取session范围内的name的属性--%>
    session范围内的那么属性的值为:${sessionScope.name}<br />
    <%--获取application范围内的name属性--%>
    application范围内的那么属性的值为:${applicationScope.name}<br />
  </body>
</html>

与输入有关的内置对象

<!DOCTYPE html>
<html>
  <head>
    <title>用户表单</title>
  </head>
  <body>
    <form action="UserDemo.jsp" method="post">
      用户名:<input type="text" name="username" /><br />
      密码:<input type="password" name="password" /><br />
      姓名:<input type="text" name="name" /><br />
      性别:<input type="radio" name="sex" value="男">男<input type="radio" name="sex" value="女">女<br />
      爱好:<br />
      <input type="checkbox" name="interest" value="打篮球">打篮球<br />
      <input type="checkbox" name="interest" value="看书">看书<br />
      <input type="checkbox" name="interest" value="旅行">旅行<br />
      <input type="checkbox" name="interest" value="编程">编程<br />
      <input type="submit" value="提交">
      <input type="reset" value="重置">
    </form>
  </body>
</html>

<!DOCTYPE html>
<html>
  <head>
    <title>接收用户参数</title>
  </head>
  <body>
    <%
      //设置页面编码格式
      request.setCharacterEncoding("gb2312");
    %>
    <%--接收用户参数--%>
    用户名:${<span style="color:#003399;">param</span>.username}<br />
    密码:${<span style="color:#003399;">param</span>.password}<br />
    姓名:${<span style="color:#003399;">param</span>.name}<br />
    性别:${<span style="color:#003399;">param</span>.sex}<br />
    爱好:${<span style="color:#003399;">paramValues</span>.interest[0]}
        ${<span style="color:#003399;">paramValues</span>.interest[1]}
  </body>
</html>

cookie内置对象

<!DOCTYPE html>
<html>
  <head>
    <title>设置cookie的值</title>
  </head>
  <body>
    <%
      //设置cookie的值
      Cookie c = new Cookie("username","root");
      //添加cookie到客户端
      response.addCookie(c);
    %>
    <a href="getCookieDemo.jsp">显示cookie的值</a>
  </body>
</html>

<span style="color:#000000;"><%@page language="java" contentType="text/html;charset=gb2312"%>
<!DOCTYPE html>
<html>
  <head>
    <title>取得cookie的值</title>
  </head>
  <body>
    cookie中的username的值为:${cookie.username.value}
  </body>
</html>

header内置对象

<!DOCTYPE html>
<html>
  <head>
    <title>取得header的值</title>
  </head>
  <body>
    ${header["host"]}<br />
    ${header["user-agent"]}<br />
  </body>
</html>

initParam内置对象:获取web站点中设置的环境变量

<%@page language="java" contentType="text/html;charset=gb2312"%>
<!DOCTYPE html>
<html>
  <head>
    <title>获得环境参数</title>
  </head>
  <body>
    username参数值:${initParam.username}<br />
  </body>
</html>

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  version="2.5">
  <context-param>
    <param-name>username</param-name>
    <param-value>Zhangdapeng</param-value>
  </context-param>
</web-app>

pageContex内置对象
用来取得有关用户请求和页面的详细信息

<%@page language="java" contentType="text/html;charset=gb2312"%>
<!DOCTYPE html>
<html>
  <head>
    <title>pageContext演示</title>
  </head>
  <body>
    <table border="1">
      <tr>
        <td>取得请求的参数的字符串</td>
        <td>${pageContext.request.queryString}</td>
      </tr><tr>
        <td>取得请求URL</td>
        <td>${pageContext.request.requestURL}</td>
      </tr><tr>
        <td>取得web应用名称</td>
        <td>${pageContext.request.contextPath}</td>
      </tr><tr>
        <td>取得HTTP请求方式(POST/GET)</td>
        <td>${pageContext.request.method}</td>
      </tr><tr>
        <td>取得使用的协议</td>
        <td>${pageContext.request.protocol}</td>
      </tr><tr>
        <td>取得用户IP地址</td>
        <td>${pageContext.request.remoteAddr}</td>
      </tr><tr>
        <td>判断session是否为新</td>
        <td>${pageContext.session.new}</td>
      </tr><tr>
        <td>取得session的id</td>
        <td>${pageContext.session.id}</td>
      </tr>
    </table>
  </body>
</html>

EL存取器:
使用存取器读取JavaBean中的数据

package com.javaweb.ch08;
import java.util.*;
//一个简单的JavaBean示例
public class Person{
  //name属性
  private String name;
  //age属性
  private int age;
  //sex属性
  private String sex;
  //friends属性
  private ArrayList friends;
  //无参构造方法
  public Person(){
  }
  //自定义构造的方法
  public Person(String name,int age,String sex){
    this.name = name;
    this.age = age;
    this.sex = sex;
  }
  //获取name的属性值
  public String getName(){
    return name;
  }
  //获取age属性值
  public int getAge(){
    return age;
  }
  //获取sex的属性值
  public String getSex(){
    return sex;
  }
  //设置name的属性
  public void setName(String name){
    this.name = name;
  }
  //设置age的属性值
  public void setAge(int age){
    this.age = age;
  }
  //设置sex的属性值
  public void setSex(String sex){
    this.sex = sex;
  }
  //设置friends的值
  public void setFriends(ArrayList friends){
    this.friends = friends;
  }
  //获取friends的属性值
  public ArrayList getFriends(){
    return friends;
  }
}
<%@page language="java" contentType="text/html;charset=gb2312"%>
<%@page import="java.util.*,com.javaweb.ch08.*" %>
<!DOCTYPE html>
<html>
  <head>
    <title>设置JavaBean中的属性</title>
  </head>
  <body>
    <%
    //实例化一个Person
    Person person = new Person("zhangdapeng",24,"男");
    //创建一个friends实例
    ArrayList friends = new ArrayList();
    //添加值
    friends.add("wang wu");
    friends.add("li si");
    person.setFriends(friends);
    //存储在session范围内
    session.setAttribute("person",person);

    %>
    <a href="GetJavaBean.jsp">跳转到GetJavaBean.jsp</a>
  </body>
</html>

<%@page language="java" contentType="text/html;charset=gb2312"%>
<!DOCTYPE html>
<html>
  <head>
    <title>取得JavaBean中的属性值</title>
  </head>
  <body>
    姓名:${sessionScope.person.name}<br />
    年龄:${sessionScope.person.age}<br />
    性别:${sessionScope.person.sex}<br />
    朋友:${sessionScope.person.friends[0]},${sessionScope.person.friends[1]}<br />
  </body>
</html>

使用存储器读取Map中的数据

<%@page language="java" contentType="text/html;charset=gb2312"%>
<%@page import="java.util.*,com.javaweb.ch08.*" %>
<!DOCTYPE html>
<html>
  <head>
    <title>设置Map页面</title>
  </head>
  <body>
    <%
      //新建一个HashMap
      HashMap userInfo = new HashMap();
      //在HashMap中设置值
      userInfo.put("username","zhangdapeng");
      userInfo.put("password","zhnagda123");
      //将值存储到session范围中
      session.setAttribute("userInfo",userInfo);

    %>
    <a href="GetMapDemo.jsp">跳转到GetMapDemo.jsp</a>
  </body>
</html>

<%@page language="java" contentType="text/html;charset=gb2312"%>
<!DOCTYPE html>
<html>
  <head>
    <title>使用存储器读取map中的数据</title>
  </head>
  <body>
    用户名:${sessionScope.userInfo.username}<br />
    密码:${sessionScope.userInfo.password}<br />
  </body>
</html>

使用存储器读取数组中的数据

<%@page language="java" contentType="text/html;charset=gb2312"%>
<%@page import="java.util.*,com.javaweb.ch08.*" %>
<!DOCTYPE html>
<html>
  <head>
    <title>设置Array页面</title>
  </head>
  <body>
    <%
      String[] names = {"zhangda1","zhangda2","zhangda3"};
      //将值存储到session范围中
      session.setAttribute("names",names);

    %>
    <a href="GetMapDemo.jsp">跳转到GetArrayDemo.jsp</a>
  </body>
</html>

<%@page language="java" contentType="text/html;charset=gb2312"%>
<!DOCTYPE html>
<html>
  <head>
    <title>使用存储器读取map中的数据</title>
  </head>
  <body>
    用户名1:${sessionScope.names[0]}<br />
    用户名2:${sessionScope.names[1]}<br />
  </body>
</html>

存储器的复杂应用

<%@page language="java" contentType="text/html;charset=gb2312"%>
<%@page import="java.util.*,com.javaweb.ch08.*" %>
<!DOCTYPE html>
<html>
  <head>
    <title>设置Array页面</title>
  </head>
  <body>
    <%
      ArrayList<Person> persons = new ArrayList<Person>();

      Person person1 = new Person("wang wu",24,"男");
      Person person2 = new Person("wang liu",24,"女");

      persons.add(person1);
      persons.add(person2);

      session.setAttribute("persons",persons);

    %>
    <a href="GetMapDemo.jsp">跳转到GetArrayDemo.jsp</a>
  </body>
</html>

<%@page language="java" contentType="text/html;charset=gb2312"%>
<!DOCTYPE html>
<html>
  <head>
    <title>使用存储器读取map中的数据</title>
  </head>
  <body>
    用户名1:${sessionScope.persons[0].name},${sessionScope.persons[0].age},${sessionScope.persons[0].sex}<br />
    用户名2:${sessionScope.persons[1].name},${sessionScope.persons[1].age},${sessionScope.persons[1].sex}<br />
  </body>
</html>
(0)

相关推荐

  • jsp页面中EL表达式被当成字符串处理不显示值问题的解决方法

    在自己练手时遇到了EL表达式被当成字符串处理而没有正确解析的现象.当时工程中使用的Javaee5, web.xml <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/

  • JAVA JSP页面技术之EL表达式整理归纳总结

    一.概念 表达式语言(Expression Language),或称EL表达式,简称EL,是Java中的一种特殊的通用编程语言,借鉴于JavaScript和XPath.主要作用是在Java Web应用程序嵌入到网页(如JSP)中,用以访问页面的上下文以及不同作用域中的对象 ,取得对象属性的值,或执行简单的运算或判断操作.EL在得到某个数据时,会自动进行数据类型的转换. 主要作用: 1) 获取数据 EL表达式主要用于替换JSP页面中的脚本表达式<%= %>,以从各种类型的web域 中检索java

  • JSP EL表达式详细介绍

    一.JSP EL语言定义 E L(Expression Language)  目的:为了使JSP写起来更加简单. 表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法.它是一种简单的语言,基于可用的命名空间(PageContext 属性).嵌套属性和对集合.操作符(算术型.关系型和逻辑型)的访问符.映射到 Java 类中静态方法的可扩展函数以及一组隐式对象.       EL 提供了在 JSP 脚本编制元素范围外使用运行时表达式的功能.

  • 浅谈java里的EL表达式在JSP中不能解析的问题

    今天也碰到了el表达式无法解析的事情,于是在网上查询了下,大多说是因为web.xml中声明的版本问题 于是收集了如下版本: web-app_2_2.xsd <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java

  • jsp 不支持EL表达式,解决办法

    如果有以下内容,表示是Servlet 2.3 / JSP 1.2. <!--CTYPE web-app PUBLIC </sp--> "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> 在默认情况下,Servlet 2.3 / JSP 1.2是不支持EL表达式的,而Servlet 2.4 / JS

  • 浅谈jsp EL表达式取值过程、page和pagecontext的区别

    1.EL表达式解析过程 JSP中,我们经常会写为${obj.name}字样,但你有没有想过,它的取值过程是什么,属性值从哪取得? ${obj}相当于 request.getAttribute("obj"),这句话严格来说不严谨,依次的请求范围是page.request.session.application 也就是说,如果在page.getAttribute()找不到,再去request.getAttribute,如果request找不到,再去session里找,session里找不到

  • jsp中EL表达式获取数据

    jsp标签: <jsp:include> <jsp:forward> 实现请求转发 <jsp:param> 给上面的添加参数的 EL表达式: 1.获取变量数据 <% String name="陶士涵"; pageContext.setAttribute("name",name); %> 你好,${name} 2.获取数组数据 <% String[] names={"陶士涵","张三&

  • JSP 不能解析EL表达式的解决办法

    原因是:在默认情况下,Servlet 2.4 / JSP 2.0支持 EL 表达式. 解决的办法有两种: 1.修改web.xml的开头定义. 复制代码 代码如下: <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=&quo

  • JSP中EL表达式的用法详解(必看篇)

    EL 全名为Expression Language EL 语法很简单,它最大的特点就是使用上很方便.接下来介绍EL主要的语法结构: ${sessionScope.user.sex} 所有EL都是以${为起始.以}为结尾的.上述EL范例的意思是:从Session的范围中,取得 用户的性别.假若依照之前JSP Scriptlet的写法如下: User user =(User)session.getAttribute("user"); String sex =user.getSex( );

  • JSP中EL表达式用法_动力节点Java学院整理

    JSP页面中支持使用EL表达式,EL全名为Expression Language.EL表达式的主要作用有: ① 获取数据: ② 执行运算: ③ 使用EL表达式的11大隐式对象: ④ 调用Java方法. 当然,EL表达式还能配合JSTL标签,进行其他一些功能的显示,例如迭代等等. 我们先来看使用EL表达式来获取数据 在JSP页面中使用${标识符}的形式,就是通知JSP引擎在Servlet中调用pageContext.findAttribute("标识符")来获取数据,具体是以标识符作为关

随机推荐