Java Web编程技术(第3版微课版21世纪高等学校计算机类课程创新规划教材)

Java Web编程技术(第3版微课版21世纪高等学校计算机类课程创新规划教材)
作者: 编者:沈泽刚
出版社: 清华大学
原售价: 79.50
折扣价: 59.70
折扣购买: Java Web编程技术(第3版微课版21世纪高等学校计算机类课程创新规划教材)
ISBN: 9787302511427

作者简介

内容简介

第3章 JSP技术基础 本章目标  熟悉JSP页面中的各种语法元素;  理解JSP页面转换过程与生命周期;  掌握JSP页面中脚本元素的使用;  掌握隐含变量的使用;  学会page指令的各种属性的含义;  区分不同作用域对象及使用;  学会静态包含和动态包含布局页面;  掌握J**aBeans的定义和使用;  学会Web应用中异常处理方法;  了解MVC设计模式。 JSP(J**aServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来,实现表示逻辑。本章首先介绍JSP语法和生命周期、脚本元素、隐含变量,作用域对象,接下来介绍组件包含和J**aBeans使用,*后介绍异常处理和MVC设计模式。 3.1JSP语法概述 JSP语法概述 在JSP页面中可以包含多种JSP元素,比如声明变量和方法、JSP表达式、指令和动作等。这些元素具有严格定义的语法。当JSP页面被访问时,Web容器将JSP页面转换成Servlet类执行后将结果发送给客户。与其他的Web页面一样,JSP页面也有一个**的URL,客户可以通过它访问该页面。一般来说在JSP页面中可以包含的元素如表31所示。 表31JSP页面元素 JSP页面元素 简 要 说 明 标 签 语 法 声明 声明变量与定义方法 <%! J**a声明%> 小脚本 执行业务逻辑的J**a代码 <% J**a代码%> 表达式 用于在JSP页面输出表达式的值 <%=表达式%> 指令 **转换时向容器发出的指令 <%@指令%> 动作 向容器提供请求时的指令 续表 JSP页面元素 简 要 说 明 标 签 语 法 EL表达式 JSP 2.0引进的表达式语言 ${applicationScope.email} 注释 用于文档注释 <%任何文本%> 模板文本 HTML标签和文本 同HTML规则 下面是一个简单的JSP页面todayDate.jsp,它输出当前的*期。 程序3.1todayDate.jsp <%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="j**a.time.LocalDate" %> <%! LocalDate date = null; %> 当前*期 <% date = LocalDate.now();//创建一个LocalDate对象 %> **的*期是: <%=date.toString() %> 该页面包含JSP指令、声明、小脚本和JSP表达式,其他内容称为模板文本(template text)。当JSP页面被客户访问时,页面首先在服务器端被转换成一个J**a源程序文件,然后该程序在服务器端编译和执行,*后向客户发送执行结果,通常是文本数据。这些数据由HTML标签包围起来,然后发送到客户端。由于嵌入在JSP页面中的J**a代码是在服务器端处理的,客户并不了解这些代码。 3.1.1JSP脚本元素 在JSP页面中有三种脚本元素(scripting elements): 声明、小脚本和表达式。 1. JSP声明 声明(declaration)用来在JSP页面中声明变量和定义方法。声明是以“<%!”开头,以“%>”结束的标签,其中可以包含任意数量的合法的J**a声明语句。下面是JSP声明的一个例子: <%!LocalDate date = null; %> 上面代码声明了一个名为date的变量并将其初始化为null。声明的变量仅在页面**次载入时由容器初始化一次,初始化后在后面的请求中一直保持该值。注意,由于声明包含的是声明语句,所以每个变量的声明语句必须以分号结束。 下面的代码在一个标签中声明了一个变量r和一个getArea()方法。 <%! dou**e r = 0; //声明一个变量r dou**e getArea(dou**e r) { //声明求圆面积的方法 return r * r * Math.PI; } %> 2. JSP小脚本 小脚本(scriptlets)是嵌入在JSP页面中的J**a代码段。小脚本是以“<%”开头,以“%>”结束的标签。例如,在程序3.1中的下面代码就是JSP小脚本。 <% date = LocalDate.now();//创建一个LocalDate对象 %> 小脚本在每次访问页面时都被执行,因此date变量在每次请求时会返回当前*期。由于小脚本可以包含任何J**a代码,所以它通常用来在JSP页面嵌入计算逻辑。同时还可以使用小脚本打印HTML模板文本。如下面代码与程序3.1的代码等价。 <%@ page contentType="text/html;charset = UTF-8" pageEncoding="UTF-8"%> <%@ page import="j**a.time.LocalDate" %> <%! LocalDate date = null; %> 当前*期 <% date = LocalDate.now(); //创建一个LocalDate对象 out.print("**的*期是: " + date.toString() ); %> 这里没有在页面中直接书写一般的HTML代码,而是使用小脚本达到了同样的效果。变量out是一个隐含对象,我们将在3.4节中讨论out对象。 与其他元素不同,小脚本的起始标签“<%”后面没有任何特殊字符,在小脚本中的代码必须是合法的J**a语言代码,例如下面的代码是错误的,因为它没有使用分号结束。 <% out.print(count) %> 不能在小脚本中声明方法,因为在J**a语言中不能在方法中定义方法。 3. JSP表达式 表达式(expression)是以“<%=”开头,以“%>”结束的标签,它作为J**a语言表达式的占位符。下面是JSP表达式的例子: **的*期是: <%=date.toString() %> 在页面每次被访问时都要计算表达式,然后将其值嵌入到HTML的输出中。与变量声明不同,表达式不能以分号结束,因此下面的代码是非法的。 <%=date.toString(); %> 使用表达式可以向输出流输出任何对象或任何基本数据类型(int、boolean、char等)的值,也可以打印任何算术表达式、布尔表达式或方法调用返回的值。 提示: 在JSP表达式的百分号和等号之间不能有空格。 下面代码声明了一些变量并通过表达式输出。 程序3.2expression.jsp <%! int anInt = 3; boolean aBool = true; Integer anIntObj = new Integer(3); Float aFloatObj = new Float(8.6); %> <%= 500+380 %>
<%= anInt*3.5/100-500 %>
<%= aBool %>
<%= Math.random() %>
<%= aFloatObj %>
600分钟微信视频,全程语音讲解。理论与实践结合:从基础知识学习,*终能综合所学内容开发应用。体现*新MySQL特性 精心设计的习题:在重点难点部分,为读者精心设计了习题。这些习题有助于读者*好地理解重点,提高分析代码的能力,同时在编程中规避常见错误。