小工具知识网

当前位置: 首页 > 行业知识 > [Java Web]实验六 表达式语言的使用 编写一个名为EmployeeBean的JavaBean,其中包括3个 编写JSP文件sum.jsp,使用标签库URI以及函数名调用Java函数,代码如下:

行业知识

[Java Web]实验六 表达式语言的使用 编写一个名为EmployeeBean的JavaBean,其中包括3个 编写JSP文件sum.jsp,使用标签库URI以及函数名调用Java函数,代码如下:

2026-11-11 05:25:52 来源:互联网转载

实验六  表达式语言的使用

一、实验目的

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

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

二、实验原理

表达式语言(EL)是JSP 2.0新增的功能。它是一种简洁的数据访问语言,通过它可以在JSP页面中方便地访问应用程序数据,无需使用JSP表达式()。EL的目标是使动态网页的设计、开发和维护更加容易。

EL的特点是访问数据可以使用点(.)运算符或方括号([])运算符;可以访问隐含对象;有自己的运算符构造表达式;可以使用Java语言编写的函数等。

三、实验内容与步骤

(一)表达式语言运算符的使用

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

      JSP 2.0 Expression Language - Basic Arithmetic        

JSP 2.0 表达式语言 - 基本算术运算符

   
    该例说明了基本的表达式语言的算术运算符的使用,其中包括加(+),减(-), 乘(*),除(/ 或 p), 取余 (% 或 mod)。   
                 
                                                                                          
EL 表达式结果
${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}
${3 p 4} ${3 p 4}
${3/0} ${3/0}
${10%4} ${10%4}
${10 mod 4} ${10 mod 4}
${(1==2) ? 3 : 4} ${(1==2) ? 3 : 4}
           

(二)访问作用域变量

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

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

package com.beans;public class EmployeeBean {  private String eno = "";  private String ename = "";  private String ecompany = "";  public EmployeeBean() {  }     public void setEno(String eno){         this.eno = eno;  }  public void setEname(String ename){         this.ename = ename;  }  public void setEcompany(String ecompany){         this.ecompany = ecompany;  }      public String getEno(){         return eno;  }  public String getEname(){         return ename;  }  public String getEcompany(){         return ecompany;  }}

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

请输入雇员信息:
雇员号:
雇员名:
公司名:

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

package com.control;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;import com.beans.EmployeeBean;public class EmployeeServlet extends HttpServlet{   public void doPost(HttpServletRequest request, HttpServletResponse response)                 throws ServletException,IOException{      String eno = request.getParameter("eno");      String ename = request.getParameter("ename");      String ecompany = request.getParameter("ecompany");      EmployeeBean employee = new EmployeeBean();      employee.setEno(eno);      employee.setEname(ename);      employee.setEcompany(ecompany);           request.setAttribute("employee", employee);      RequestDispatcher view =           request.getRequestDispatcher("/displayEmployee.jsp");      view.forward(request, response);  }}

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

雇员的信息如下:
     
  • 雇员号:${employee.eno} 
  • 雇员名:${employee.ename} 
  • 公司名:${employee.ecompany}

(三)隐含对象的使用

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

      EL implicit objects        

JSP 2.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"]}
         

(四)在JSP页面中使用Java函数

设要在JSP页面中使用一个add()函数,实现两个整数的加法运算。在JSP中使用Java函数要经过如下3个步骤:

【步骤1】函数的定义,创建类文件Compute.java。它定义了要在JSP中使用的add()方法。

package com.example.expsix;public class Compute{    public static int add(String x,String y){        int a = 0;        int b = 0;        try{            a = Integer.parseInt(x);            b = Integer.parseInt(y);        }catch(Exception e){            System.err.println("Number format is illegal.");        }        return a+b;    }}
package com.example.expsix;import java.util.*;public class Functions {    public static String reverse( String text ) {        return new StringBuffer( text ).reverse().toString();    }    public static int numVowels( String text ) {        String vowels = "aeiouAEIOU";        int result = 0;        for( int i = 0; i  

【步骤2】创建标签库描述文件taglib.tld。它实现将每个Java方法与函数名相匹配。

    A Simple Taglib File.    1.0    demo    http://www.mydomain.com/function            Adding two numbers        add        com.example.expsix.Compute                    int add( java.lang.String, java.lang.String)                        Reverses the characters in the given String        reverse        com.example.expsix.Functions        java.lang.String reverse( java.lang.String )                Counts the number of vowels (a,e,i,o,u) in the given String        countVowels        com.example.expsix.Functions        int numVowels( java.lang.String )                Converts the string to all caps        caps        com.example.expsix.Functions        java.lang.String caps( java.lang.String )    

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

还需要新建web.xml文件:

    Archetype Created Web Application                        http://www.mydomain.com/function                /WEB-INF/classes/taglib.tld        

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

Using Function 

计算两个整数之和

X = Y =

两个整数的和为:${demo:add(param["x"],param["y"])}

该页面运行结果为:

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

(四)编写一个名为palindrome(String str)的Java函数,实现判断用户输入的字符串是否是回文(palindrome)。编写一个JSP页面,通过EL使用该函数。

在Functions类里面加入方法:

public static boolean palindrome(String str){          StringBuffer sb = new StringBuffer(str);          if((sb.reverse().toString()).equals(str)){                   return true;          }else{                   return false;          } }

在taglib.tld中加入:

          Converts the string to all caps        palindrome        com.example.expsix.Functions        boolean palindrome(java.lang.String)    

新建jsp文件palindrome.jsp:

Using Function 

判断字符串是否是回文

S =

字符串是否是回文:${demo:palindrome(param["s"])}

四、思考题

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

JSP表达式语言(Expression Language,简称EL)的主要功能包括:

(1)简化表达式:EL 提供了在 JSP 中简化表达式的方法。其灵感来自于 ECMAScript 和 XPath 表达式语言,这使得 JSP 写起来更加简单。

(2)访问数据:EL 可以轻松地访问和操纵 JavaBean 中的数据。不论是算术表达式还是逻辑表达式的创建,EL 都可以胜任。

(3)支持多种数据类型:在 EL 表达式内,可以使用整型数、浮点数、字符串、常量 true、false,以及 null。

(4)提供可扩展函数:EL 具有映射到 Java 类中静态方法的可扩展函数。

(5)一组隐式对象:EL 提供了一组隐式对象,这些对象可以在表达式中直接使用,无需声明。

(6)运行时表达式的功能:EL 提供了在 JSP 脚本编制元素范围外使用运行时表达式的功能。

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

在JSP页面中使用Java函数的步骤大致如下:

(1)首先,需要创建一个Java类,并在其中定义想要使用的函数。注意,这个函数必须是静态的。

(2)在JSP页面中,通过 的方式引入创建的Java类。

(3)在JSP页面中,可以直接通过类名和方法名调用该函数。例如,如果函数是 public static String sayHello(String name),那么在JSP页面中可以这样调用:。

注意:虽然在JSP中可以使用Java代码,但这并不是一种好的做法。因为JSP主要应该用于表示层,即显示数据给用户,而业务逻辑和数据处理应该在Servlet或其他Java类中完成。在JSP中过多使用Java代码会使表示层和业务逻辑混在一起,导致代码难以维护和扩展。因此,在实际开发中,应尽量避免在JSP页面中使用过多的Java代码。

上一篇:Elasticsearch:使用 Streamlit、语义搜索和命名实体提取开发 Elastic Search 应用程序

下一篇:文章生成二维码全攻略,轻松实现内容扫码分享!