编辑: 阿拉蕾 2019-09-09
第3章JSP 技术基础 本章学习 JSP 各种元素的使用,其中包括脚本元素、隐含变量、指令,还将学习作用 域变量、JavaBeans、MVC 设计模式和错误处理方法.

3.1 知识点总结 (1)JSP 脚本有三种:JSP 声明() 、小脚本()和JSP 表达式() . (2) 在JSP 的脚本中可以使用

9 个隐含变量, 它们分别是 application、 session、 request、 response、page、pageContext、out、config 和exception 等. (3)在JSP 中可以使用的指令有三种类型:page 指令、include 指令和 taglib 指令.三 种指令的语法格式如下: page 指令通知容器关于 JSP 页面的总体特性, include 指令实现把另一个文件 (HTML、 JSP 等)的内容包含到当前页面中,taglib 指令用来指定在 JSP 页面中使用标准标签或自定 义标签的前缀与标签库的 URI. (4)在JSP 中可使用三种类型的动作.标准动作、JSTL 动作和自定义动作.下面是常 用的标准动作: ? 动作用于包含另一个页面输出. ? 动作将请求转发到指定页面. ? 动作用来在 JSP 页面中查找或创建一个 bean 实例. ? 动作用来给 bean 实例的属性赋值. ? 动作用来检索并向输出流中打印 bean 的属性值. (5)表达式语言 EL,它是一种数据表示语言,例如,${applicationScope.email}输出应 用作用域中的 email 属性值. (6)JSP 页面本质上也是 Servlet,但若仅实现表示逻辑编写 JSP 页面要比编写 Servlet 容易.JSP 页面也在容器中运行,当JSP 页面第一次被访问时,Web 容器解析 JSP 文件并 将其转换成页面实现类.接下来,Web 容器编译该类并将其装入内存,然后与其他 Servlet 一样执行并将其输出结果发送到客户端. (7) 在JSP 页面中有

4 个作用域对象,它们的类型分别是 ServletContext、HttpSession、 Java Web 编程技术(第3版)题解与实验指导

22 HttpServletRequest 和PageContext,这4个作用域分别称为应用(application)作用域、会话(session)作用域、请求(request)作用域和页面(page)作用域. (8)在Java Web 开发中常用 JavaBeans 来存放数据、封装业务逻辑等,在JSP 页面中 使用 JavaBeans 主要是通过三个 JSP 标准动作实现的. (9)MVC 设计模式称为模型-视图-控制器模式.模型用 JavaBeans 实现,视图用 JSP 实现,控制器用 Servlet 或过滤器实现. (10)在Java Web 开发中有多种错误处理方法:声明式错误处理和编程式错误处理. 3.2 实训任务【实训目标】 学会 JSP 页面各种元素的使用,理解页面实现类,使用包含指令和包含动作,掌握 JavaBeans 和作用域概念. 任务

1 学习 JSP 页面如何转换成页面实现类 本任务学习 JSP 页面元素如何转换成页面实现类. (1) 在Eclipse 中新建一个 jsp-demo 动态 Web 项目, 在项目的 WebContent 目录中新建 today-date.jsp 页面,代码如下: 显示日期 今天的日期是: (2)启动浏览器,访问 today-date.jsp 页面,显示结果如图 3-1 所示. 图3-1 today-date.jsp 页面运行结果 (3)假设将 jsp-demo 项目部署到 Tomcat 服务器中.打开 Tomcat 安装目录的 workCatalinalocalhostjsp-demoorgapachejsp 目录中的 today-date_jsp.java 文件,查看隐 含对象是如何定义的,完成下面的填空. 科JSP 技术基础

23 第3章JSP 页面转换后定义的类名为( ) . 该类继承了哪个类?( ) . 隐含对象 request 的类型为( ) . 隐含对象 response 的类型为( ) . 隐含对象 pageContext 的类型为( ) . 隐含对象 session 的类型为( ) . 隐含对象 application 的类型为( ) . 隐含对象 config 的类型为( ) . 隐含对象 out 的类型为( ) . 隐含对象 page 的类型为( ) . 是作用域对象的包括( ) . (4)在页面实现类中找到 today 变量的声明位置. 任务

2 学习使用包含指令和包含动作实现页面布局 本任务包括

