(转)JSP EL读书笔记

 
转载:http://wnight88.blog.51cto.com/512204/163189
一、JSP EL的运算符
类型
定义
算术型
+ - * / div % mod
逻辑型
and && or || not !
关系型
== eq != ne > gt < lt >= ge <= le
条件型
a?b:c
空
empty
二、JSP EL的基本用法
类型
实例
基本调用方法
JavaBeans
${user.username}
${user["username"]}
${user['username']}
user.getUsername()
数组
${sport[1]}
${sport["1"]}
${sport['1']}
sport[1]
List
${phone[2]}
${phone["2"]}
${phone['2']}
phone.get(2)
Map
${phone.home}
${phone["home"]}
${phone['home']}
phone.get("home")
三、JSP EL的内容对象
pageContext  当前页面上下文件对象 
pageScope  page对象 
requestScope  request对象 
sessionScope  session对象 
applicationScope  application对象 
param  得到页面传来的参数 
paramValues  得到页面传来的多个参数,返回一个数组 
header  获取头信息 
headerValues  获取头信息的值 
cookie  获取cookie对象的值 
initParam  获取设定初始的参数值 
例:
<%=session.getAttribute("phone")%> 

         待价于${sessionScope.phone}
四、如何设置JSP不使用JSP EL
1、当前页面不要用JSP EL
<%@page isELIgnored="true" %>
2、整个web应用都不使用EL,修改web.xml文件
<web-app...> 

        <jsp-config> 

             <jsp-property-group> 

                     <url-pattern>*.jsp</url-pattern> 

                     <el-ignored>true</el-ignored> 

             </jsp-property-group> 

        </jsp-config> 

</web-app...>
五、实例
1、基本运算符的实例
<%@ page language="java" pageEncoding="UTF-8"%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
  <head> 
    <title>My JSP 'elExample1.jsp' starting page</title> 
    <meta http-equiv="pragma" content="no-cache"> 
    <meta http-equiv="cache-control" content="no-cache"> 
    <meta http-equiv="expires" content="0"> 
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 
    <meta http-equiv="description" content="This is my page"> 
    <!-- 
  <link rel="stylesheet" type="text/css" href="styles.css"> 
  --> 
  </head> 
  <body> 
    <!-- 以下为JSP EL的算术运算实例 --> 
    ${10+10 }<br> 
    ${10-10 }<br> 
    ${10*10 }<br> 
    ${10/10 }<br> 
    ${10 div 10 }<br> 
    ${10%10 }<br> 
    ${10 mod 10 }<br> 
    <!-- 以下为想输入原样的表达式,需要用\或者'进行转义 --> 
    \${10+10 }<br> 
    '$'{10+10 }<br> 
     
    <!-- 以下为JSP EL的关系运算实例 --> 
    ${100>200 }<br> 
    ${100 gt 200 }<br> 
    ${100<200 }<br> 
    ${100 lt 200 }<br> 
    ${100>=200 }<br> 
    ${100 ge 200 }<br> 
    ${100<=200 }<br> 
    ${100 le 200 }<br> 
    ${100==200 }<br> 
    ${100 eq 200 }<br> 
    ${100 !=200 }<br> 
    ${100 ne 200 }<br> 
    <!-- 以下为比较字符,字符用单引号,字符串用双引号引起 --> 
    ${'e' eq 'h' }<br> 
    ${"hit" > "him" }<br> 
     
    <!-- 以下为逻辑运算符的实例 --> 
    ${(10>2) && (34>25) }<br> 
    ${(10>2) and (34>25) }<br> 
    ${(10>2) || (34>25) }<br> 
    ${(10>2) or (34>25) }<br> 
    ${!(10>2)}<br> 
    ${not(10>2)}<br> 
     
    <!-- empty运算符的应用 empty判断时,若对象为""或是null,则都为true--> 
    <% 
      pageContext.setAttribute("username",null); 
      pageContext.setAttribute("password",""); 
      pageContext.setAttribute("city","北京"); 
      pageContext.setAttribute("date",new java.util.Date()); 
     %> 
     <!-- 判断username变量是否为空,以下返回true--> 
     ${empty username }<br> 
     <!-- 判断password变量是否为空,以下返回true --> 
     ${empty password }<br> 
     <!-- 判断city变量是否为空,以下返回false--> 
     ${empty city }<br> 
     <!-- 判断date变量是否为空,以下返回false --> 
     ${empty date }<br> 
     
  </body> 
