实验八 Web组件重用与JavaBeans
班级:网络112 学号:201106090213 姓名:李亚军
一、实验目的
1. 理解静态包含和动态包含的概念,掌握相关指令和动作的使用; 2. 掌握JavaBeans的含义和创建;
3. 重点掌握在JSP页面中使用JavaBeans的标准动作。 二、实验原理
通过重用Web组件可以提高应用程序开发的效率和其可维护性。在JSP中可以通过包含机制和JavaBean实现Web组件的重用。
包含分为静态包含和动态包含。静态包含通过include指令实现,动态包含通过标准动作jsp:include实现。
在JSP页面中使用JavaBean是最重要的组件重用技术,这主要是通过下面3个标准动作实现的:
(一)include静态指令的使用
创建名称为ch08的Web项目,编写hello.jsp页面,其中声明一个变量userName,用于获取请求地址后查询串参数userName的值;使用<%@ include>静态指令包含response.jsp页面,通过response.jsp页面显示userName的值,用下面两种方法实现。执行代码并查看运行结果。
方法一:response.jsp页面中通过JSP表达式直接输出变量userName的值。
方法二:通过pageContext作用域属性,在主页面和子页面间共享userName的值,降低主页面和子页面的依赖性。
思考并回答:
? 静态include指令何时执行?
答:与主页面同时执行。
? 主页面和被包含的子页面是否转换为一个转换单元?
答:是。
? 同一个转换单元的页面之间如何共享数据?
答:通过request作用域共享。
(二)
编写main.jsp页面,其中声明一个变量userName,用于获取请求地址后查询串参数userName的值;在main.jsp页面中使用
思考并回答:
?
答:与main.Jsp页面分别编译执行。
? 主页面和被包含的子页面是否转换为一个转换单元?
答:不是。
? 动作包含的子页面与主页面共享同一个请求吗?
答:共享。
? 在不同的转换单元中如何进行数据的传递和共享? (三)
【步骤2】forwardTo.jsp的代码如下:
执行action_forward.jsp页面,查看运行结果。
思考并回答:
?
答:
答:<% RequestDispatcher view=request.getRequestDispatcher(? other.jsp? ) ; View.forward(request,response) ;%>
< % pageContext.forward(? other.jsp? ) ;%>
(四)JavaBean的创建与序列化。
【步骤1】仿照课本程序6.10创建CustomerBean类,使其可以序列化;
public class CustomerBean implements java.io.Serializable{ private String customername; private String email; private String phone; public String getcustomername() { return this.customername; } public String getemail() { return this.email; } public String getphone() { return this.phone; } public void setcustomername(String customer) { this.customername=customer; } public void setemail(String email) { this.email=email; } public void setphone(String phone) { this.phone=phone; } }
【步骤2】编写customer.jsp页面供用户填写表单数据;
<%String msg=(String)request.getAttribute(\ if(msg!=null)
out.println(msg+\ %>
【步骤3】将程序6.12所示的Servlet改写成同样功能的saveBean.jsp页面,用于检索表单数据、创建CustomerBean实例并序列化到指定路径相应的文件中。
<%String msg=(String)request.getAttribute(\ if(msg!=null)
out.println(msg+\ %>
【步骤3】编写display.jsp页面,使用JavaBeans显示输入的信息,部分代码如下,补充关键代码:
<%@ page import=\
UserName:
Password:
Email:
(六)使用JavaBean构造一个简单的计算器,能够进行“+、-、*、/”运算。
【步骤1】编写实现简单计算器的JavaBean:SimpleCalculator.java,包含first、second、operator、result四个成员变量和相应的访问器与设置器,一个calculator方法根据运算符获取运算结果。
【步骤2】编写calculate.jsp页面,用户通过表单输入两个操作数和运算符,调用该页面自身处理该表单,通过调用SimpleCalculator实现运算逻辑,并显示运算结果。
四、思考题
1. 什么是Model 1体系结构,有何缺点?
答:model1体系每个请求的目标都是jsp页面。Jsp页面负责完成所有任务并将响应发送给客户。
缺点:①特需要将大量的Java代码的业务逻辑嵌入到jsp页面中;②不能提高组件的可重用性。
2. 什么是MVC设计模式?其优点是什么?
答:将web应用组件分成模型、控制器、视图三部分,每种组件完成各自的任务,该结构的所有请求目标都是servlet,充当控制器,servlet分析请求并将所需要的数据收集到JavaBean对象,该对象作为模型,最后servlet将请求转发到jsp,有jsp调用JavaBean中的数据并产生响应。