ServletsJsp 实验10表达式语言EL的使用.docx

上传人:b****7 文档编号:10791356 上传时间:2023-02-22 格式:DOCX 页数:27 大小:160.92KB
下载 相关 举报
ServletsJsp 实验10表达式语言EL的使用.docx_第1页
第1页 / 共27页
ServletsJsp 实验10表达式语言EL的使用.docx_第2页
第2页 / 共27页
ServletsJsp 实验10表达式语言EL的使用.docx_第3页
第3页 / 共27页
ServletsJsp 实验10表达式语言EL的使用.docx_第4页
第4页 / 共27页
ServletsJsp 实验10表达式语言EL的使用.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

ServletsJsp 实验10表达式语言EL的使用.docx

《ServletsJsp 实验10表达式语言EL的使用.docx》由会员分享,可在线阅读,更多相关《ServletsJsp 实验10表达式语言EL的使用.docx(27页珍藏版)》请在冰豆网上搜索。

ServletsJsp 实验10表达式语言EL的使用.docx

ServletsJsp实验10表达式语言EL的使用

10

实验十表达式语言的使用

一.实验目的

1.了解表达式语言的功能;

2.掌握表达式语言的使用。

二.实验内容

1.表达式语言运算符的使用

下面的JSP页面operator.jsp演示了EL运算符的使用:

<%@pagecontentType="text/html;charset=gb2312"%>

JSP2.0ExpressionLanguage-BasicArithmetic

JSP2.0表达式语言-基本算术运算符


该例说明了基本的表达式语言的算术运算符的使用,其中包括加(+),减(-),乘(*),除(/或div),取余(%或mod)。


EL表达式

结果

\${1}${1}

\${1+2}${1+2}

\${1.2+2.3}${1.2+2.3}

\${1.2E4+1.4}${1.2E4+1.4}

\${-4-2}${-4-2}

\${21*2}${21*2}

\${3/4}${3/4}

\${3div4}${3div4}

\${3/0}${3/0}

\${10%4}${10%4}

\${10mod4}${10mod4}

\${(1==2)?

3:

4}${(1==2)?

3:

4}

 

 

2访问作用域变量

编写一个名为EmployeeBean的JavaBean,其中包括3个属性eno表示雇员号、ename表示雇员名和ecompany表示雇员公司名。

【步骤1】EmployeeBean.java程序代码

packagecom.beans;

publicclassEmployeeBean{

privateStringeno="";

privateStringename="";

privateStringecompany="";

publicEmployeeBean(){

}

publicvoidsetEno(Stringeno){

this.eno=eno;

}

publicvoidsetEname(Stringename){

this.ename=ename;

}

publicvoidsetEcompany(Stringecompany){

this.ecompany=ecompany;

}

publicStringgetEno(){

returneno;

}

publicStringgetEname(){

returnename;

}

publicStringgetEcompany(){

returnecompany;

}

}

【步骤2】编写一个JSP页面,在其中通过表单输入雇员信息,将请求转发到一个Servlet。

<%@pagecontentType="text/html;charset=gb2312"%>

请输入雇员信息:

雇员号:

雇员名:

公司名:

【步骤3】下面的Servlet从JSP页面得到客户信息

packagecom.control;

importjava.io.*;

importjavax.servlet.*;

importjavax.servlet.http.*;

importcom.beans.EmployeeBean;

publicclassEmployeeServletextendsHttpServlet{

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

Stringeno=request.getParameter("eno");

Stringename=request.getParameter("ename");

Stringecompany=request.getParameter("ecompany");

EmployeeBeanemployee=newEmployeeBean();

employee.setEno(eno);

employee.setEname(ename);

employee.setEcompany(ecompany);

request.setAttribute("employee",employee);

RequestDispatcherview=

request.getRequestDispatcher("/displayEmployee.jsp");

view.forward(request,response);

}

}

 

 

【步骤4】下面的JSP使用EL表达式显示用户的信息

<%@pagecontentType="text/html;charset=gb2312"%>

雇员的信息如下:


  • 雇员号:

    ${employee.eno}

  • 雇员名:

    ${employee.ename}

  • 公司名:

    ${employee.ecompany}

3.隐含对象的使用

下面的JSP页面implicit.jsp演示了EL隐含对象的使用。

<%@pagecontentType="text/html;charset=gb2312"%>

ELimplicitobjects

JSP2.0表达式语言-隐含对象


输入foo参数值

foo=


EL表达式

结果

\${param.foo}

${param.foo} 

\${param["foo"]}

${param["foo"]} 

\${header["host"]}

${header["host"]}

\${header["accept"]}