</html> 
2、用JSP EL读取JavaBean中的值
<%@ page language="java" pageEncoding="UTF-8"%> 
<%@ page import="java.util.*,com.meixin.beans.*"%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
  <head> 
    <title>My JSP 'elExample1.jsp' starting page</title> 
    <meta http-equiv="pragma" content="no-cache"> 
    <meta http-equiv="cache-control" content="no-cache"> 
    <meta http-equiv="expires" content="0"> 
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 
    <meta http-equiv="description" content="This is my page"> 
    <!-- 
  <link rel="stylesheet" type="text/css" href="styles.css"> 
  --> 
  </head> 
  <body> 
  <!-- 使用User Bean,设置属性值username --> 
  <jsp:useBean id="user" class="com.meixin.beans.User"></jsp:useBean> 
  <jsp:setProperty name="user" property="username" value="meixin"/> 
  <% 
    //建立Profile对象,设置邮件地址 
    Profile p = new Profile(); 
    p.setEmail("wnight88@sina.com"); 
     
    //将不同的电话存入Map中,并设置在p对象的属性中 
    Map<String,String> phone = new HashMap<String,String>(); 
    phone.put("office","8383838"); 
    p.setPhone(phone); 
     
    //建立地址对象,设置城市名 
    Address address = new Address(); 
    address.setCity("北京"); 
    Address[] addresses = {address}; 
    p.setAddress(addresses); 
    user.setProfile(p); 
    %> 
    <!-- 用JSP EL的级连方式输入值 --> 
    <!-- 输出user对象中的username属性值,三种写法等价 --> 
    ${user.username }<br> 
    ${user["username"] }<br> 
    ${user['username'] }<br> 
    <!-- 输出user对象中profile属性对象中的phone属性Map中键值为office的值 --> 
    ${user.profile.phone.office }<br> 
    ${user['rofile']['phone']['office'] }<br> 
    <!-- 输出user对象中profile属性对象中address数据属性中第0个元素对象中的city的属性值 --> 
    ${user.profile.address[0].city }<br> 
  </body> 
</html> 
以下为对象的JavaBean的内容
1)Profile类
package com.meixin.beans; 
import java.util.Date; 
import java.util.Map; 
public class Profile 
{ 
  private String email; 
  private Date birthday; 
  private Address[] address; 
  private Map<String, String> phone; 
  public String getEmail() 
  { 
    return email; 
  } 
  public void setEmail(String email) 
  { 
    this.email = email; 
  } 
  public Date getBirthday() 
  { 
    return birthday; 
  } 
  public void setBirthday(Date birthday) 
  { 
    this.birthday = birthday; 
  } 
  public Address[] getAddress() 
  { 
    return address; 
  } 
  public void setAddress(Address[] address) 
  { 
    this.address = address; 
  } 
  public Map<String, String> getPhone() 
  { 
    return phone; 
  } 
  public void setPhone(Map<String, String> phone) 
  { 
    this.phone = phone; 
  } 
} 
 
2)User类
package com.meixin.beans; 
public class User 
{ 
  private Long userID; 
  private String userName; 
  private String password; 
  private Profile profile; 
    
  public Long getUserID() 
  { 
    return userID; 
  } 
  public void setUserID(Long userID) 
  { 
    this.userID = userID; 
  } 
  public String getUserName() 
  { 
    return userName; 
  } 
  public void setUserName(String userName) 
  { 
    this.userName = userName; 
  } 
  public String getPassword() 
  { 
    return password; 
  } 
  public void setPassword(String password) 
  { 
    this.password = password; 
  } 
  public Profile getProfile() 
  { 
    return profile; 
  } 
  public void setProfile(Profile profile) 
  { 
    this.profile = profile; 
  } 
    
} 
3)Address类
package com.meixin.beans; 
public class Address 
{ 
  private String city; 
  public String getCity() 
  { 
    return city; 
  } 
  public void setCity(String city) 
  { 
    this.city = city; 
  }    
} 
3、实例:输出页面不同范围内属性的值
 
