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
    评论
前言<br>第一部分 JSP入门<br>第1章 概述 <br>1.1 Java技术 <br>1.1.1 Java技术的发展 <br>1.1.2 JavaBeans <br>1.1.3 JDBC <br>1.1.4 J2EE <br>1.1.5 EJB <br>1.1.6 Java Servlet <br>1.2 JSP技术 <br>1.2.1 JSP技术概述 <br>1.2.2 JSP的优势及与其他Web开发工具的比较 <br>1.3 JSP开发Web的几种主要方式 <br>1.3.1 直接使用JSP <br>1.3.2 JSP+JavaBeans <br>1.3.3 JSP+JavaBeans+Servlet <br>1.3.4 J2EE开发模型 <br>1.4 本书用到的软件及获取 <br>第2章 预备知识 <br>2.1 Java程序设计基础 <br>2.1.1 Java语言规则 <br>2.1.2 Java变量和函数 <br>2.1.3 子类 <br>2.1.4 this和super <br>2.1.5 类的类型 <br>2.1.6 抽象类 <br>2.1.7 接口 <br>2.1.8 包 <br>2.2 JavaBeans <br>2.2.1 JavaBeans的属性 <br>2.2.2 JavaBeans的事件 <br>2.2.3 持久化 <br>2.2.4 用户化 <br>2.3 Java Servlet <br>2.3.1 HTTP Servlet API <br>2.3.2 系统信息 <br>2.3.3 传送HTML信息 <br>2.4 SQL语言 <br>2.4.1 SQL子类型 <br>2.4.2 SQL语言的具体命令和使用 <br>2.5 JDBC <br>2.5.1 什么是 JDBC <br>2.5.2 JDBC 产品 <br>2.5.3 连接概述 <br>2.5.5 一个简单的例子 <br>第3章 JSP开发平台的建立:Tomcat <br>3.1 Tomcat的安装和直接使用 <br>3.2 Tomcat和Apache的配合 <br>3.3 Tomcat和IIS的配合 <br>3.4 Tomcat的配置和常见问题 <br>3.4.1 Tomcat的主配置文件:server.xml <br>3.4.2 Windows下代码保护的问题 <br>3.4.3 Apache、IIS和Tomcat协作时工作<br>目录的添加 <br>3.4.4 设定Tomcat作为Windows的服务而启动 <br>3.4.5 在Tomcat中建立新的Web应用程序 <br>第4章 JSP的语法和语义 <br>4.1 通用的语法规则 <br>4.1.1 元素的语法规则 <br>4.1.2 JSP中的相对路径 <br>4.2 注释 <br>4.3 指令 <br>4.3.1 page指令 <br>4.3.2 include指令 <br>4.3.3 taglib指令 <br>4.4 内置对象 <br>4.5 脚本元素 <br>4.5.1 声明 <br>4.5.2 表达式 <br>4.5.3 脚本代码 <br>4.6 动作 <br>4.6.1 id和scope属性 <br>4.6.2 标准动作 <br>第5章 作为XML的JSP <br>5.1 为什么要使用XML相容的语法形式 <br>5.2 关于文本类型的语法 <br>5.2.1 jsp:root元素 <br>5.2.2 公共标识符 <br>5.3 指令 <br>5.3.1 page指令 <br>5.3.2 include指令 <br>5.3.1 taglib指令 <br>5.4 脚本元素 <br>5.4.1 声明 <br>5.4.2 脚本代码 <br>5.4.3 表达式 <br>5.5 如何将一个普通的JSP文件转换为一个XML<br>文档 <br>5.6 JSP1.1的DTD文件 <br>第6章 JSP基础实例 <br>6.1 第一个JSP程序—HelloWorld! <br>6.2 注释的使用 <br>6.3 脚本元素 <br>6.3.1 声明 <br>6.3.2 表达式 <br>6.3.3 脚本代码 <br>6.4 page指令 <br>6.4.1 import <br>6.4.2 session <br>6.4.3 错误处理 <br>6.5 包含其他文件 <br>6.6 使用JavaBean <br>6.7 内置对象 <br>6.7.1 用request对象获取客户端的数据 <br>6.7.2 用response对象向客户端发送信息 <br>6.7.3 其他内置对象 <br>6.8 <jsp:forward> <br>6.9 使用插件 <br>6.10 使用session对象 <br>6.10.1 会话的概念 <br>6.10.2 session对象可用的方法和属性 <br>6.10.3 session对象的基本例子 <br>6.10.4 利用session制作一个购物车 <br>6.10.5 JavaBeans的作用域 <br>6.10.6 利用JavaBeans制作的购物车 <br>6.11 使用application对象 <br>6.11.1 应用的概念 <br>6.11.2 application对象可用的方法和属性 <br>6.11.3 application对象内包含的系统信息 <br>6.11.4 利用application建立一个简单的聊天室 <br>第7章 用JSP实现常见的Web应用 <br>7.1 常见的Web应用及分析 <br>7.1.1 留言板、论坛和社区 <br>7.1.2 聊天室 <br>7.1.3 搜索引擎 <br>7.1.4 电子商务 <br>7.1.6 后台管理系统 <br>7.2 留言板 <br>7.2.1 功能分析 <br>7.2.2 功能实现和技术要点 <br>7.2.3 代码和分析 <br>7.3 进一步完善的留言板 <br>7.3.1 功能分析 <br>7.3.2 功能实现和技术要点 <br>7.3.3 代码和分析 <br>7.4 聊天室 <br>7.4.1 功能实现和技术要点 <br>7.4.2 代码和分析 <br>7.5 下一步 <br>第二部分 高级JSP技术<br>第8章 JSP开发平台的搭建:J2EE <br>8.1 J2SDKEE的安装和使用 <br>8.1.1 软硬件的支持 <br>8.1.2 安装 <br>8.2 J2SDKEE的配置 <br>8.2.1 JDBC的配置 <br>8.2.2 事务处理 <br>8.2.3 服务的端口号 <br>8.2.4 日志文件 <br>8.2.5 安全 <br>8.2.6 钝化发生的内存极限 <br>8.2.7 JNDI服务器主机 <br>8.2.8 HTTP服务的发布目录 <br>8.3 WebLogic的安装和使用 <br>8.3.1 软硬件要求 <br>8.3.2 安装和启动 <br>8.4 WebLogic的配置 <br>8.4.1 系统级参数的设置 <br>8.4.2 将WebLogic作为HTTP服务器使用 <br>8.4.3 使用ISAPI桥连接WebLogic和IIS <br>8.4.4 WebLogic配置示例 <br>第9章 扩展JSP标签 <br>9.1 概述 <br>9.1.1 扩展标签的作用 <br>9.1.2 如何开发扩展标签 <br>9.1.3 简单的扩展标签 <br>9.1.4 包含内容处理的扩展标签 <br>9.1.5 能够协作的扩展标签 <br>9.1.6 定义了脚本变量的扩展标签 <br>9.2 标签处理类的开发 <br>9.2.1 接口和基类 <br>9.2.2 开发 <br>9.3 标签库文件 <br>9.3.1 taglib <br>9.3.2 tag <br>9.4 定位一个tld文件 <br>9.4.1 在Web.xml中定位一个tld文件 <br>9.4.2 直接在JSP文件中定位tld文件 <br>9.5 扩展标签实例 <br>9.5.1 得到父标签的数据 <br>9.5.2 TestTag类 <br>9.5.3 Title类 <br>9.5.4 Data类 <br>9.5.5 TLD文件 <br>9.5.6 在JSP中使用扩展标签 <br>第10章 Enterprise JavaBeans <br>10.1 Java服务器端组件标准—EJB <br>10.1.1 EJB和JavaBeans <br>10.1.2 EJB的开发与使用中的角色 <br>10.2 Session Bean <br>10.2.1 Session Bean的状态管理模式 <br>10.2.2 Session Bean的生命周期 <br>10.3 Entity Bean <br>10.3.1 Entity Bean的特性 <br>10.3.2 Entity Bean的生命周期 <br>10.4 EJB的开发 <br>10.4.1 Enterprise JavaBeans的实际处理文件 <br>10.4.2 实现EJBObject文件 <br>10.4.3 实现EJBHome文件 <br>10.4.4 生成ejb-jar.xml文件 <br>10.4.5 打包生成JAR文件 <br>10.5 EJB的部署—J2SDKEE <br>10.5.1 使用deploytool打包EJB <br>10.5.2 使用deploytol部署EJB <br>10.6 EJB的部署—BEA WebLogic <br>10.6.1 生成可部署的ejb-jar包 <br>10.6.2 部署WbLogic的ejb-jar包 <br>10.7 使用EJB <br>10.7.1 本地访问EJB <br>10.7.2 远程访问EJB <br>10.8 JSP和EJB <br>10.9 EJB开发实例—电子商务应用 <br>10.9.1 EJB的实现文件—TestCartEJB <br>10.9.2 实现Home接口TestCartHome <br>10.9.3 实现远程Object接口TestCart <br>10.9.4 EJB的Web组件TestCartWebImp <br>10.9.5 JSP文件 <br>10.9.6 实例的内部运行逻辑 <br>第11章 其他高级功能 <br>11.1 JDBC2.0和JDBC数据库连接池 <br>11.1.1 JDBC2.0新功能概述 <br>11.1.2 结果集增强功能 <br>11.1.3 批处理更新 <br>11.1.4 对Java对象的持久性 <br>11.1.5 数据库连接池使用实例 <br>11.2 文件上载 <br>11.2.1 实现机理 <br>11.2.2 文件上载实例 <br>第12章 JSP高级应用实例:网上书店 <br>12.1 概述 <br>12.2 扩展标签的使用 <br>12.2.1 数据集作用的BookList标签 <br>12.2.2 让数据循环输出的Books标签 <br>12.2.3 输出数据的标签 <br>12.2.4 控制页面前进、后退的标签 <br>12.2.5 测试标签 <br>12.3 EJB及其Web组件 <br>12.3.1 ShoppingCart <br>12.3.2 Books <br>附录A JSP应用实例:网上教育代码 <br>附录B JavaServer Pages白皮书 <br>附录C 常用JSP相关网址 <br>
Python是一种高级编程语言,用于开发各种应用程序。而JSP(JavaServer Pages)是一种用于动态构建和交付Web页面的Java技术。Python可以通过不同的方式来求解JSP问题。 首先,Python可以使用Web框架(如Django或Flask)来开发、部署和管理JSP应用程序。这些框架提供了JSP所需的功能和工具,例如路由、数据库连接和模板引擎。开发人员可以使用Python编写JSP程序,并通过框架将其转换为可运行的Web应用程序。 其次,Python还可以使用Jython来解决JSP问题。Jython是Python的Java实现,它可以在Java虚拟机(JVM)上运行Python代码。这意味着开发人员可以使用Python语法和库来编写JSP程序,并直接在JVM上执行。通过使用Jython,开发人员可以更轻松地与Java代码和库进行交互,并解决JSP应用程序中出现的问题。 此外,Python还可以使用一些第三方库和工具来处理JSP问题。例如,BeautifulSoup是一种用于解析HTML和XML文档的Python库,可以帮助开发人员提取和修改JSP页面上的内容。另一个例子是Selenium,它是一个自动化测试工具,可以模拟用户在JSP应用程序中的操作,以便进行功能测试和问题定位。 总之,Python可以通过Web框架、Jython和第三方库来解决JSP问题。开发人员可以根据具体情况选择合适的工具和方法来求解JSP问题,并确保应用程序的性能和功能的稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coolstar

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值