JSP高级编程 5


第5章作为XML的JSP
本章将介绍如何使用标准的X M L语法来书写一个J S P页面,上一章介绍的非X M L语法在本
章中都可以找到对应的X M L形式的语法格式。注意, J S P在将来的发展中无疑将越来越强调
X M L的语法格式,读者可以从最新的J S P语法规范----JavaServer Pages(tm) Specification Ve r s i o n
1.2 - public draft 1 (PD1,也就是公开测试版)中发现这一变化趋势。
5.1 为什么要使用X M L相容的语法形式
为什么要使用X M L相容语法来构架J S P呢?当然不是因为X M L是一个时髦的事物,而是作
为X M L文档的J S P将会得到许多的好处。
例如,一个标准的X M L相容的J S P语法将有助于J S P的开发。
J S P文件的X M L语法使得J S P文件的内容很容易被组织和管理。
可以使用X M L的开发和分析工具来开发和分析J S P,仅仅需要更换D T D文件就可以升级到最
新版本的J S P。
X M L格式统一的语法更容易学习和使用。
5.2 关于文本类型的语法
5.2.1 jsp:root元素
作为X M L文档的J S P文件,有一个< j s p : r o o t >元素作为其根元素,这个根元素同时也是标签
库(t a g l i b)设置命名域的地方。在< j s p : r o o t >中使用x m l n s属性来设置当前使用的J S P版本(通过
D T D文件)。
例如:
<jsp:root
xmlns:jsp="http://java.sun.com/products/jsp/dtd/jsp_1_0.dtd">
remainder of transformed JSP page
</jsp:root>
5.2.2 公共标识符
作为X M L文档的J S P文件建议使用如下形式的文档类型声明:
<! DOCTYPE root
PUBLIC"-//Sun Microsystems Inc.//DTD JavaServer Pages Version 1.1//EN"
"http://java.sun.com/products/jsp/dtd/jspcore_1_0.dtd">
5.3 指令
一般的J S P指令具有如下的形式:
<%@ directive { attr="value" }* %>
可以翻译为如下的X M L语法形式:
<jsp:directive.directive { attr="value" }* />
5.3.1 page指令
作为X M L文档的p a g e指令:
<jsp:directive.page page_directive_attr_list />
举例如下
一般的“p a g e”指令:
<%@ page info="my latest JSP Example V1.1" %>
相应的X M L相容语法:
<jsp:directive.page info="my latest JSP Example V1.1" />
5.3.2 include指令
作为X M L文档的i n c l u d e指令:
<jsp:directive.include file=" relativeURLspec" flush="true|false" />
举例如下
一般的i n c l u d e指令:
<%@ include file="copyright.hmtl" %>
相应的X M L相容语法:
<jsp:directive.include file="htmldocs/logo.html" />
5.3.1 taglib指令
t a g l i b指令如前所述,是被包含在< j s p : r o o t >元素中,以x m l n s属性的形式被定义的。
5.3.1 page指示
作为X M L文档的p a g e指为:
<jsp:directive.page page_directive_attr_list />
举例如下。
一般的p a g e指为:
<%@ page info="my latest JSP Example V1.1" %>
相应的X M L相容语法:
102第一部分JSP 入门