<%@ page language="java" pageEncoding="UTF-8"%> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
  <head> 

    <title>My JSP 'elExample1.jsp' starting page</title> 

    <meta http-equiv="pragma" content="no-cache"> 
    <meta http-equiv="cache-control" content="no-cache"> 
    <meta http-equiv="expires" content="0"> 
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 
    <meta http-equiv="description" content="This is my page"> 
    <!-- 
  <link rel="stylesheet" type="text/css" href="styles.css"> 
  --> 

  </head> 

  <body> 
    <% 
      pageContext.setAttribute("username","meixin"); 
      request.setAttribute("username","meixinRequest"); 
      session.setAttribute("username","meixinSession"); 
      application.setAttribute("username","meixinApplication"); 
     %> 
     <!-- 输出meixin --> 
     ${pageScope.username }<br> 
     ${pageScope['username'] }<br> 
     <!-- 输出值为meixinSession --> 
     ${sessionScope.username }<br> 
     <!-- 输出值为meixinRequest --> 
     ${requestScope.username }<br> 
     <!-- 输出值为meixinApplication --> 
     ${applicationScope.username }<br> 
     <!-- 输出值为meixin,此变量系统根据pageContext,request,session,application依次查找 --> 
     ${username }<br> 
     
  </body> 
</html> 
4、实例:param用于获取上一页面传递的参数值
<!-- param用于获取上一页面传递来的参数值--> 
${param.username}<br> 
${param.password}<br>
 
5、实例:cookie用于获取cookie参数的值
<% 
      response.addCookie(new Cookie("username","meixin")); 
%> 
<!-- 输出cookie中user的值,此处输出meixin --> 
${cookie.user.value } 
6、实例:initParam用于获取web.xml中初始的参数值
1)web.xml文件
<?xml version="1.0" encoding="UTF-8"?> 
<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/xml/ns/javaee    
  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
  <!-- 这里context-param标记中设置初始参数repeat的值为100 --> 
  <context-param> 
    <param-name>repeat</param-name> 
    <param-value>100</param-value> 
  </context-param> 
    <welcome-file-list> 
        <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
</web-app>
2)JSP EL代码
${initParam.repeat}

 

 
JSP开发技术大全(一本最好的学习JSP的书) 学习JSP开发的最佳参考资料,解压密码为www.csai.cn。 立即下载

相关推荐

JSP读书笔记1pdf格式

jsp 读书笔记 不错 呵呵 分享下

jsp读书笔记

1.jsp中变量的声明: :定义成员变量,:定义局部成员。成员变量只初始化一次,以后每次刷新页面,访问的是同一个成员变量,但是每次刷新都会初始化一个局部变量。所以每次刷新页面都会将局部变量的值初始化成初值。 2.一般在jsp页面中的属性名一般不用驼峰标示,在javaBean中的属性的名字用的是驼峰标示,在数据库中用到的属性的名字全部是小写。 3.Jsp要想运行,必须转为servelet

ljj2312的专栏 1032

学习JSP的读书笔记

学习jsp的读书笔记,写总结什么的总是用得着的

jsp读书笔记——servlet过滤器

Servlet过滤器简介 Servlet过滤器是通过一个配置文件来灵活声明的模块化的可重用组建。Servlet过滤器截请求和响应,以便查看、提取或操作客服端和服务器之间交换的数据。 Servlet过滤器实际上就是一个标准的java类,这个类通过实现Filter接口获得过滤器的功能。它在jsp容器启动的时候通过web.xml配置文件被系统加载。 Servlet过滤器在接收到用户请求的...

hulunberbus 190

uniapp+萤石视频监控实战:解决ezuikit.js真机调试不显示的5个关键步骤

本文针对Uniapp集成萤石视频监控时ezuikit.js在真机调试中黑屏不显示的问题,提供了5个关键解决步骤。核心方案是采用Webview加载独立H5播放页,以规避跨平台环境差异,并详细阐述了资源放置、多端适配、通信处理及系统化排查方法,确保视频流稳定播放。

weixin_29001655的博客 290

无人机精准降落辅助系统核心技术解析

接近地面时(<10米)切换至基于图像的视觉伺服(IBVS),依据图像特征点偏移(如靶标图案、LED标记)微调姿态,消除位置累积误差。通过SRUKF(平方根无迹卡尔曼滤波) 算法融合三类数据,输出6自由度位姿估计(精度达厘米级),抑制单一传感器噪声。权值根据信噪比动态调整。模型预测控制(MPC):针对斜坡降落,构建包含平台倾角、风扰的动力学方程,滚动求解最优油门序列。动态照明适配:针对夜间或低光照场景,系统向降落平台发送亮度调节指令,如增强红外信标强度或调整可见光LED阵列,确保特征识别鲁棒性。

YUNZHUO666的博客 1696

《Servlet与JSP核心编程》读书笔记