${header["accept"]}

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

${header["user-agent"]}

 

 

4.在JSP页面中使用Java函数

设要在JSP页面中使用一个add()函数,实现两个整数的加法运算。

在JSP中使用Java函数要经过如下3个步骤:

【步骤1】函数的定义,创建类文件Compute.java。

它定义了要在JSP中使用的add()方法。

packagecom.demo;

publicclassCompute{

publicstaticintadd(Stringx,Stringy){

inta=0;

intb=0;

try{

a=Integer.parseInt(x);

b=Integer.parseInt(y);

}catch(Exceptione){

System.err.println("Numberformatisillegal.");

}

returna+b;

}

}

【步骤2】创建标签库描述文件taglib.tld。

它实现将每个Java方法与函数名相匹配。

xmlversion="1.0"encoding="UTF-8"?

>

xmlns:

xsi="http:

//www.w3.org/2001/XMLSchema-instance"

xsi:

schemaLocation="

version="2.0">

ASimpleTaglibFile.

1.0

SimpleTagLibrary

Addingtwonumbers

add

com.demo.Compute

intadd(java.lang.String,java.lang.String)

注意:

将该文件保存在Web应用程序WEB-INF\classes目录中。

【步骤3】编写JSP文件sum.jsp,使用标签库URI以及函数名调用Java函数,代码如下:

<%@pagecontentType="text/html;charset=gb2312"%>

<%@taglibprefix="demo"uri="%>

UsingFunction

计算两个整数之和

X=

Y=

两个整数的和为:

${demo:

add(param["x"],param["y"])}

该页面运行结果为:

图10.1sum.jsp页面的运行结果

5.下面在Functions类中定义了reverse()函数用来实现字符串反转、numVowels()函数用来实现统计字符串中元音字母个数、caps()函数用来将一个字符串转换成大写字母、palindrome()函数用来判断一个字符串是否是回文。

编译该文件,编写TLD文件定义这些函数,编写JSP页面使用这些函数。

packagecom.function;

importjava.util.*;

publicclassFunctions{

publicstaticStringoldString(Stringtext)

{

returntext;

}

publicstaticStringreverse(Stringtext){

returnnewStringBuffer(text).reverse().toString();

}

publicstaticintnumVowels(Stringtext){

Stringvowels="aeiouAEIOU";

intresult=0;

for(inti=0;i

if(vowels.indexOf(text.charAt(i))!

=-1){

result++;

}

}

returnresult;

}

publicstaticStringcaps(Stringtext){

returntext.toUpperCase();

}

publicstaticbooleanpalinDrome(Stringstr){

StringBuffersb=newStringBuffer(str);

if((sb.reverse().toString()).equals(str)){

returntrue;

}else{

returnfalse;

}

}

}

xmlversion="1.0"encoding="UTF-8"?

>

xmlns:

xsi="http:

//www.w3.org/2001/XMLSchema-instance"

xsi:

schemaLocation="

version="2.0">

ASimpleTaglibFile.

1.0

SimpleTagLibrary

outputtheoldString

oldString

com.function.Functions

java.lang.StringoldString(java.lang.String)

ReversesthecharactersinthegivenString

reverse

com.function.Functions

java.lang.Stringreverse(java.lang.String)

Countsthenumberofvowels(a,e,i,o,u)inthegivenString

numVowels

com.function.Functions

java.lang.intnumVowels(java.lang.String)

Convertsthestringtoallcaps

caps

com.function.Functions

java.lang.Stringcaps(java.lang.String)

JudgeastringifapalinDrome

palinDrome

com.function.Functions

java.lang.BooleanpalinDrome(java.lang.String)

 

<%@pagecontentType="text/html;charset=gb2312"%>

<%@taglibprefix="function"uri="%>

UsingFunction

函数功能

text:

youentered:

${function:

oldString(param["text"])}


Afterreversing:

${function:

reverse(param["text"])}


Aftercountingvowels:

thereare${function:

numVowels(param["text"])}vowels.


Afterexchanging:

${function:

caps(param["text"])}


Afterjudging:

thetextweatherispalinDrome?

${function:

palinDrome(param["text"])}

 

三.思考题

1.简述JSP表达式语言的主要功能有哪些?

2.简述在JSP页面中使用Java函数的步骤。

源代码:

1:

(1):

input.jsp

<%@pagecontentType="text/html;charset=gb2312"%>

请输入雇员信息:

雇员号:

雇员名:

公司名:

(2):

EmployeeServlet.servlet

packagecom.control;

importjava.io.*;

importjavax.servlet.*;

importjavax.servlet.h

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 哲学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1