4 个文件 header.jsp、body.jsp、footer.jsp 和main.jsp.在main.jsp 文件中使 用include 指令包含其他页面实现页面布局. (1)在jsp-demo 项目的 WebContent 目录中创建 header.jsp 文件,它实现页面页眉 部分. 新世纪 网上书店 (2)在WebContent 目录中创建 body.jsp 文件,它实现页面主体部分. 欢迎光临新世纪网上书店! 开始购买图书 (3)在WebContent 目录中创建 footer.jsp 文件,它实现页面的页脚部分. 版权所有 &

copy;

2018 新世纪网上书店, Inc. (4)在WebContent 目录中创建 main.jsp 文件,它是主页面.其中使用 include 指令包 含其他部分的文件. 新世纪在线书店 (5)在浏览器中访问 main.jsp 文件,结果如图 3-2 所示. 图3-2 main.jsp 页面运行结果 (6)修改上面程序,使用动作实现页面布局. 任务

3 学习在 Servlet 和JSP 页面中使用 JavaBeans 对象 本任务在 JSP 页面 inputProduct.jsp 中输入商品信息,将请求转到 ProductServlet,创建 一个 Product 对象, 然后将请求转发到 dispalyProduct.jsp 页面, 在其中使用 动作输出信息. (1)在jsp-demo 项目的 com.demo 包中创建 Product 类,它是 JavaBeans 类,用于存放 商品信息. package com.demo;

public class Product { private String id;

//商品号 private String name;

//商品名 科JSP 技术基础

25 第3章private double price;

//价格 public Product() { super();

} public Product(String id, String name, double price) { super();

this.id = id;

this.name = name;

this.price = price;

} public String getId() { return id;

} public void setId(String id) { this.id = id;

} public String getName() { return name;

} public void setName(String name) { this.name = name;

} public double getPrice() { return price;

} public void setPrice(double price) { this.price = price;

} } (2)在WebContent 目录中创建 input-product.jsp 页面,用于输入商品信息,代码如下: 输入商品信息 输入商品信息 商品号: 商品名: 价格: Java Web 编程技术(第3版)题解与实验指导

26 (3)在src 的com.demo 包中创建 ProductServlet,在其中检索用户提交的商品信息, 构建 Product 对象并存储到请求作用域中,将请求转发到 display-product.jsp 页面. package com.demo;

import javax.servlet.*;

import javax.servlet.http.*;

import javax.servlet.annotation.WebServlet;

@WebServlet( /product-servlet ) public class ProductServlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException,ServletException { String id = request.getParameter( id );

String name = request.getParameter( name );

//修改请求参数的字符编码 name = new String(name.getBytes( iso-8859-1 ), UTF-8 );

double price = Double.parseDouble(request.getParameter( price ));

Product product = new Product(id,name,price);

request.setAttribute( product , product);

RequestDispatcher rd = request.getRequestDispatcher( /display-product.jsp );

rd.forward(request,response);

} } (4)在WebContent 目录中创建 display-product.jsp 页面, 用JavaBeans 标准动作显示请 求作用域的商品信息,代码如下: 商品信息 商品信息如下 商品号: 商品名: 价格: 科JSP 技术基础

27 第3章 (5)访问 input-product.jsp 页面,在其中输入商品号 202,商品名 笔记本电脑 ,价 格输入 4200,最后显示的 display-product.jsp 页面如图 3-3 所示. 图3-3 displayProduct.jsp 页面运行结果 3.3 思考与练习答案 1.下面左边一栏是 JSP 元素类型,右边是对应名称,请连线. 指令 EL表达式 声明 小脚本 动作 email:${applicationScope.mail} 表达式 【答】 小脚本 声明 指令 动作 表达式 email:${applicationScope.mail} EL表达式 2.执行下面 JSP 代码输出结果是什么?( ) x与y的和是: A.x 与y的和是:8 B.x 与y的和是:9 C.x 与y的和是:11 D.发生错误 Java Web 编程技术(第3版)题解与实验指导

28 【答】 B. 变量 x 被声明两次: 一次是作为类的成员变量, 因为使用了 语句,另一次是在_jspService()中声明的局部变量,因为使用的代码是. 3.下面 JSP 代码有什么错误? 【答】 正确声明应为: 4.假设 myObj 是一个对象的引用,m1()是该对象上一个合法的方法.下面的 JSP 结 构哪个是合法的?( ) A. B. C. D. 【答】 B 是合法的.注意,JSP 表达式中百分号和等号之间不能有空格. 5.说明下面代码是否是合法的 JSP 结构?( ) A. B. C. 【答】 B、C.A 非法,等号表明它是 JSP 表达式,但表达式不能以分号结束.B 合法, 将........

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题