`
fmghbfn
  • 浏览: 7085 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

JSP EL学习笔记

阅读更多
一、 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 、实例:</str
分享到:
评论

相关推荐

    web学习笔记 —— EL

    本篇web学习笔记将深入探讨EL的基本概念、语法和应用场景。 首先,EL表达式是用在JSP页面或其他Java EE组件中的一种特殊语法,其基本形式为`${expression}`。这里的`expression`可以是Java对象、属性、方法调用等。...

    jsp完整学习笔记(完整版)

    **JSP完整学习笔记概述** 本笔记是作者在专业培训学校学习JSP的总结,旨在为读者提供一个全面了解和掌握JavaServer Pages (JSP) 技术的资源。JSP是Java平台上的动态网页技术,它允许开发人员将静态HTML内容与动态...

    [JSP&Servlet;学习笔记(第2版)]

    **JSP(Java Server Pages)与Servlet...这个**[JSP&Servlet学习笔记(第2版)]**会涵盖这些主题,并可能包括示例代码、最佳实践和常见问题解答,帮助读者全面掌握JSP和Servlet的使用技巧,进一步提升Java Web开发能力。

    JSP&Servlet学习笔记.pdf

    由于这部分内容是电子书中的学习笔记,电子书的内容并未直接给出,因此只能根据电子书的标题“JSP&Servlet学习笔记”和描述来推测可能涉及的知识点,而没有具体的电子书内容可以分析。如需进一步学习,建议查阅相关...

    JSP JDBC 学习笔记(基础)

    本学习笔记将深入探讨这两个技术的基础知识,以帮助初学者掌握它们的基本概念和应用。** ### JSP基础 1. **JSP概述**:JSP是一种基于Java的技术,它允许在服务器端生成HTML,使得开发者可以在网页中嵌入Java代码,...

    韩顺平jsp九讲笔记

    【韩顺平jsp九讲笔记】是一份详细记录了韩顺平老师关于JSP(Java Server Pages)技术的九次讲解的学习资料。这份笔记涵盖了JSP的基础知识、核心概念以及实际应用,旨在帮助学习者深入理解和掌握JSP编程。韩顺平老师...

    JSP学习笔记 jsp学习资料

    通过这份“JSP学习笔记”,你可以深入理解JSP的工作原理,掌握如何使用JSP进行动态网页开发,同时了解与之相关的Java Web技术,如Servlet、EL和JSTL。在实际项目中,这些知识将帮助你构建高效、可扩展的Web应用。

    Servlet&JSP;学习笔记源代码

    这份"Servlet&JSP学习笔记源代码"是由林信良编著,提供了丰富的实例代码,旨在帮助学习者深入理解这两种技术。 Servlet是Java编程语言的一个接口,允许Java代码与HTTP服务器进行交互。它扩展了服务器的功能,使得...

    jsp2.0 学习笔记+完整源码

    **JSP 2.0 学习笔记及完整源码详解** JSP 2.0(JavaServer Pages)是Java平台上的动态网页技术,它允许开发者在HTML、XML或其他标记语言文档中嵌入Java代码,以实现服务器端的动态内容生成。本资料包包括了JSP 2.0...

    JSP Servlet 学习笔记源码

    本学习笔记源码提供了全面的学习资源,涵盖了这两个技术的基础到高级应用,旨在帮助开发者深入理解并熟练掌握JSP和Servlet。 1. **JSP基础**: JSP是一种服务器端的脚本语言,它将HTML、CSS、JavaScript与Java代码...

    jsp/servlet个人学习笔记

    EL 是 JSP 2.0 引入的一种简洁的表达方式,用于访问 JSP 页面中的数据。它简化了获取和设置页面上下文中的属性,例如 `${user.name}` 可以直接获取 `user` 对象的 `name` 属性,无需使用 `&lt;%= %&gt;` 或 `&lt;jsp:...

    Servlet &JSP学习笔记NetBeans源代码

    在这个"Servlet & JSP学习笔记NetBeans源代码"压缩包中,你将找到一系列与Servlet和JSP相关的示例代码,这些代码是基于NetBeans IDE编写的,并且是在Tomcat服务器上运行的。 Tomcat是一个开源的轻量级Web服务器和...

    JSTL & EL 学习笔记

    ### JSTL与EL:深度解析与学习指南 在探讨JSTL(JavaServer Pages Standard Tag Library)与EL(Expression Language)之前,我们先来理解它们在Java Web开发中的核心地位。JSTL与EL是Java Web应用开发中不可或缺的...

    JSP 超详细笔记+EL

    因此,学习JSP之前,理解Servlet基础是非常重要的。 **软件体系结构**: 1. **C/S架构**:客户端/服务器,如QQ,需要分别在客户端和服务端编写程序。这种架构更新困难,但安全性较高。 2. **B/S架构**:浏览器/...

    jsp实用教程笔记

    【JSP实用教程笔记】 JSP(JavaServer Pages)是一种基于Java技术的动态网页开发工具,它允许开发者在HTML页面中嵌入Java代码,实现服务器端的动态网页生成。本笔记将围绕“jsp实用教程”这本书的核心内容进行展开...

    新一代JSP网络编程笔记

    **新一代JSP网络编程笔记** ...本笔记通过个人的学习心得,详细解析了JSP网络编程的关键概念和技术,对于初学者和有经验的开发者都是宝贵的学习资料。通过阅读和实践,读者可以掌握如何利用JSP构建高效的Web应用程序。

    jsp学习笔记总结(收集)

    这份"jsp学习笔记总结"包含了作者在深入学习JSP过程中积累的宝贵知识,旨在为初学者提供一个全面的指导。 1. **JSP基础概念** JSP是由Sun Microsystems开发的,用于服务器端的脚本语言。它允许开发者使用HTML或者...

    良葛格JspServlet学习笔记.pdf

    ### 良葛格JspServlet学习笔记 #### 一、引言 在现代Web开发领域,特别是Java EE平台中,JSP (JavaServer Pages) 和 Servlet 技术扮演着非常重要的角色。这两种技术共同构成了Java Web应用的基础,分别侧重于用户...

    JSP学习笔记截屏1

    在《JSP学习笔记截屏1》中,我们可以预见到这是一份关于学习JSP过程中的记录,包含了韩顺平老师的视频教程内容和个人的学习心得。韩顺平老师是一位知名的Java和Web开发领域的讲师,他的课程通常深入浅出,易于理解,...

    Servlet&JSP学习笔记源代码

    在"Servlet&JSP学习笔记源代码"中,林信良教授通过实例讲解了这两项技术的基础和进阶知识。这些源代码是在Eclipse集成开发环境中创建的,Eclipse是Java开发的主流工具,支持丰富的插件,使得开发、调试和部署Servlet...

Global site tag (gtag.js) - Google Analytics