版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.实验7(1) 表达式语言的使用一、实验目的1. 了解表达式语言的功能;2. 掌握表达式语言的使用。二、实验原理表达式语言(EL)是JSP 2.0新增的功能。它是一种简洁的数据访问语言,通过它可以在JSP页面中方便地访问应用程序数据,无需使用JSP表达式()。EL的目标是使动态网页的设计、开发和维护更加容易。EL的特点是访问数据可以使用点(.)运算符或方括号()运算符;可以访问隐含对象;有自己的运算符构造表达式;可以使用Java语言编写的函数等。三、实验内容与步骤(一)表达式语言运算符的使用下面的JSP页面operator.jsp演示了EL运算符的使用: JSP 2.0 Expression
2、Language - Basic Arithmetic JSP 2.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 $3 div 4 $3 div 4 $3/0 $3/0 $10%4 $10%4 $10 mod 4 $10 mod 4
3、 $(1=2) ? 3 : 4 $(1=2) ? 3 : 4 图7.1 operater.jsp页面的运行结果(二)访问作用域变量编写一个名为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 EmployeeBe
4、an() 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】编写
5、一个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, H
6、ttpServletResponse 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.
7、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图7.2.1 employee.jsp页面的运行结果图7.2.
8、2 displayEmployee.jsp页面的运行结果(三)隐含对象的使用下面的JSP页面implicit.jsp演示了EL隐含对象的使用。 EL implicit objects JSP 2.0 表达式语言-隐含对象 输入foo参数值 foo= EL 表达式 结果 $param.foo $param.foo $paramfoo $paramfoo $headerhost $headerhost $headeraccept $headeraccept $headeruser-agent $headeruser-agent 图7.3 implicit.jsp页面的运行结
9、果(四)在JSP页面中使用Java函数设要在JSP页面中使用一个add()函数,实现两个整数的加法运算。在JSP中使用Java函数要经过如下3个步骤:【步骤1】函数的定义,创建类文件Compute.java。它定义了要在JSP中使用的add()方法。package com.demo;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) Syste
10、m.err.println(Number format is illegal.);return a+b; package beans;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( in
11、t i = 0; i text.length(); i+ ) if( vowels.indexOf( text.charAt( i ) ) != -1 ) result+; return result; public static String caps( String text ) return text.toUpperCase(); 【步骤2】创建标签库描述文件taglib.tld。它实现将每个Java方法与函数名相匹配。 A Simple Taglib File. 1.0 Simple Tag Library /function Adding two numbers add com.de
12、mo.Compute int add( java.lang.String, java.lang.String) Reverses the characters in the given String reversebeans.Functionsjava.lang.String reverse( java.lang.String ) Counts the number of vowels (a,e,i,o,u) in the given String countVowelsbeans.Functionsjava.lang.String numVowels( java.lang.String )
13、Converts the string to all caps capsbeans.Functionsjava.lang.String caps( java.lang.String ) 注意:将该文件保存在Web应用程序WEB-INFclasses目录中。【步骤3】编写JSP文件sum.jsp,使用标签库URI以及函数名调用Java函数,代码如下:Using Function 计算两个整数之和 X = Y = 两个整数的和为:$demo:add(paramx,paramy)该页面运行结果为:图7.4 sum.jsp页面的运行结果(五)编写一个名为palindrome(String str)的J
14、ava函数,实现判断用户输入的字符串是否是回文(palindrome)。编写一个JSP页面,通过EL使用该函数。public static boolean palindrome(String str) StringBuffer sb = new StringBuffer(str); if(sb.reverse().toString().equals(str) return true; else return false; 四、思考题1. 简述JSP表达式语言的主要功能有哪些? 答:动态读取JavaBean中的数据和动态将数据写入JavaBean中一级调用任意静态或公有方法还有动态执行算术运算。
15、2简述在JSP页面中使用Java函数的步骤。答:首先在之间声明方法,该方法在整个JSP页面有效,但是该方法内定义的变量只在该方法内有效。这些方法将在Java程序片中被调用,当方法被调用时,方法内定义的变量被分配内存,调用完毕即可释放内存。实验7(2) JSTL与标签文件一、实验目的1. 了解什么是JSTL?2. 掌握JSTL的核心库标签的使用。3. 掌握标签文件的开发和使用。二、实验原理JSP标准标签库(JSP Standard Tag Library,简称JSTL)是一个为实现Web应用程序的常用功能而开发的标签库集合。功能包括基本输入输出、流程控制、XML文件解析、数据库查询、国际化和文本
16、格式化等。JSTL主要由下面几个库组成: 核心标签库;XML标签库;格式化/国际化标签库;数据库标签库;函数标签库。这些库都很有用,但我们这里只学习核心库的使用。核心库的标签又可以分成四类,如表12.1所示:表12.1 按功能分类的核心库的标签JSTL标签类别JSTL标签标签说明通用目的在页面中显示内容捕获异常变量支持设置一个EL变量值清除一个EL变量流程控制根据一个属性等于一个值改变处理根据一个属性等于一组值改变处理对集合中的每个对象作重复处理对给定一个文本域中的每个子串执行处理URL处理重写URL并对它们的参数编码访问web应用程序外部的内容告诉客户浏览器访问另一个URL标签文件(tag
17、file)也是JSP 2.0新增的功能,它的目的是使JSP页面开发人员仅使用JSP语法就能开发标签库而无须编写Java程序。所谓标签文件就是直接使用JSP语法编写的标签。标签文件的扩展名一般为.tag或.tagx,如果标签文件包含其他完整的或片段的标签文件,JSP 2.0建议其扩展名为.tagf。在JSP页面中使用标签文件,需要在taglib动作中使用tagdir属性指定标签文件所在的目录,例如:三、实验内容与步骤(一)JSTL的安装和测试【步骤1】要在JSP页面中使用JSTL标签,首先必须安装JSTL库。可以到Jakarta网站下载最新版本的JSTL,网址为,目前最新版本为1.1.2版,它支
18、持JSP 2.0和Servlet 2.4。如果安装了Tomcat,可以在示例应用程序中获得JSTL,它位于webapps examplesWEB-INFlib目录中,共有两个文件:jstl.jar和standard.jar。将这两个文件复制到你的Web应用程序的WEB-INFlib目录中,就安装了JSTL。【步骤2】一个简单的测试JSP页面jstl_test.jspUsing JSTLRequest Method:$pageContext.request.methodRemote Address:$pageContext.request.remoteAddr如果页面运行产生下面结果,说明JST
19、L安装正确,可以使用。图7.2.1 jstl_test.jsp 页面的运行结果说明:使用JSTL我们不用建立标签库描述文件,因为该文件已经包含在standard.jar文件中了,JSP容器可以找到该文件。另外,也可以不用配置web.xml文件,因为JSP容器使用隐含映射的方式可以将标准的URI映射到适当的标签库上。(二)表达式相关标签的使用下面的core_expression.jsp演示了、和标签的使用,代码如下: 表达式相关的标签使用c:out value= /的例子不同作用域的number变量的初始值pageScope.number =requestScope.number =sessio
20、nScope.number =c:out value=执行之后/pageScope.number =requestScope.number =sessionScope.number =图7.2.2 core_expression.jsp 页面的运行结果(三)流程控制标签的使用。本实验包括2个页面,一个是flowControl.html,一个是flowControl.jsp。【步骤1】flowControl.html的代码如下: JSTL中用于流程控制的标签使用JSTL流程控制标签请选择一个填入文本框中:TomJerryMikeBen 姓名: 【步骤2】flowControl.jsp的代码如下:
21、 JSTL中用于流程控制的标签 标签c:if的使用 您好,Tom 您好,Jerry 您好,Mike 您好,Ben 标签c:choose c:when c:otherwise使用 您好,Tom 您好,Jerry 您好,Mike 您好,Ben 执行flowControl.jsp的结果如下图所示:图 flowControl.html页面的运行结果在文本框中输入Tom后,点击“传送”按钮,则出现下面的结果:图 flowControl.jsp页面的运行结果(四)URL相关标签的使用【步骤1】included.jsp是被包含的页面,代码如下:Included Page这是被包含页面中的内容用户名:【步骤2】import_test.jsp是包含页面,代码如下:Using URL JSTL这是包含页面中的内容 运行该页面,结果如下图所示:图7.2.4 import_test.jsp页面的运行结果【步骤3】redirect_test.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年文化旅游IP与文化旅游节庆活动策划可行性研究
- 2026年温差能发电技术报告
- 2026年智能耳机消费者偏好报告
- 2026年金融分析技能培训
- 2026年执业药师药物制剂基础知识核心练习(含答案解析)
- 人力资源管理流程详解
- 互联网金融安全标准指南
- 企业发展愿景分享活动计划
- 月度销售数据报告提交函3篇范文
- 学术科研诚信承诺书示例5篇
- 防御性驾驶培训
- 芯粒数学描述与组合优化理论突破
- 会议活动工作流程培训
- 消防安全检查自查清单模板
- 小学语文课堂美育融合教学策略
- 2025年贵州省高考地理试卷试题真题及答案详解
- 2025年高中生物学业水平考试知识点归纳总结(复习必背)
- 2025中国高净值人群金融投资需求与趋势白皮书
- 2026年河南省邓州市房地产行业的供需现状分析
- 国家自然博物馆面试常见问题及应对策略
- 2025年工商管理专业专升本历年真题试卷(含答案)
评论
0/150
提交评论