`

Jsp/Servlet复习笔记-----第8章 JSP表达式语言

    博客分类:
  • JSP
阅读更多
8.1 表达式语言简介
JSP用于在网页上显示动态内容,通常需要在JSP页面中嵌入Java脚本以完成复杂功能。但是大量的Java脚本使得JSP页面难以维护。一种类似JavaScript语言—JSP表达式语言可用于在网页上生成动态内容,并代替JSP脚本元素。JSP表达式语言是从JSP2.0规范开始支持的技术。
8.2 禁用EL 表达式计算
8.3 变量
8.4 隐式对象
8.5 文字常量
8.6 运算符
8.7 保留字
8.8 表达式使用案例
   8.9 本章小结 

EL的主要功能:
精确的访问存储对象
Bean属性的简略记法
空值取代错误消息

之前代码:
Java代码
1.<%  
2.    pageContext.setAttribute("name","darkness");  
3.%>  
4.<%  
5.    if(pageContext.getAttribute("name") != null)  
6.    {  
7.%>  
8.        <%=pageContext.getAttribute("name")%>  
9.<%  
10.    }  
11.%>  
12. 
13.<!--可以发现,这样,代码较多-->  
14.<%  
15.    pageContext.setAttribute("name","darkness");  
16.%> 
<%
pageContext.setAttribute("name","darkness");
%>
<%
if(pageContext.getAttribute("name") != null)
{
%>
<%=pageContext.getAttribute("name")%>
<%
}
%>

<!--可以发现,这样,代码较多-->
<%
pageContext.setAttribute("name","darkness");
%>
${name}
使用表达式时不需要去判断属性是否为空
Java代码
1.<!--如果在不同的属性范围中设置了同名的属性,则之后的同名属性无法找到-->  
2.<!--按照四中标志位来寻找-->  
3.<%  
4.    pageContext.setAttribute("name","darkness");  
5.    request.setAttribute("name","darkness");  
6.%>  
7.${name} 
<!--如果在不同的属性范围中设置了同名的属性,则之后的同名属性无法找到-->
<!--按照四中标志位来寻找-->
<%
pageContext.setAttribute("name","darkness");
request.setAttribute("name","darkness");
%>
${name}

EL的主要功能在于MVC设计模式之中
后台:
Java代码
1.package org.sky.darkness.servlet.el ;  
2. 
3.import java.io.* ;  
4.import javax.servlet.* ;  
5.import javax.servlet.http.* ;  
6. 
7.public class ELServletDemo01 extends HttpServlet  
8.{  
9.    public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException  
10.    {  
11.        req.setAttribute("name","www.sky.org") ;  
12.        // 服务器端跳转  
13.        req.getRequestDispatcher("eldemo03.jsp").forward(req,resp) ;  
14.    }  
15.    public void doPost(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException  
16.    {  
17.        this.doGet(req,resp) ;  
18.    }  
19.};  
20./* 
21.  <servlet> 
22.    <servlet-name>el01</servlet-name> 
23.    <servlet-class> org.sky.darkness.servlet.el.ELServletDemo01</servlet-class> 
24.  </servlet> 
25.  <servlet-mapping> 
26.    <servlet-name>el01</servlet-name> 
27.    <url-pattern>/eldemo/el_1</url-pattern> 
28.  </servlet-mapping> 
29.*/ 
30.后台:${name} 
package org.sky.darkness.servlet.el ;

import java.io.* ;
import javax.servlet.* ;
import javax.servlet.http.* ;

public class ELServletDemo01 extends HttpServlet
{
public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException
{
req.setAttribute("name","www.sky.org") ;
// 服务器端跳转
req.getRequestDispatcher("eldemo03.jsp").forward(req,resp) ;
}
public void doPost(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException
{
this.doGet(req,resp) ;
}
};
/*
  <servlet>
<servlet-name>el01</servlet-name>
<servlet-class> org.sky.darkness.servlet.el.ELServletDemo01</servlet-class>
  </servlet>
  <servlet-mapping>
<servlet-name>el01</servlet-name>
<url-pattern>/eldemo/el_1</url-pattern>
  </servlet-mapping>
*/
后台:${name}

*访问Bean的属性 :
1、点号记法
${beanName.beanProperty}

2、数组记法

${beanName[“beanProperty”]}
Java代码
1.package org.sky.darkness.servlet.el ;  
2. 
3.import java.io.* ;  
4.import javax.servlet.* ;  
5.import javax.servlet.http.* ;  
6. 
7.public class ELServletDemo02 extends HttpServlet  
8.{  
9.    public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException  
10.    {  
11.        Simple s = new Simple() ;  
12.        s.setName("darkness") ;  
13.        req.setAttribute("sim",s) ;  
14.        // 服务器端跳转  
15.        req.getRequestDispatcher("eldemo04.jsp").forward(req,resp) ;  
16.    }  
17.    public void doPost(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException  
18.    {  
19.        this.doGet(req,resp) ;  
20.    }  
21.};  
22./* 
23.  <servlet> 
24.    <servlet-name>el02</servlet-name> 
25.    <servlet-class> org.sky.darkness.servlet.el.ELServletDemo02</servlet-class> 
26.  </servlet> 
27.  <servlet-mapping> 
28.    <servlet-name>el02</servlet-name> 
29.    <url-pattern>/eldemo/el_2</url-pattern> 
30.  </servlet-mapping> 
31.*/ 
package org.sky.darkness.servlet.el ;

import java.io.* ;
import javax.servlet.* ;
import javax.servlet.http.* ;

public class ELServletDemo02 extends HttpServlet
{
public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException
{
Simple s = new Simple() ;
s.setName("darkness") ;
req.setAttribute("sim",s) ;
// 服务器端跳转
req.getRequestDispatcher("eldemo04.jsp").forward(req,resp) ;
}
public void doPost(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException
{
this.doGet(req,resp) ;
}
};
/*
  <servlet>
<servlet-name>el02</servlet-name>
<servlet-class> org.sky.darkness.servlet.el.ELServletDemo02</servlet-class>
  </servlet>
  <servlet-mapping>
<servlet-name>el02</servlet-name>
<url-pattern>/eldemo/el_2</url-pattern>
  </servlet-mapping>
*/Java代码
1.      
2.package org.sky.darkness.servlet.el ;  
3. 
4.public class Simple  
5.{  
6.    private String name ;  
7.    public void setName(String name)  
8.    {  
9.        this.name = name ;  
10.    }  
11.    public String getName()  
12.    {  
13.        return this.name ;  
14.    }  
15.}; 

package org.sky.darkness.servlet.el ;

public class Simple
{
private String name ;
public void setName(String name)
{
this.name = name ;
}
public String getName()
{
return this.name ;
}
};
如果保存的是一个对象,则在 JSP页面中要写以下代码:
Java代码
1.<%@ page import=”org.sky.darkness.servlet.el.*”%>  
2.<%  
3.If(request.getAttribute(“sim”) != null){  
4.    Simple  simp = (Simple)request.getAttribute(“sim”);  
5.%>  
6.        <%=simp.getName()%>  
7.<%  
8.    }  
9.%>  
10.<h1>${sim.name}</h1>  
11.嵌套调用: ${ emp.name.firstName } 
<%@ page import=”org.sky.darkness.servlet.el.*”%>
<%
If(request.getAttribute(“sim”) != null){
    Simple  simp = (Simple)request.getAttribute(“sim”);
%>
        <%=simp.getName()%>
<%
    }
%>
<h1>${sim.name}</h1>
嵌套调用: ${ emp.name.firstName }Java代码
1.package org.sky.darkness.servlet.el ;  
2. 
3.public class NameBean  
4.{  
5.    private String firstName ;  
6.    private String lastName ;  
7. 
8.    public void setFirstName(String firstName)  
9.    {  
10.        this.firstName = firstName ;  
11.    }  
12.    public void setLastName(String lastName)  
13.    {  
14.        this.lastName = lastName ;  
15.    }  
16.    public String getFirstName()  
17.    {  
18.        return this.firstName ;  
19.    }  
20.    public String getLastName()  
21.    {  
22.        return this.lastName ;  
23.    }  
24.}; 
package org.sky.darkness.servlet.el ;

public class NameBean
{
private String firstName ;
private String lastName ;

public void setFirstName(String firstName)
{
this.firstName = firstName ;
}
public void setLastName(String lastName)
{
this.lastName = lastName ;
}
public String getFirstName()
{
return this.firstName ;
}
public String getLastName()
{
return this.lastName ;
}
};
Java代码
1.package org.sky.darkness.servlet.el ;  
2. 
3.public class EmployeeBean  
4.{  
5.    private NameBean name ;  
6.    private CompanyBean company ;  
7. 
8.    public void setName(NameBean name)  
9.    {  
10.        this.name = name ;  
11.    }  
12.    public void setCompany(CompanyBean company)  
13.    {  
14.        this.company = company ;  
15.    }  
16.    public NameBean getName()  
17.    {  
18.        return this.name ;  
19.    }  
20.    public CompanyBean getCompany()  
21.    {  
22.        return this.company ;  
23.    }  
24.}; 
package org.sky.darkness.servlet.el ;

public class EmployeeBean
{
private NameBean name ;
private CompanyBean company ;

public void setName(NameBean name)
{
this.name = name ;
}
public void setCompany(CompanyBean company)
{
this.company = company ;
}
public NameBean getName()
{
return this.name ;
}
public CompanyBean getCompany()
{
return this.company ;
}
};Java代码
1. 
2.package org.sky.darkness.servlet.el ;  
3. 
4.public class CompanyBean  
5.{  
6.    private String companyName ;  
7.    private String business ;  
8.      
9.    public void setCompanyName(String companyName)  
10.    {  
11.        this.companyName = companyName ;  
12.    }  
13.    public void setBusiness(String business)  
14.    {  
15.        this.business = business ;  
16.    }  
17.    public String getCompanyName()  
18.    {  
19.        return this.companyName ;  
20.    }  
21.    public String getBusiness()  
22.    {  
23.        return this.business ;  
24.    }  
25.}; 

package org.sky.darkness.servlet.el ;

public class CompanyBean
{
private String companyName ;
private String business ;

public void setCompanyName(String companyName)
{
this.companyName = companyName ;
}
public void setBusiness(String business)
{
this.business = business ;
}
public String getCompanyName()
{
return this.companyName ;
}
public String getBusiness()
{
return this.business ;
}
};


Java代码
1.package org.sky.darkness.servlet.el ;  
2. 
3.import java.io.* ;  
4.import javax.servlet.* ;  
5.import javax.servlet.http.* ;  
6. 
7.public class ELServletDemo03 extends HttpServlet  
8.{  
9.    public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException  
10.    {  
11.        NameBean nb = new NameBean() ;  
12.        nb.setFirstName("darkness") ;  
13.        nb.setLastName("depravedAngel") ;  
14.          
15.        CompanyBean cb = new CompanyBean() ;  
16.        cb.setCompanyName("www.sky.org") ;  
17.        cb.setBusiness("JAVA EE、JAVA SE、JAVA ME") ;  
18. 
19.        EmployeeBean eb = new EmployeeBean() ;  
20.        eb.setName(nb) ;  
21.        eb.setCompany(cb) ;  
22. 
23.        // 保存属性  
24.        req.setAttribute("emp",eb) ;  
25. 
26.        // 服务器端跳转  
27.        req.getRequestDispatcher("eldemo05.jsp").forward(req,resp) ;  
28.    }  
29.    public void doPost(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException  
30.    {  
31.        this.doGet(req,resp) ;  
32.    }  
33.};  
34./* 
35.  <servlet> 
36.    <servlet-name>el03</servlet-name> 
37.    <servlet-class> org.sky.darkness.servlet.el.ELServletDemo03</servlet-class> 
38.  </servlet> 
39.  <servlet-mapping> 
40.    <servlet-name>el03</servlet-name> 
41.    <url-pattern>/eldemo/el_3</url-pattern> 
42.  </servlet-mapping> 
43.*/ 
package org.sky.darkness.servlet.el ;

import java.io.* ;
import javax.servlet.* ;
import javax.servlet.http.* ;

public class ELServletDemo03 extends HttpServlet
{
public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException
{
NameBean nb = new NameBean() ;
nb.setFirstName("darkness") ;
nb.setLastName("depravedAngel") ;

CompanyBean cb = new CompanyBean() ;
cb.setCompanyName("www.sky.org") ;
cb.setBusiness("JAVA EE、JAVA SE、JAVA ME") ;

EmployeeBean eb = new EmployeeBean() ;
eb.setName(nb) ;
eb.setCompany(cb) ;

// 保存属性
req.setAttribute("emp",eb) ;

// 服务器端跳转
req.getRequestDispatcher("eldemo05.jsp").forward(req,resp) ;
}
public void doPost(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException
{
this.doGet(req,resp) ;
}
};
/*
  <servlet>
<servlet-name>el03</servlet-name>
<servlet-class> org.sky.darkness.servlet.el.ELServletDemo03</servlet-class>
  </servlet>
  <servlet-mapping>
<servlet-name>el03</servlet-name>
<url-pattern>/eldemo/el_3</url-pattern>
  </servlet-mapping>
*/


Java代码
1.<h1>FirstName:${emp.name.firstName}</h1>  
2.<h1>LastName:${emp.name.lastName}</h1>  
3.<h1>CompanyName:${emp.company.companyName}</h1>  
4.<h1>Business:${emp.company.business}</h1> 
<h1>FirstName:${emp.name.firstName}</h1>
<h1>LastName:${emp.name.lastName}</h1>
<h1>CompanyName:${emp.company.companyName}</h1>
<h1>Business:${emp.company.business}</h1>



访问集合操作:
Java代码
1.package org.sky.darkness.servlet.el ;  
2. 
3.import java.io.* ;  
4.import java.util.* ;  
5.import javax.servlet.* ;  
6.import javax.servlet.http.* ;  
7. 
8.public class ELServletDemo04 extends HttpServlet  
9.{  
10.    public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException  
11.    {  
12.        List l = new ArrayList() ;  
13.        Simple s = null ;  
14.        s = new Simple() ;  
15.        s.setName("darkness") ;  
16.        l.add(s) ;  
17. 
18.        s = new Simple() ;  
19.        s.setName("wind") ;  
20.        l.add(s) ;  
21. 
22.        s = new Simple() ;  
23.        s.setName("cloud") ;  
24.        l.add(s) ;  
25. 
26.        req.setAttribute("all",l) ;  
27.        // 服务器端跳转  
28.        req.getRequestDispatcher("eldemo06.jsp").forward(req,resp) ;  
29.    }  
30.    public void doPost(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException  
31.    {  
32.        this.doGet(req,resp) ;  
33.    }  
34.};  
35./* 
36.  <servlet> 
37.    <servlet-name>el02</servlet-name> 
38.    <servlet-class> org.sky.darkness.servlet.el.ELServletDemo02</servlet-class> 
39.  </servlet> 
40.  <servlet-mapping> 
41.    <servlet-name>el02</servlet-name> 
42.    <url-pattern>/eldemo/el_2</url-pattern> 
43.  </servlet-mapping> 
44.*/ 
package org.sky.darkness.servlet.el ;

import java.io.* ;
import java.util.* ;
import javax.servlet.* ;
import javax.servlet.http.* ;

public class ELServletDemo04 extends HttpServlet
{
public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException
{
List l = new ArrayList() ;
Simple s = null ;
s = new Simple() ;
s.setName("darkness") ;
l.add(s) ;

s = new Simple() ;
s.setName("wind") ;
l.add(s) ;

s = new Simple() ;
s.setName("cloud") ;
l.add(s) ;

req.setAttribute("all",l) ;
// 服务器端跳转
req.getRequestDispatcher("eldemo06.jsp").forward(req,resp) ;
}
public void doPost(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException
{
this.doGet(req,resp) ;
}
};
/*
  <servlet>
<servlet-name>el02</servlet-name>
<servlet-class> org.sky.darkness.servlet.el.ELServletDemo02</servlet-class>
  </servlet>
  <servlet-mapping>
<servlet-name>el02</servlet-name>
<url-pattern>/eldemo/el_2</url-pattern>
  </servlet-mapping>
*/
Java代码
1.<%@page import="java.util.*"%>  
2.<%--  
3.    要使用Iterator进行输出  
4.--%>  
5.<%  
6.    // List要使用Iterator输出  
7.    List l = (List)request.getAttribute("all") ;  
8.    Iterator iter = l.iterator() ;  
9.    while(iter.hasNext())  
10.    {  
11.        // 将取出的对象放在page范围之中  
12.        pageContext.setAttribute("sim",iter.next()) ;  
13.%>  
14.            //调用隐式对象  
15.        <h1>${pageScope.sim.name}</h1>  
16.<%  
17.    }  
18.%> 
分享到:
评论

相关推荐

    jsp/servlet个人学习笔记

    el表达式语言,jsp标签库,servlet,过滤器,监听器,基础语法,内置对象,站点配置,常见错误,学习总结

    JSP+Servlet笔记

    Java网站开发(jsp+servlet)笔记,里面还包括EL表达式,JSTL标签库的使用,网站文件上传的源代码截图等

    JSP网络编程学习笔记源代码 part2

    第三篇为“JSP技术基础”,主要讲述JSP的基本语法和内建对象及JSP和Servlet的集成,JavaBean和表达式语言;第四篇为“数据库访问技术”,主要讲述JDBC技术及JSP和Servlet如何通过JDBC访问数据库,以及如何改进数据库...

    Java/JavaEE 学习笔记

    第八章 JDBC and Application Architecture..........................178 Hibernate学习笔记..........180 第一章 Hibernate入门.....................180 第二章 对象/关系映射基础.............183 第三章 关联...

    JAVA笔试面试资料JDBC HTTP、JSP、Servlet、Struts面试题汇总资料.zip

    JAVA笔试面试资料JDBC HTTP、JSP、Servlet、Struts面试题汇总资料: 2014年最新Java笔试题及答案.docx 225道Java面试题 学会了Java面试随你问.docx Ant和Maven的作用是什么?两者之间功能、特点有哪些区别?.docx ...

    JAVAWeb全课程笔记( html版)

    EL表达式语言 JSTL标签库: JSP标准标签库 MVC程序架构思想&案例 [总结]Path路径问题 [总结]JavaWeb乱码问题 [转自IBM]中文编码问题 JDBC入门 Jdbc事务控制管理 常用数据库连接池 编写JDBC框架 客户信息管理系统 ...

    Java学习笔记-个人整理的

    {8}多线程}{121}{chapter.8} {8.1}线程的常用属性与方法}{121}{section.8.1} {8.2}后台线程}{123}{section.8.2} {8.3}创建线程的两种方法}{123}{section.8.3} {8.4}Runnable}{123}{section.8.4} {8.5}Sleep...

    J2EE学习笔记(J2ee初学者必备手册)

    第八章 图形用户接口:GUI.............78 第十一章 事件处理模型....................79 第十三章 线程(Threads)....................80 第十四章 标准I/O流与文件.............84 第十五章 网络编程.89 Tiger学习...

    JAVA基础学习总结笔记

    EL表达式语言. GET和POST区别. Jsp语法. EL表达式语言. iBATIS. JDBC编程. JDBC驱动加载. Servlet.过滤器,监听器 struts相关笔记. 等等...... 里面是当年自学JAVA时的一些笔记,内容都是TXT格式的,都是一些基础性的...

    吴天雄--JavaWeb完整笔记.doc

    模块二:使用eclipse和idea快速开发jsp(idea和tomcat的相关配置、eclipse创建web项目、jsp页面元素、jsp九大内置对象、四大作用域对象、解决get/post请求乱码问题、cookie和session详解、请求重定向);模块三:...

    springmybatis

    恭喜你,环境搭建配置成功,接下来第二章,将讲述基于接口的操作方式,增删改查。 整个工程目录结构如下: 除非申明,文章均为一号门原创,转载请注明本文地址,谢谢! mybatis实战教程(mybatis in action)之二:以...

    JavaWeb动力节点

    详细Javaweb笔记,源码解析 纯粹Servlet实现增删查改 请求转发和重定向 session和cookie JSP指令、EL表达式、JSTL标签库 过滤器、监听器

    Web程序设计课堂笔记.doc

    1.Tomcat和HTTP协议 2.Servlet基础 3.HttpServletRequest请求对象 4.JSP技术和会话跟踪 5.JSTL和EL表达式 6.过滤器 7.监听器 8.JDBC 9.文件上传和下载 10.JSP的开发模型——MVC设计架构

    web开发课程笔记、源码和课程视频.zip

    web开发课程笔记、源码和课程视频,适合自学web、有编程基础...内含:html、css、javascript、jQuery、XML、Tomcat、Servlet、jsp、EL表达式、JSTL标签库、cookie、session、Filter过滤器、json、Ajax请求、项目实战。

    javaee笔记

    笔记说明:包含servlet(高新技术、dom解析、sax解析、HTTP协议、JSP、DTD、自定义标签库、JSTL标签库、 EL表达式、Filter)、mysql、jdbc、文件上传与下载、Ajax、jQuery、struts2、struts2高级、spring、hibernate、...

    整理后java开发全套达内学习笔记(含练习)

    八进制数,零开头 011(八进制)=9(十进制) 十六进制数,零x开头 0x55(十六进制)=5*16+5(十进制) 类型:数据都必须有类型 boolean (8bit,不定的)只有true和false两个值 char 16bit, 0~2^16-1 (2^16=6万6) byte ...

Global site tag (gtag.js) - Google Analytics