热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

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

这篇文章主要介绍了JSP中EL表达式的各种运用,比如用EL处理数学运算、内置对象以及数据的存取等,代码示例都相当实用,需要的朋友可以参考下

EL运算符:

<%@page language="java" cOntentType="text/html;charset=gb2312"%>
<%@page import="java.sql.*" %>


  
    
  
  
    
算数运算符 结果
加法运算符\${1 + 1} 结果${1+1}
减法运算符\${1 - 1} 结果${1-1}
乘法运算符\${1 * 2} 结果${1 * 1}
除法运算符\${3 / 2} 结果${3 / 2}
求余运算符\${3 % 2} 结果${3 % 2}
关系运算符 结果
等于运算符\${1 == 1} 结果${1==1}
不等于运算符\${1 != 1} 结果${1!=1}
小于运算符\${1 <2} 结果${1 <2}
大于运算符\${3 > 2} 结果${3 > 2}
小于等于运算符\${1 <= 2} 结果${1 <= 2}
大于等于运算符\${3 >= 2} 结果${3 >= 2}
逻辑运算符 结果
逻辑运算符&&
\${true && true} 结果${true && true}
\${true && false} 结果${true && false}
\${false && false} 结果${false && false}
逻辑运算符||
\${true || true} 结果${true || true}
\${true || false} 结果${true || false}
\${false || false} 结果${false || false}
逻辑运算符!
\${!true} 结果${!true}
\${!false} 结果${!false}
条件运算符 结果
\${2>1&#63;"Yes":"No"} 结果${2>1&#63;"Yes":"No"}
\${2<1&#63;"Yes":"No"} 结果${2<1&#63;"Yes":"No"}
验证运算符 结果
\${empty param.username} 结果${empty param.username}
\${empty param.password} 结果${empty param.password}
括号运算符及运算符的优先级 结果

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

${applicationScope.user.username}

${applicationScope.user[0].username}

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

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

${applicationScope.user["data"]}

与存储有关的内置对象



  
    
  
  
    <%
      //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}
<%--获取request范围内的name的属性--%> request范围内的那么属性的值为:${requestScope.name}
<%--获取session范围内的name的属性--%> session范围内的那么属性的值为:${sessionScope.name}
<%--获取application范围内的name属性--%> application范围内的那么属性的值为:${applicationScope.name}

与输入有关的内置对象



  
    
  
  
    
      用户名:
密码:
姓名:
性别:
爱好:
打篮球
看书
旅行
编程
<% //设置页面编码格式 request.setCharacterEncoding("gb2312"); %> <%--接收用户参数--%> 用户名:${param.username}
密码:${param.password}
姓名:${param.name}
性别:${param.sex}
爱好:${paramValues.interest[0]} ${paramValues.interest[1]}

COOKIE内置对象



  
    
  
  
    <%
      //设置COOKIE的值
      COOKIE c = new COOKIE("username","root");
      //添加COOKIE到客户端
      response.addCOOKIE(c);
    %>
    显示COOKIE的值
  


<%@page language="java" cOntentType="text/html;charset=gb2312"%>


  
    
  
  
    COOKIE中的username的值为:${COOKIE.username.value}
  


header内置对象



  
    
  
  
    ${header["host"]}
${header["user-agent"]}

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

<%@page language="java" cOntentType="text/html;charset=gb2312"%>


  
    
  
  
    username参数值:${initParam.username}
<&#63;xml version="1.0" encoding="ISO-8859-1"&#63;> username Zhangdapeng

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

<%@page language="java" cOntentType="text/html;charset=gb2312"%>


  
    
  
  
    
取得请求的参数的字符串 ${pageContext.request.queryString}
取得请求URL ${pageContext.request.requestURL}
取得web应用名称 ${pageContext.request.contextPath}
取得HTTP请求方式(POST/GET) ${pageContext.request.method}
取得使用的协议 ${pageContext.request.protocol}
取得用户IP地址 ${pageContext.request.remoteAddr}
判断session是否为新 ${pageContext.session.new}
取得session的id ${pageContext.session.id}

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.*" %>


  
    
  
  
    <%
    //实例化一个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);
     
    %>
    跳转到GetJavaBean.jsp
  


<%@page language="java" cOntentType="text/html;charset=gb2312"%>


  
    
  
  
    姓名:${sessionScope.person.name}
年龄:${sessionScope.person.age}
性别:${sessionScope.person.sex}
朋友:${sessionScope.person.friends[0]},${sessionScope.person.friends[1]}

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

<%@page language="java" cOntentType="text/html;charset=gb2312"%>
<%@page import="java.util.*,com.javaweb.ch08.*" %>


  
    
  
  
    <%
      //新建一个HashMap
      HashMap userInfo = new HashMap();
      //在HashMap中设置值
      userInfo.put("username","zhangdapeng");
      userInfo.put("password","zhnagda123");
      //将值存储到session范围中
      session.setAttribute("userInfo",userInfo);
       
    %>
    跳转到GetMapDemo.jsp
  


<%@page language="java" cOntentType="text/html;charset=gb2312"%>


  
    
  
  
    用户名:${sessionScope.userInfo.username}
密码:${sessionScope.userInfo.password}

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

<%@page language="java" cOntentType="text/html;charset=gb2312"%>
<%@page import="java.util.*,com.javaweb.ch08.*" %>


  
    
  
  
    <%
      String[] names = {"zhangda1","zhangda2","zhangda3"};
      //将值存储到session范围中
      session.setAttribute("names",names);
       
    %>
    跳转到GetArrayDemo.jsp
  


<%@page language="java" cOntentType="text/html;charset=gb2312"%>


  
    
  
  
    用户名1:${sessionScope.names[0]}
用户名2:${sessionScope.names[1]}

存储器的复杂应用

<%@page language="java" cOntentType="text/html;charset=gb2312"%>
<%@page import="java.util.*,com.javaweb.ch08.*" %>


  
    
  
  
    <%
      ArrayList persOns= new ArrayList();
       
      Person person1 = new Person("wang wu",24,"男");
      Person person2 = new Person("wang liu",24,"女");
       
      persons.add(person1);
      persons.add(person2);
       
      session.setAttribute("persons",persons);
       
    %>
    跳转到GetArrayDemo.jsp
  


<%@page language="java" cOntentType="text/html;charset=gb2312"%>


  
    
  
  
    用户名1:${sessionScope.persons[0].name},${sessionScope.persons[0].age},${sessionScope.persons[0].sex}
用户名2:${sessionScope.persons[1].name},${sessionScope.persons[1].age},${sessionScope.persons[1].sex}


推荐阅读
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 本文详细介绍了HTML中标签的使用方法和作用。通过具体示例,解释了如何利用标签为网页中的缩写和简称提供完整解释,并探讨了其在提高可读性和搜索引擎优化方面的优势。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 本文详细介绍了如何通过多种编程语言(如PHP、JSP)实现网站与MySQL数据库的连接,包括创建数据库、表的基本操作,以及数据的读取和写入方法。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • XNA 3.0 游戏编程:从 XML 文件加载数据
    本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • SQLite 动态创建多个表的需求在网络上有不少讨论,但很少有详细的解决方案。本文将介绍如何在 Qt 环境中使用 QString 类轻松实现 SQLite 表的动态创建,并提供详细的步骤和示例代码。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
author-avatar
Yunir_944
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有