虽然Servlet和JSP学习也使用了挺长时间了,但是最近读了下《Servlet和JSP核心编程》这本书,虽然是熟悉的知识,但是仍然有些因为过长时间没使用而忘记了,记下这篇读书笔记,就当是对Servlet和JSP涉及的核心知识点进行一个整理与回顾吧。书中对Servlet与JSP进行了完整的介绍,总体上还是非常基础的,如果是初学者,或者有了一定开发经验的开发人员,都能从书中得到收获。下面的条目是我在阅

rhwayfun专栏 6567

大疆智图002:大疆智图倾斜摄影建模流程

本文主要介绍大疆智图倾斜摄影建模流程,包括新建工程、成果路径设置、导入照片、第一遍空三、像控刺点、第二遍空三、精度报告查看、三维重建等流程。

qq_31762031的博客 1万+

【JavaWeb】《JSP程序设计与案例实战》读书笔记

目录一、JSP 概述JSP 概念JSP 组成JSP 执行过程二、JSP 脚本元素、指令JSP 脚本元素JSP 指令三、JSP 隐式对象JSP 隐式对象(九个)输入/输出对象(三个)作用域通信对象(三个)Servlet 对象(两个)错误对象(一个)四、JSP 标准动作JavaBean 概念JavaBean 特点JavaBean 编写JSP 标准动作五、JSP 表达式语言EL 概念EL 语法EL 运算符EL 常见应用六、JSP 中使用数据库JDBC 目的JDBC 用途JDBC 操作步骤JDBC 事务处理七、JS

AI 全栈工程师修炼中 1936

间充质干细胞衰老机制与抗衰老干预策略研究

干细胞技术在再生医学领域具有广阔应用前景,其中间充质干细胞(MSCs)因其多向分化潜能和免疫调节特性备受关注。细胞衰老是影响干细胞治疗效果的共性难题,表现为增殖能力下降、端粒缩短等特征。通过表观遗传学分析发现,衰老MSCs存在DNA甲基化异常和组蛋白修饰改变;线粒体功能障碍导致ATP产量锐减,ROS累积显著增加。针对这些机制,研究者开发了包括小分子化合物筛选、CRISPR基因编辑和三维培养优化在内的多种干预策略。这些技术在组织修复、抗衰老治疗等应用场景中展现出重要价值,例如可提升心肌梗死修复效率2.3倍,缩

weixin_33502772的博客 229

保姆级教程:在Zynq UltraScale+ EV系列FPGA上,用VCU IP核搞定4K60帧H265视频解码与HDMI2.0输出

本文提供在Zynq UltraScale+ EV系列FPGA上使用VCU IP核实现4K60帧H265视频解码与HDMI2.0输出的全流程指南。从开发环境准备、Vivado工程配置到PetaLinux系统定制,详细解析硬件选型、IP核参数设置及性能优化技巧,帮助开发者快速构建高效视频处理系统。

weixin_30800987的博客 433

《JSP2.0 技术手册》读书笔记六-JSP语法与EL

<br />已经复习完了JSP的后台部分,现在我们来简单了解下JSP页面。由于本人更倾向于后台开发,所以对本部分只求简单了解。<br />        JSP网页主要分为:Elements-必须经由jsp容器处理,大部分elements都以xml作为语法基础;Template

文武天下 921

Arduino-CRSF库详解:嵌入式端CRSF协议解析与ELRS接收机集成

CRSF(Crossfire Serial Protocol)是一种面向FPV无人机的轻量级、高实时性串行通信协议,采用单总线异步传输与8位CRC-8校验机制,广泛应用于遥控链路与遥测交互。其核心在于帧同步(0xC8起始字节)、反相逻辑电平及无重传的广播式设计,对嵌入式平台的UART精度、电平匹配和状态机健壮性提出严苛要求。Arduino-CRSF库正是为资源受限MCU(如ESP32、STM32、ATmega328P)提供零配置、中断安全的协议解析能力,封装了CRC查表计算、超时恢复、多级同步验证等关键机制

weixin_35756690的博客 416

IT忍者神龟之[JSP EL]JSP EL读书笔记

JSP EL部分 一、JSP EL的运算符 类型 定义 算术型 + - * / div % mod 逻辑型 and && or || not ! 关系型 == eq != ne > gt = ge 条件型 a?b:c 空 e

IT忍者神龟 664

ENVI无法打开Landsat8的头文件问题和解决

再次将txt文件拖入ENVI中,就会得到7个波段组合后的真彩色图像,而且辐射定标所需的参数信息都已经定义好了。按住CTRL+F,查找GROUP = LEVEL1_PROCESSING_RECORD。第一行GROUP = LANDSAT_METADATA_FILE。会查到两个包含的句子,把这两个中间的部分全部删掉。双击打开该xxx_MTL.txt的头文件。删除空行后,应该为如下图的样子。把LANDSAT改为L1。

