一、
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 获取设定初始的参数值
pageScope page对象
requestScope request对象
sessionScope session对象
applicationScope application对象
param 得到页面传来的参数
paramValues 得到页面传来的多个参数,返回一个数组
header 获取头信息
headerValues 获取头信息的值
cookie 获取cookie对象的值
initParam 获取设定初始的参数值
例:
<
%=session.getAttribute(
"phone")%>
等价于${sessionScope.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... >
< 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 >
< !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 >
< %@ 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;
}
}
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;
}
}
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;
}
}
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 >
< !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 >
${param.username}< br >
${param.password}< br >
5
、实例:
cookie
用于获取
cookie
参数的值
<%
response.addCookie(new Cookie("username","meixin"));
%>
< !-- 输出cookie中user的值,此处输出meixin -- >
${cookie.user.value }
response.addCookie(new Cookie("username","meixin"));
%>
< !-- 输出cookie中user的值,此处输出meixin -- >
${cookie.user.value }
6
、实例:</str
相关推荐
本篇web学习笔记将深入探讨EL的基本概念、语法和应用场景。 首先,EL表达式是用在JSP页面或其他Java EE组件中的一种特殊语法,其基本形式为`${expression}`。这里的`expression`可以是Java对象、属性、方法调用等。...
**JSP完整学习笔记概述** 本笔记是作者在专业培训学校学习JSP的总结,旨在为读者提供一个全面了解和掌握JavaServer Pages (JSP) 技术的资源。JSP是Java平台上的动态网页技术,它允许开发人员将静态HTML内容与动态...
**JSP(Java Server Pages)与Servlet...这个**[JSP&Servlet学习笔记(第2版)]**会涵盖这些主题,并可能包括示例代码、最佳实践和常见问题解答,帮助读者全面掌握JSP和Servlet的使用技巧,进一步提升Java Web开发能力。
由于这部分内容是电子书中的学习笔记,电子书的内容并未直接给出,因此只能根据电子书的标题“JSP&Servlet学习笔记”和描述来推测可能涉及的知识点,而没有具体的电子书内容可以分析。如需进一步学习,建议查阅相关...
本学习笔记将深入探讨这两个技术的基础知识,以帮助初学者掌握它们的基本概念和应用。** ### JSP基础 1. **JSP概述**:JSP是一种基于Java的技术,它允许在服务器端生成HTML,使得开发者可以在网页中嵌入Java代码,...
【韩顺平jsp九讲笔记】是一份详细记录了韩顺平老师关于JSP(Java Server Pages)技术的九次讲解的学习资料。这份笔记涵盖了JSP的基础知识、核心概念以及实际应用,旨在帮助学习者深入理解和掌握JSP编程。韩顺平老师...
通过这份“JSP学习笔记”,你可以深入理解JSP的工作原理,掌握如何使用JSP进行动态网页开发,同时了解与之相关的Java Web技术,如Servlet、EL和JSTL。在实际项目中,这些知识将帮助你构建高效、可扩展的Web应用。
这份"Servlet&JSP学习笔记源代码"是由林信良编著,提供了丰富的实例代码,旨在帮助学习者深入理解这两种技术。 Servlet是Java编程语言的一个接口,允许Java代码与HTTP服务器进行交互。它扩展了服务器的功能,使得...
**JSP 2.0 学习笔记及完整源码详解** JSP 2.0(JavaServer Pages)是Java平台上的动态网页技术,它允许开发者在HTML、XML或其他标记语言文档中嵌入Java代码,以实现服务器端的动态内容生成。本资料包包括了JSP 2.0...
本学习笔记源码提供了全面的学习资源,涵盖了这两个技术的基础到高级应用,旨在帮助开发者深入理解并熟练掌握JSP和Servlet。 1. **JSP基础**: JSP是一种服务器端的脚本语言,它将HTML、CSS、JavaScript与Java代码...
EL 是 JSP 2.0 引入的一种简洁的表达方式,用于访问 JSP 页面中的数据。它简化了获取和设置页面上下文中的属性,例如 `${user.name}` 可以直接获取 `user` 对象的 `name` 属性,无需使用 `<%= %>` 或 `<jsp:...
在这个"Servlet & JSP学习笔记NetBeans源代码"压缩包中,你将找到一系列与Servlet和JSP相关的示例代码,这些代码是基于NetBeans IDE编写的,并且是在Tomcat服务器上运行的。 Tomcat是一个开源的轻量级Web服务器和...
### JSTL与EL:深度解析与学习指南 在探讨JSTL(JavaServer Pages Standard Tag Library)与EL(Expression Language)之前,我们先来理解它们在Java Web开发中的核心地位。JSTL与EL是Java Web应用开发中不可或缺的...
因此,学习JSP之前,理解Servlet基础是非常重要的。 **软件体系结构**: 1. **C/S架构**:客户端/服务器,如QQ,需要分别在客户端和服务端编写程序。这种架构更新困难,但安全性较高。 2. **B/S架构**:浏览器/...
【JSP实用教程笔记】 JSP(JavaServer Pages)是一种基于Java技术的动态网页开发工具,它允许开发者在HTML页面中嵌入Java代码,实现服务器端的动态网页生成。本笔记将围绕“jsp实用教程”这本书的核心内容进行展开...
**新一代JSP网络编程笔记** ...本笔记通过个人的学习心得,详细解析了JSP网络编程的关键概念和技术,对于初学者和有经验的开发者都是宝贵的学习资料。通过阅读和实践,读者可以掌握如何利用JSP构建高效的Web应用程序。
这份"jsp学习笔记总结"包含了作者在深入学习JSP过程中积累的宝贵知识,旨在为初学者提供一个全面的指导。 1. **JSP基础概念** JSP是由Sun Microsystems开发的,用于服务器端的脚本语言。它允许开发者使用HTML或者...
### 良葛格JspServlet学习笔记 #### 一、引言 在现代Web开发领域,特别是Java EE平台中,JSP (JavaServer Pages) 和 Servlet 技术扮演着非常重要的角色。这两种技术共同构成了Java Web应用的基础,分别侧重于用户...
在《JSP学习笔记截屏1》中,我们可以预见到这是一份关于学习JSP过程中的记录,包含了韩顺平老师的视频教程内容和个人的学习心得。韩顺平老师是一位知名的Java和Web开发领域的讲师,他的课程通常深入浅出,易于理解,...
在"Servlet&JSP学习笔记源代码"中,林信良教授通过实例讲解了这两项技术的基础和进阶知识。这些源代码是在Eclipse集成开发环境中创建的,Eclipse是Java开发的主流工具,支持丰富的插件,使得开发、调试和部署Servlet...