<jsp:directive.page info="my latest JSP Example V1.1" />
5.3.2 include指示
作为X M L文档的i n c l u d e指为:
<jsp:directive.include file=" relativeURLspec" flush="true|false" />
举例如下。
一般的i n c l u d e指令:
<%@ include file="copyright.hmtl" %>
相应的X M L相容语法:
<jsp:directive.include file="htmldocs/logo.html" />
5.3.3 taglib指令
t a g l i b指令如前所述,是被包含在< j s p : r o o t >元素中,以x m l n s属性的形式被定义的。
5.4 脚本元素
J S P的脚本元素包含声明、脚本代码、表达式三个部分,下面分别讲述其相应的X M L语法形式。
5.4.1 声明
声明的X M L形式语法为:
<jsp:declaration> declaration goes here </jsp:declaration>
举例如下:
<%! public String f(int i) { if (i<3) return("..."); ... } %>
相应的X M L语句为:
<jsp:declaration> <![CDATA[ public String f(int i) { if (i<3) return("..."); } ]]>
</jsp:declaration>
下面是相关的D T D文件片断:
<!ELEMENT jsp:declaration (#PCDATA) >
5.4.2 脚本代码
声明的X M L形式语法为:
<jsp:scriptlet> code fragment goes here </jsp:scriptlet>
下面是相关的D T D文件片断:
<!ELEMENT jsp:scriptlet (#PCDATA) >
5.4.3 表达式
声明的X M L形式语法为:
第5章作为X M L的J S P1 0 3

<jsp:expression> expression goes here </jsp:expression>
举例如下:
<%= str + i + " " + date%>
相应的X M L语句为:
<jsp:expression>
String str ="aasasda";
int i = 5;
java.util.Date date = new Date();
</jsp:expression>
下面是相关的D T D文件片断:
<!ELEMENT jsp:expression (#PCDATA) >
5.5 如何将一个普通的J S P文件转换为一个X M L文档
使用下面的方法可以将一个普通的J S P文件转换为一个X M L文件:
首先,在文本中加入< j s p : r o o t >,在这个元素中使命名前缀“ j s p”成为文本中标准元素的前
缀。
然后,将所有的“< %”按照前面介绍的方法转换为X M L的相容语法形式。
接着,将“ t a g l i b”指示转化为使用< j s p : r o o t >中的“x m l n s”属性来指示。
最后,为每一个非J S P元素的部分建立一个C D ATA元素。
利用表5 - 1可以快速地将一个J S P文件转化成一个X M L文件。
表5 - 1
JSP 元素X M L相应元素
<%@ page ... %> <jsp:directive.page ... />
<%@ taglib ... %> 使用< j s p : r o o t >设定
<%@ include ... %> <jsp:directive.include .../>
<%! ... %> <jsp:scriptlet> .... </jsp:scriptlet>
<% ... %> <jsp:scriptlet> .... </jsp:scriptlet>
<%= .... %> <jsp:expression> .... </jsp:expression>
5.6 JSP1.1的D T D文件
这里是J S P 1 . 1的D T D文件,从中可以对J S P的语法有一个完整的理解。
<!ENTITY % jsp.body "
(#PCDATA
|jsp:directive.page
|jsp:directive.include
|jsp:scriptlet
|jsp:declaration
|jsp:expression
|jsp:include
104第一部分JSP 入门

|jsp:forward
|jsp:useBean
|jsp:setProperty
|jsp:getProperty
|jsp:plugin
|jsp:fallback
|jsp:params
|jsp:param)*
">
<!ELEMENT jsp:useBean %jsp.body;>
<!ATTLIST jsp:useBean
id ID #REQUIRED
class CDATA#REQUIRED
scope (page|session|request|application) "page">
<!ELEMENT jsp:setProperty EMPTY>
<!ATTLIST jsp:setProperty
name IDREF#REQUIRED
propertyCDATA#REQUIRED
value CDATA#IMPLIED
param CDATA#IMPLIED>
<!ELEMENT jsp:getProperty EMPTY>
<!ATTLIST jsp:getProperty
name IREF #REQUIRED
propertyCDATA#REQUIRED>
<!ELEMENTjsp:includeEMPTY>
<!ATTLISTjsp:include
flush (true|false)"false"
page CDATA#REQUIRED>
<!ELEMENT jsp:forward EMPTY>
<!ATTLISTjsp:forward
page CDATA#REQUIRED>
<!ELEMENT jsp:scriptlet (#PCDATA)>
<!ELEMENT jsp:declaration (#PCDATA)>
<!ELEMENT jsp:expression (#PCDATA)>
<!ELEMENT jsp:directive.page EMPTY>
<!ATTLIST jsp:directive.page
languageCDATA"java"
extendsCDATA#IMPLIED
contentTypeCDATA"text/html; ISO-8859-1"
import CDATA#IMPLIED
session(true|false)"true"
buffer CDATA"8kb"
autoFlush(true|false)"true"
isThreadSafe(true|false)"true"
info CDATA#IMPLIED
errorPageCDATA#IMPLIED
isErrorPage(true|false)"false">
第5章作为X M L的J S P1 0 5

<!ELEMENT jsp:directive.include EMPTY>
<!ATTLIST jsp:directive.include
file CDATA #REQUIRED>
<!ELEMENT jsp:root %jsp.body;>
<!ATTLIST jsp:root
xmlns:jspCDATA#FIXED "http://java.sun.com/products/jsp/dtd/
jsp_1_0.dtd">
106第一部分JSP 入门

待续

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
这是一本面向中、高级编程人员的自学指导书,其重点放在JSP和其他技术的综合使用方面,全书可分为四大部分:第一部分是JSP技术与J2EE技术(第一章至第四章),着重介绍J2EE技术的代表--EJB技术的基本原理与开发EJB组件的方法。第二部分是JSP技术和XML技术(第五章至第八章),主要介绍了XML技术与JSP技术联合的方式之一--Tag Library。第二部分后面的两章是针对市场上最流行的两个Tag Library的详细介绍,读者可以把它当作参考手册来使用。本作品的第三部分是JDBC新技术及其在JSP/Servlet程序中的应用(第九章和第十章),主要介绍最新的JDBC技术,如JDBC 2.0/JDBC 3.0的新特性,以及鲜为人知而又十分重要的JDBC Optional Pack。本作品的第四部分是JSP网络程序设计,着重介绍如何使用sun.net包、JavaMail API开发访问各种网络服务的JSP程序。本作品四个部分之间互为关联又相对独立,读者可以选择阅读某一个部分或者是通读全文。本版作品是由经验丰富的使用JSP组建网站的程序员编著,内文附有丰富的实例源码,供读者学习参考。全书具有语言简明扼要,内容丰富,范例典型,理论与实践相结合的特点,不但是从事用JSP进行网站开发和设计的初、中级读者的自学指导书,同时也可作为社会网页设计或编程培训班的教材。说明:与本书配套的面向初、中级用户的书《JSP深入编程》也已正式出版,欢迎选购。本版CD为配套书。第一部分 JSP技术与J2EE技术 第一章 JavaBeans组件技术 1.1 什么是JavaBeans 1.2 JSP中如何使用JavaBeans 1.3 JavaBeans的Scope属性 1.4 JavaBeans应用实例 1.5 本章小结 第二章 Enterprise JavaBeans 2.1 EJB技术简介 2.2 EJB体系结构(一) 2.3 EJB体系结构(二) 2.4 如何开发EJB(一) 2.5 如何开发EJB(二) 2.6 本章小结 第三章 EJB技术进阶 3.1 实体EJB的开发技术之一——CMP EJB 3.2 实体EJB的开发技术之一——BMP EJB 3.3 EJB开发实例——封装数据源 3.4 本章小结 第四章 JSP与J2EE分布式处理技术 4.1 J2EE和分布式处理技术 4.2 远程方法调用——RMI技术 4.3 CORBA技术 4.4 JNDI技术 4.5 本章小结 第二部分 JSP技术和XML技术 第五章 XML简介 第六章 JSP与XML联合开发技术 第七章 典型Tag Library介绍-JRun Tag Library 第八章 典型Tag Library介绍-Jakarta Tag Library 第三部分 JDBC新技术及其在JSP/Servlet中的应用 第九章 JDBC2.0/3.0API的新特性 第十章 JDBC Optional Package 第四部分 JSP网络程序设计 第十一章 JSP网络程序开发 第十二章 Java mail api 附录1 支持EJB1.0技术规范的EJB平台,开发工具一览表 附录2 JDBC Driver一览表 附录3 WebLogic服务器的配置方法 附录4 本书中所用数据库的数据库结构
5个PDF文件。供学习 前言 第一部分 JSP入门 第1章 概述 1.1 Java技术 1.1.1 Java技术的发展 1.1.2 JavaBeans 1.1.3 JDBC 1.1.4 J2EE 1.1.5 EJB 1.1.6 Java Servlet 1.2 JSP技术 1.2.1 JSP技术概述 1.2.2 JSP的优势及与其他Web开发工具的比较 1.3 JSP开发Web的几种主要方式 1.3.1 直接使用JSP 1.3.2 JSP+JavaBeans 1.3.3 JSP+JavaBeans+Servlet 1.3.4 J2EE开发模型 1.4 本书用到的软件及获取 第2章 预备知识 2.1 Java程序设计基础 2.1.1 Java语言规则 2.1.2 Java变量和函数 2.1.3 子类 2.1.4 this和super 2.1.5 类的类型 2.1.6 抽象类 2.1.7 接口 2.1.8 包 2.2 JavaBeans 2.2.1 JavaBeans的属性 2.2.2 JavaBeans的事件 2.2.3 持久化 2.2.4 用户化 2.3 Java Servlet 2.3.1 HTTP Servlet API 2.3.2 系统信息 2.3.3 传送HTML信息 2.4 SQL语言 2.4.1 SQL子类型 2.4.2 SQL语言的具体命令和使用 2.5 JDBC 2.5.1 什么是 JDBC 2.5.2 JDBC 产品 2.5.3 连接概述 2.5.5 一个简单的例子 第3章 JSP开发平台的建立:Tomcat 3.1 Tomcat的安装和直接使用 3.2 Tomcat和Apache的配合 3.3 Tomcat和IIS的配合 3.4 Tomcat的配置和常见问题 3.4.1 Tomcat的主配置文件:server.xml 3.4.2 Windows下代码保护的问题 3.4.3 Apache、IIS和Tomcat协作时工作 目录的添加 3.4.4 设定Tomcat作为Windows的服务而启动 3.4.5 在Tomcat中建立新的Web应用程序 第4章 JSP的语法和语义 4.1 通用的语法规则 4.1.1 元素的语法规则 4.1.2 JSP中的相对路径 4.2 注释 4.3 指令 4.3.1 page指令 4.3.2 include指令 4.3.3 taglib指令 4.4 内置对象 4.5 脚本元素 4.5.1 声明 4.5.2 表达式 4.5.3 脚本代码 4.6 动作 4.6.1 id和scope属性 4.6.2 标准动作 第5章 作为XML的JSP 5.1 为什么要使用XML相容的语法形式 5.2 关于文本类型的语法 5.2.1 jsp:root元素 5.2.2 公共标识符 5.3 指令 5.3.1 page指令 5.3.2 include指令 5.3.1 taglib指令 5.4 脚本元素 5.4.1 声明 5.4.2 脚本代码 5.4.3 表达式 5.5 如何将一个普通的JSP文件转换为一个XML 文档 5.6 JSP1.1的DTD文件 第6章 JSP基础实例 6.1 第一个JSP程序—HelloWorld! 6.2 注释的使用 6.3 脚本元素 6.3.1 声明 6.3.2 表达式 6.3.3 脚本代码 6.4 page指令 6.4.1 import 6.4.2 session 6.4.3 错误处理 6.5 包含其他文件 6.6 使用JavaBean 6.7 内置对象 6.7.1 用request对象获取客户端的数据 6.7.2 用response对象向客户端发送信息 6.7.3 其他内置对象 6.8 <jsp:forward> 6.9 使用插件 6.10 使用session对象 6.10.1 会话的概念 6.10.2 session对象可用的方法和属性 6.10.3 session对象的基本例子 6.10.4 利用session制作一个购物车 6.10.5 JavaBeans的作用域 6.10.6 利用JavaBeans制作的购物车 6.11 使用application对象 6.11.1 应用的概念 6.11.2 application对象可用的方法和属性 6.11.3 application对象内包含的系统信息 6.11.4 利用application建立一个简单的聊天室 第7章 用JSP实现常见的Web应用 7.1 常见的Web应用及分析 7.1.1 留言板、论坛和社区 7.1.2 聊天室 7.1.3 搜索引擎 7.1.4 电子商务 7.1.6 后台管理系统 7.2 留言板 7.2.1 功能分析 7.2.2 功能实现和技术要点 7.2.3 代码和分析 7.3 进一步完善的留言板 7.3.1 功能分析 7.3.2 功能实现和技术要点 7.3.3 代码和分析 7.4 聊天室 7.4.1 功能实现和技术要点 7.4.2 代码和分析 7.5 下一步 第二部分 高级JSP技术 第8章 JSP开发平台的搭建:J2EE 8.1 J2SDKEE的安装和使用 8.1.1 软硬件的支持 8.1.2 安装 8.2 J2SDKEE的配置 8.2.1 JDBC的配置 8.2.2 事务处理 8.2.3 服务的端口号 8.2.4 日志文件 8.2.5 安全 8.2.6 钝化发生的内存极限 8.2.7 JNDI服务器主机 8.2.8 HTTP服务的发布目录 8.3 WebLogic的安装和使用 8.3.1 软硬件要求 8.3.2 安装和启动 8.4 WebLogic的配置 8.4.1 系统级参数的设置 8.4.2 将WebLogic作为HTTP服务器使用 8.4.3 使用ISAPI桥连接WebLogic和IIS 8.4.4 WebLogic配置示例 第9章 扩展JSP标签 9.1 概述 9.1.1 扩展标签的作用 9.1.2 如何开发扩展标签 9.1.3 简单的扩展标签 9.1.4 包含内容处理的扩展标签 9.1.5 能够协作的扩展标签 9.1.6 定义了脚本变量的扩展标签 9.2 标签处理类的开发 9.2.1 接口和基类 9.2.2 开发 9.3 标签库文件 9.3.1 taglib 9.3.2 tag 9.4 定位一个tld文件 9.4.1 在Web.xml中定位一个tld文件 9.4.2 直接在JSP文件中定位tld文件 9.5 扩展标签实例 9.5.1 得到父标签的数据 9.5.2 TestTag类 9.5.3 Title类 9.5.4 Data类 9.5.5 TLD文件 9.5.6 在JSP中使用扩展标签 第10章 Enterprise JavaBeans 10.1 Java服务器端组件标准—EJB 10.1.1 EJB和JavaBeans 10.1.2 EJB的开发与使用中的角色 10.2 Session Bean 10.2.1 Session Bean的状态管理模式 10.2.2 Session Bean的生命周期 10.3 Entity Bean 10.3.1 Entity Bean的特性 10.3.2 Entity Bean的生命周期 10.4 EJB的开发 10.4.1 Enterprise JavaBeans的实际处理文件 10.4.2 实现EJBObject文件 10.4.3 实现EJBHome文件 10.4.4 生成ejb-jar.xml文件 10.4.5 打包生成JAR文件 10.5 EJB的部署—J2SDKEE 10.5.1 使用deploytool打包EJB 10.5.2 使用deploytol部署EJB 10.6 EJB的部署—BEA WebLogic 10.6.1 生成可部署的ejb-jar包 10.6.2 部署WbLogic的ejb-jar包 10.7 使用EJB 10.7.1 本地访问EJB 10.7.2 远程访问EJB 10.8 JSP和EJB 10.9 EJB开发实例—电子商务应用 10.9.1 EJB的实现文件—TestCartEJB 10.9.2 实现Home接口TestCartHome 10.9.3 实现远程Object接口TestCart 10.9.4 EJB的Web组件TestCartWebImp 10.9.5 JSP文件 10.9.6 实例的内部运行逻辑 第11章 其他高级功能 11.1 JDBC2.0和JDBC数据库连接池 11.1.1 JDBC2.0新功能概述 11.1.2 结果集增强功能 11.1.3 批处理更新 11.1.4 对Java对象的持久性 11.1.5 数据库连接池使用实例 11.2 文件上载 11.2.1 实现机理 11.2.2 文件上载实例 第12章 JSP高级应用实例:网上书店 12.1 概述 12.2 扩展标签的使用 12.2.1 数据集作用的BookList标签 12.2.2 让数据循环输出的Books标签 12.2.3 输出数据的标签 12.2.4 控制页面前进、后退的标签 12.2.5 测试标签 12.3 EJB及其Web组件 12.3.1 ShoppingCart 12.3.2 Books 附录A JSP应用实例:网上教育代码 附录B JavaServer Pages白皮书 附录C 常用JSP相关网址
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值