所有专家都曾始于新手 9702

echarts 饼图(加载进度条动画效果)

1、外侧动画细线效果运动“custom”自定义系列中“renderItem”属性来实现,动态修改起始角度和终止角度。2、圆环使用" pie "类型添加两个data值来画百分比圆环,动态修改data中的值。

God's asylum的博客 1633

JSP 2.0 读书笔记二(隐含对象、EL)

一、隐含对象 P84     pageContext 表示此JSP的PageContext        page   仅当前页面有效     request 仅跳转页面有效     response 仅返回页面有效,注意cashe     session 仅本session内有效     application 从服务开始到停止一直有效     config  存放和servl

gold1999的专栏 419

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

[JSP EL]JSP EL读书笔记

JSP EL部分 一、JSP EL的运算符 类型 定义 算术型 + - * / div % mod 逻辑型 and && or || not ! 关系型 == eq != ne > gt < lt >= ge <= le 条件型 a?b:c ...

weixin_34281537的博客 164

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

JSP应用开发详解读书笔记

导读:   第一章:JSP技术概述   1。字符串转换为整型的方法:   String gettimes=1000;   int times = Integet.parseInt(gettimes);   2.Servlet容器在第一次调用JSP时,会自动编译,然后这个JSP就驻留在内存中了,所以第一次调用JSP时,会有一定延时,在接下来的调用中,就不会再有延时了。   3.JSP文件头:

维他命的学前班 845

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【java读书笔记】JSTL,快速精通

JSTL并不是什么新颖的技术而且很简单,甚至有人认为JSTL已经过时了。但是我认为它既然存在,就有存在的道理,作为技术人员就应该知道它们是什么,怎么使用,有什么优点。 JSTL包含两部分:标签库和EL语言。下面先介绍标签库,再介绍EL语言,最后总结一下JSTL的优点。 JSTL   JSTL简介        JSTL(JavaServer Page Stan

努力+坚持,而且还很年轻 5239

Servlet与JSP核心编程 读书笔记

Servlet与JSP核心编程 读书笔记

qq_43667968的博客 165

JSP学习笔记(EL篇)

1.如何通过EL访问Implicit Object EL可以用在两个位置:a.template textb.标准标签和自定义标签的属性设置Implicit Object与取值范围有关的: applicationScope, sessionScope, requestScope, pageScope与输入输出有关的:param, paramValues与head有关的:header,header

首席技术执行官CTO(Chief Technology Officer)|技术总监--邓斌博客 1219

读书笔记-JSP2的部分特性

1.表达式语言:Expr

C_reator 691

JAVA_2_【java读书笔记】JSTL,快速精通

JSTL并不是什么新颖的技术而且很简单,甚至有人认为JSTL已经过时了。但是我认为它既然存在,就有存在的道理,作为技术人员就应该知道它们是什么,怎么使用,有什么优点。 JSTL包含两部分:标签库和EL语言。下面先介绍标签库,再介绍EL语言,最后总结一下JSTL的优...

chuoyingzao4930的博客 126

"JSP2.0 技术手册" 读书笔记

以下文字皆是我阅读《JSP2.0 技术手册》1-7 章的心得&笔记,此书做为 JSP 入门参考手册,值得推荐。 1、JSP 的执行过程(1)客户端发出 Request(请求);(2)JSP 容器将.jsp 页面转译成 Servlet 的 .java 源码;(3)将产生的 Sevlet 源码进行编译,并加载的内存执行;(4)把结果 Response (响应)至客户端。ps.更详细的说明可...

weixin_34176694的博客 190

Java Web读书笔记(1)JSP基本语法

JSP基本结构 JSP页面就是带有JSP元素的常规Web页面,由模板文本和JSP元素组成。在一个JSP页面中,所有非JSP元素的内容称为模板文本。模板文本可以是任何文本,如HTML、XML,甚至可以是纯文字。JSP并不依赖于HTML,它可以采用任何一种标记语言。模本文本直接传给浏览器。在处理一个JSP页面请求时,模板文本和JSP元素所生成的内容会合并,合并后的结果将作为响应内容发送给浏览器。 ...

u012503664的博客 756
上一篇: 版本管理
下一篇: zookeeper技术浅析
weixir123
博客等级 码龄16年 1粉丝 207原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值