- 浏览: 118932 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
wuruxiantu:
http://localhost:8080/blog/uplo ...
mvnForum 一个开源的BBS搭建过程 -
shansheng:
第一个for循环,没看出来原始的和反编译后的区别嘛
java class反编译后的代码还原 -
hhujsj:
顶 对我做的项目很有帮组!!!
J2EE应用:定时器 -
iRoger:
不错,写的很仔细,为什么没人顶呢
J2EE应用:定时器 -
rain16881:
很好很强大啊..边看你这..边看自己的..十分钟就搞好了一个难 ...
java class反编译后的代码还原
如何在WEB应用中动态创建PDF文件
时间: 2006-04-22 12:55:33 | [<<] [>>]
作者:itzealot 发文时间:2006.04.18 来源:赛迪博客
在一个最近的后勤项目中,客户要求我们建一个能让用户能从一个遗留系统查询出货信息的Web站点,有三个主要的需求:
1.出货信息必须以PDF文档的格式返回;
2.PDF文件必须能通过浏览器下载;
3.PDF文件必须能用Adobe Acrobat Reader阅读;
尽管我们的团队有很多J2EE Web应用的开发经验,但在PDF文档处理上却没有多少经验。我们需要找一个能在服务器端Web应用里产生复杂的PDF文档的纯Java类库。最后,我们发现iText(http://www.lowagie.com/iText/)能完全满足我们的需要。
1.iText类库
iText是一个创建和处理PDF文档的开源纯Java类库。Bruno Lowagie和Paulo Soares领导着这个项目。IText API能让Java开发人员以编程的方式创建PDF文档。iText提供了很多的特性:
支持PDF和FDF文档
各种页面尺寸
横向和竖向布局
页边距
表格
断字
页头
页脚
页码
条形码
字体
颜色
文档加密
JPEG,GIF,PNG和WMF图片
有序和无序列表
阴影
水印
文档模板
iText是一个开源库。在写本文的时候,iText可以在两个许可协议下使用:Mozilla Public License和LGPL。如果想了解详细信息,请参考iText站点。在本文中,你将会看到iText API的应用。我们将阐述如何在服务器端应用中使用iText和servlet动态生成PDF文档。
2.开始(Getting Started)
首先,你需要一个iText Jar文件。访问iText站点并下载最新的版本。在写本文时,最新的版本是使0.99。iText站点提供了API文档和一个全面的指南。
除了iText,我们还要用servlet.如果你不熟悉servlet,你可以通过Jason Hunter的书《Java Servlet Programming》来学习它。你需要一个J2EE应用服务器或可以独立运行的servlet引擎。开源软件Tomcat,Jetty和Jboss是不错的选择。下文假设你使用的是Jakarta Tomcat 4.1。
1.iText API
iText API简单易用。通过使用iText,你能创建自定义的PDF文档。iText库由下边的一些包组成:
com.lowagie.servlets
com.lowagie.text
com.lowagie.text.html
com.lowagie.text.markup
com.lowagie.text.pdf
com.lowagie.text.pdf.codec
com.lowagie.text.pdf.hyphenation
com.lowagie.text.pdf.wmf
com.lowagie.text.rtf
com.lowagie.text.xml
com.lowagie.tools
为了生成PDF文件,你只需要com.lowagie.text和com.lowagie.text.pdf两个包。
我们的例子使用了这些iText类:
com.lowagie.text.pdf.PdfWriter
com.lowagie.text.Document
com.lowagie.text.HeaderFooter
com.lowagie.text.Paragraph
com.lowagie.text.Phrase
com.lowagie.text.Table
com.lowagie.text.Cell
关键的类是Document和PdfWriter。在创建PDF文档时,你将经常使用这两个类。Document是PDF文档基于对象的描述。你可以通过调用Document类提供的方法往文档中加入内容。PdfWriter对象通过java.io.OutputStream对象与Document关联在一起。
3.在Web应用中使用iText
在设计阶段,你必须决定如何使用iText。我们使用了下边的技术开发了我们的Web应用。
1.A技术
在服务器文件系统上创建PDF文件。应用使用java.io.FileOutputStream把文件写到服务器文件系统上。用户通过HTTP GET方法下载该文件。
2.B技术
使用java.io.ByteArrayOutputStream在内存中创建PDF文件。应用通过servlet的输出流将该PDF文件字节发送到客户端。
由于应用不需要把文件写到文件系统上,这样能保证在集群服务环境中能正常工作,所以我更倾向于使用B技术。如果你的应用运行在集群环境中且服务器集群不提供会话亲和的功能,A技术可能会导致失败。
3.例子:PDFServlet
我们的例子应用由一个类组成:PDFServlet。这个servlet采用B技术。输出流OutputStream是java.io.ByteArryOutputStream。用ByteArrayOutputStream,PDF文档字节将存储在内存中。当PDFServlet接收到一个HTTP请求时,它将动态地生成一个PDF文档并将该文档发送到客户端。
PDFServlet类扩展了javax.servlet.http.HttpServlet类并导入了两个iText包:com.lowagie.text和com.lowagie.text.pdf。
doGet方法
大多数servlet覆盖了doPost和doGet方法中的一个方法。我们的servlet没有什么不同。PDFServlet类覆盖了doGet方法。该servlet将在接收到HTTP GET请求后生成一个PDF文件。
在核心部分,servlet的doGet方法做了如下的工作:
1.创建一个包含PDF文档字节的ByteArrayOutputStream对象;
2.在reponse对象上设置HTTP响应头内容;
3.得到servlet输出流;
4.把文档字节写到servlet的输出流中;
5.刷新servlet输出流;
generatePDFDocumentBytes方法
generatePDFDocumentBytes方法负责创建PDF文档。在这个方法中三个最重要的对象是Document对象,ByteArrayOutputStream对象和PdfWriter对象。PdfWriter使用ByteArrayOutputStream关联Document。
Document doc = new Document();
ByteArrayOutputStream baosPDF = new ByteArrayOutputStream();
PdfWriter docWriter = null;
docWriter = PdfWriter.getInstance(doc, baosPDF);
// ...
用add方法把内容添加到Document中。
doc.add(new Paragraph(
"This document was created by a class named: "
+ this.getClass().getName()));
doc.add(new Paragraph(
"This document was created on "
+ new java.util.Date()));
当你添加完内容后,要关闭Document和PdfWriter对象。
doc.close();
docWriter.close();
当关闭文档后,ByteArrayOutputStream对象返回到调用者。
return baosPDF;
ByteArrayOutputStream包含了PDF文档的所有字节。
HTTP响应头
在这个应用中,我们仅仅关注四个HTTP 响应头:Content-type,Content-disposition,Content-length,和Cache-control。如果你从没有使用过HTTP头,请参考HTTP 1.1规范。
研究在PDFServlet中的doGet方法,你会注意到要在任何数据写到servlet输出流之前设置HTTP响应头内容,这是很重要的,也是细微的一点。
让我们更详细地说明一下每个响应头的含义。
Content-type
在servlet中,HttpServletResponse有一个表明响应所包含内容类型的参数。对PDF文件而言,内容类型是application/pdf。如果servlet没有设置类型,web浏览器很难决定如何处理这个文件。
PDFServlet用下边的代码设置内容类型:
resp.setContentType("application/pdf");
Content-disposition
Content-disposition头提供给浏览器确定HTTP响应内容的信息。当浏览器读到这些头信息后,它能确定:
HTTP响应包含一个文件;
包含在响应中的文件名;
该文件是显示在浏览器主窗口中还是要用外部的应用查看;
RFC 2183中有对Content-disposition头完整的解释。
通过合适地设置Content-disposition的值,servlet能指示浏览器是“内嵌”显示文件还是把它当作附件处理。
例1.内嵌显示一个文件
Content-disposition: inline; filename=foobar.pdf
例2.往response里附加一个文件
Content-disposition: attachment; filename=foobar.pdf
下边的伪码说明了如何设置头信息:
public void doGet(HttpServletRequest req, HttpServletResponse resp)
{
// ...
resp.setHeader(
"Content-disposition",
"inline; filename=foobar.pdf" );
// ...
}
Cache-Control
根据你应用的特性不同,你可以让浏览器缓存或者不缓存你正在生成的PDF文件。服务器端应用可以有很多种HTTP 头来控制内容缓存。下边是一些例子:
Cache-Control: no-cache
Cache-Control: no-store
Cache-Control: must-revalidate
Cache-Control: max-age=30
Pragma: no-cache
Expires: 0
关于Cache-Control头的全面解释见HTTP 1.1规范。
PDFServlet把Cache-Control设置为max-age=30。这个头信息告诉浏览器缓存这个文件的最长时间为30秒。
Content-length
Content-length头必须设置成PDF文件中字节的数值。如果Content-length没有设置正确,浏览器可能不能正确地显示该文件。下边是例子代码:
ByteArrayOutputStream baos = getByteArrayOutputStream();
resp.setContentLength(baos.size());
把PDF文档送到Web浏览器
PDFServlet通过把字节流写到servlet的输出流的方式把PDF文档送到客户端。它通过调用HttpServletResponse对象的getOutputStream方法来获得输出流。getOutputStream方法返回一个javax.servlet.ServletOutputStream类型的对象。
ServletOutputStream sos;
sos = resp.getOutputStream();
baos.writ
时间: 2006-04-22 12:55:33 | [<<] [>>]
作者:itzealot 发文时间:2006.04.18 来源:赛迪博客
在一个最近的后勤项目中,客户要求我们建一个能让用户能从一个遗留系统查询出货信息的Web站点,有三个主要的需求:
1.出货信息必须以PDF文档的格式返回;
2.PDF文件必须能通过浏览器下载;
3.PDF文件必须能用Adobe Acrobat Reader阅读;
尽管我们的团队有很多J2EE Web应用的开发经验,但在PDF文档处理上却没有多少经验。我们需要找一个能在服务器端Web应用里产生复杂的PDF文档的纯Java类库。最后,我们发现iText(http://www.lowagie.com/iText/)能完全满足我们的需要。
1.iText类库
iText是一个创建和处理PDF文档的开源纯Java类库。Bruno Lowagie和Paulo Soares领导着这个项目。IText API能让Java开发人员以编程的方式创建PDF文档。iText提供了很多的特性:
支持PDF和FDF文档
各种页面尺寸
横向和竖向布局
页边距
表格
断字
页头
页脚
页码
条形码
字体
颜色
文档加密
JPEG,GIF,PNG和WMF图片
有序和无序列表
阴影
水印
文档模板
iText是一个开源库。在写本文的时候,iText可以在两个许可协议下使用:Mozilla Public License和LGPL。如果想了解详细信息,请参考iText站点。在本文中,你将会看到iText API的应用。我们将阐述如何在服务器端应用中使用iText和servlet动态生成PDF文档。
2.开始(Getting Started)
首先,你需要一个iText Jar文件。访问iText站点并下载最新的版本。在写本文时,最新的版本是使0.99。iText站点提供了API文档和一个全面的指南。
除了iText,我们还要用servlet.如果你不熟悉servlet,你可以通过Jason Hunter的书《Java Servlet Programming》来学习它。你需要一个J2EE应用服务器或可以独立运行的servlet引擎。开源软件Tomcat,Jetty和Jboss是不错的选择。下文假设你使用的是Jakarta Tomcat 4.1。
1.iText API
iText API简单易用。通过使用iText,你能创建自定义的PDF文档。iText库由下边的一些包组成:
com.lowagie.servlets
com.lowagie.text
com.lowagie.text.html
com.lowagie.text.markup
com.lowagie.text.pdf
com.lowagie.text.pdf.codec
com.lowagie.text.pdf.hyphenation
com.lowagie.text.pdf.wmf
com.lowagie.text.rtf
com.lowagie.text.xml
com.lowagie.tools
为了生成PDF文件,你只需要com.lowagie.text和com.lowagie.text.pdf两个包。
我们的例子使用了这些iText类:
com.lowagie.text.pdf.PdfWriter
com.lowagie.text.Document
com.lowagie.text.HeaderFooter
com.lowagie.text.Paragraph
com.lowagie.text.Phrase
com.lowagie.text.Table
com.lowagie.text.Cell
关键的类是Document和PdfWriter。在创建PDF文档时,你将经常使用这两个类。Document是PDF文档基于对象的描述。你可以通过调用Document类提供的方法往文档中加入内容。PdfWriter对象通过java.io.OutputStream对象与Document关联在一起。
3.在Web应用中使用iText
在设计阶段,你必须决定如何使用iText。我们使用了下边的技术开发了我们的Web应用。
1.A技术
在服务器文件系统上创建PDF文件。应用使用java.io.FileOutputStream把文件写到服务器文件系统上。用户通过HTTP GET方法下载该文件。
2.B技术
使用java.io.ByteArrayOutputStream在内存中创建PDF文件。应用通过servlet的输出流将该PDF文件字节发送到客户端。
由于应用不需要把文件写到文件系统上,这样能保证在集群服务环境中能正常工作,所以我更倾向于使用B技术。如果你的应用运行在集群环境中且服务器集群不提供会话亲和的功能,A技术可能会导致失败。
3.例子:PDFServlet
我们的例子应用由一个类组成:PDFServlet。这个servlet采用B技术。输出流OutputStream是java.io.ByteArryOutputStream。用ByteArrayOutputStream,PDF文档字节将存储在内存中。当PDFServlet接收到一个HTTP请求时,它将动态地生成一个PDF文档并将该文档发送到客户端。
PDFServlet类扩展了javax.servlet.http.HttpServlet类并导入了两个iText包:com.lowagie.text和com.lowagie.text.pdf。
doGet方法
大多数servlet覆盖了doPost和doGet方法中的一个方法。我们的servlet没有什么不同。PDFServlet类覆盖了doGet方法。该servlet将在接收到HTTP GET请求后生成一个PDF文件。
在核心部分,servlet的doGet方法做了如下的工作:
1.创建一个包含PDF文档字节的ByteArrayOutputStream对象;
2.在reponse对象上设置HTTP响应头内容;
3.得到servlet输出流;
4.把文档字节写到servlet的输出流中;
5.刷新servlet输出流;
generatePDFDocumentBytes方法
generatePDFDocumentBytes方法负责创建PDF文档。在这个方法中三个最重要的对象是Document对象,ByteArrayOutputStream对象和PdfWriter对象。PdfWriter使用ByteArrayOutputStream关联Document。
Document doc = new Document();
ByteArrayOutputStream baosPDF = new ByteArrayOutputStream();
PdfWriter docWriter = null;
docWriter = PdfWriter.getInstance(doc, baosPDF);
// ...
用add方法把内容添加到Document中。
doc.add(new Paragraph(
"This document was created by a class named: "
+ this.getClass().getName()));
doc.add(new Paragraph(
"This document was created on "
+ new java.util.Date()));
当你添加完内容后,要关闭Document和PdfWriter对象。
doc.close();
docWriter.close();
当关闭文档后,ByteArrayOutputStream对象返回到调用者。
return baosPDF;
ByteArrayOutputStream包含了PDF文档的所有字节。
HTTP响应头
在这个应用中,我们仅仅关注四个HTTP 响应头:Content-type,Content-disposition,Content-length,和Cache-control。如果你从没有使用过HTTP头,请参考HTTP 1.1规范。
研究在PDFServlet中的doGet方法,你会注意到要在任何数据写到servlet输出流之前设置HTTP响应头内容,这是很重要的,也是细微的一点。
让我们更详细地说明一下每个响应头的含义。
Content-type
在servlet中,HttpServletResponse有一个表明响应所包含内容类型的参数。对PDF文件而言,内容类型是application/pdf。如果servlet没有设置类型,web浏览器很难决定如何处理这个文件。
PDFServlet用下边的代码设置内容类型:
resp.setContentType("application/pdf");
Content-disposition
Content-disposition头提供给浏览器确定HTTP响应内容的信息。当浏览器读到这些头信息后,它能确定:
HTTP响应包含一个文件;
包含在响应中的文件名;
该文件是显示在浏览器主窗口中还是要用外部的应用查看;
RFC 2183中有对Content-disposition头完整的解释。
通过合适地设置Content-disposition的值,servlet能指示浏览器是“内嵌”显示文件还是把它当作附件处理。
例1.内嵌显示一个文件
Content-disposition: inline; filename=foobar.pdf
例2.往response里附加一个文件
Content-disposition: attachment; filename=foobar.pdf
下边的伪码说明了如何设置头信息:
public void doGet(HttpServletRequest req, HttpServletResponse resp)
{
// ...
resp.setHeader(
"Content-disposition",
"inline; filename=foobar.pdf" );
// ...
}
Cache-Control
根据你应用的特性不同,你可以让浏览器缓存或者不缓存你正在生成的PDF文件。服务器端应用可以有很多种HTTP 头来控制内容缓存。下边是一些例子:
Cache-Control: no-cache
Cache-Control: no-store
Cache-Control: must-revalidate
Cache-Control: max-age=30
Pragma: no-cache
Expires: 0
关于Cache-Control头的全面解释见HTTP 1.1规范。
PDFServlet把Cache-Control设置为max-age=30。这个头信息告诉浏览器缓存这个文件的最长时间为30秒。
Content-length
Content-length头必须设置成PDF文件中字节的数值。如果Content-length没有设置正确,浏览器可能不能正确地显示该文件。下边是例子代码:
ByteArrayOutputStream baos = getByteArrayOutputStream();
resp.setContentLength(baos.size());
把PDF文档送到Web浏览器
PDFServlet通过把字节流写到servlet的输出流的方式把PDF文档送到客户端。它通过调用HttpServletResponse对象的getOutputStream方法来获得输出流。getOutputStream方法返回一个javax.servlet.ServletOutputStream类型的对象。
ServletOutputStream sos;
sos = resp.getOutputStream();
baos.writ
发表评论
-
RPC与RMI的区别以及jax-rpc、jax-ws和 axis、xfire的联系和区别
2011-04-22 23:54 22801. RPC 不支持对象, 采用http协议 2. RMI支 ... -
网站如何集成支付宝!原来要给钱的
2010-09-11 14:00 1136文章来源:http://gavin-chen.iteye.co ... -
struts2类型转换
2010-07-10 23:58 1077struts2类型转换 文章来源:http://j ... -
在项目中集成Axis 1.x来开发Web Service
2009-06-01 17:25 1131在项目中集成Axis 1.x来开发Web Service 文 ... -
axis 传输 简单对象,复杂对象,List,Map等收藏
2009-05-12 15:12 1526axis 传输 简单对象,复杂对象,List,Map等收藏 来 ... -
showModalDialog()、showModelessDialog()方法使用详解
2009-04-13 14:50 808showModalDialog()、showModelessD ... -
简单的webservice开发例子
2008-12-03 13:34 1053作者:wjhdtx 摘自csdn 简单的webservice开 ... -
javascriptのfunction之谜
2008-12-03 13:33 842详解new function(){}和functi ... -
Hibernate检索方式
2008-12-03 13:32 740大家知道,Java对象的生 ... -
Taglib 原理和实现之什么是Taglib
2008-12-03 13:30 7751、问题:Tag究竟是什么?如何实现一个Tag? 一个ta ... -
哀悼日,怎么样才能让网站变成黑白的
2008-12-03 13:29 8212008年5月19日 - 2008年5月21日 哀悼 ... -
javascript 动态创建表格:新增、删除行和单元格
2008-12-03 13:29 13362008-03-17 10:07 这段时间写了不少脚本,感觉蛮 ... -
中文乱码终极幻想
2008-12-03 13:22 875java中文编码[转] 开发java应用出现乱码是很常见的,毕 ... -
Web文件的ContentType类型大全
2008-12-03 13:14 697Web文件的ContentType类型大全 ".*& ... -
Session机制详解
2008-12-03 13:10 728作者:郎云鹏 2006-07-19 内容导航: Sessio ... -
用JDring包设置类似于 cron的日程提醒
2008-12-03 13:09 790用JDring包设置类似于 cron的日程提醒 发布时间: ... -
HTML表单元素覆盖样式元素问题及其补救之道
2008-12-03 13:08 769HTML表单元素覆盖样式元素问题及其补救之道 日期:2004: ... -
多种网页播放器代码及其参数含义
2008-12-03 13:08 1640[日期:2005-07-11] 来源: 作者: [字体:大 ... -
J2EE应用:定时器
2008-12-03 13:07 2473定时器(引用) 好多 ... -
Smartupload和commons-fileupload介绍与比较(ZT)
2008-12-03 13:06 1254WEB文件上传可能是网站建设中最常用的功能之一,我在项目开发中 ...
相关推荐
* 在发布 Web 应用程序时,通常把 Web 应用程序的目录及文件放到 Tomcat 的 `webapps` 目录下 * 可以使用 MyEclipse 等 IDE 创建 Web 项目,并在其中建立 HTML 文件和 JSP 文件 HTTP 协议 * HTTP 协议是 Web 应用...
2.8.4 在文件中定位:rewind()、fseek()和ftell() 2.9 文件锁定 2.10 更好的方式:数据库管理系统 2.10.1 使用普通文件的几个问题 2.10.2 RDBMS是如何解决这些问题的 2.11 进一步学习 2.12 下一章 第3章 ...
1.4.1 Web应用服务工作原理 1.4.2 web应用服务器汇总 1.4.3 获取Tomcat 1.4.4 熟悉Tomcat的五脏六腑 1.5 JavaWeb开发利器之Eclipse 1.5.1 获取Eciipse 1.5.2 运行Eclipse 1.5.3 打造中文版Eclipse 1.6 做好项日开发...
在你对Web应用所执行的测试中,安全测试可能是最重要的,但它却常常是最容易被忽略的。本书中的秘诀演示了开发和测试人员在进行单元测试、回归测试或探索性测试的同时,如何去检查最常见的Web安全问题。与即兴的...
7.1 配置任意目录下的web应用程序 240 7.2 war文件 242 7.3 tomcat中servlet的另一种运行方式 244 7.4 与servlet配置相关的元素 247 7.4.1 [servlet]元素及其子元素 247 7.4.2 [servlet-mapping]元素及其子元素...
MLDN 李兴华 Java Web 开发实战经典.pdf (高清版) 全书分为两部分,需 要全部下载下载一起解压,此部分为第一部分 带有书签,清华大学出版社 第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 ...
攻略24 创建多个动画的动态图像 91 攻略25 创建组合与变换的视图 93 攻略26 对梯度图层实施动画 95 攻略27 重新打造阴影 98 攻略28 显示带动画的视图 100 攻略29 构造简单的发射器 102 攻略30 翻卷页面...
4.3.1 Web应用程序的“适用性” 121 4.3.2 打折式适用性工程 124 4.3.3 适用性:只要做就可以了 126 4.4 小结 126 第5章 基本网络应用程序策略 127 5.1 PHP正常表格 127 5.2 方案策划 133 5.2.1 团队合作 133 5.2.2 ...
我们首先介绍了嵌入式Linux操作系统的移植,包括bootloader的编写和移植、Linux内核配置与构建以及Linux文件创建等步骤。然后,我们讨论了嵌入式Web服务器boa的移植和CGI应用程序的设计。 本文提供了一种基于ARM_...
7.1 配置任意目录下的web应用程序 240 7.2 war文件 242 7.3 tomcat中servlet的另一种运行方式 244 7.4 与servlet配置相关的元素 247 7.4.1 [servlet]元素及其子元素 247 7.4.2 [servlet-mapping]元素及其子元素...
项目目录中包含的pdf文件中描述了需求规格以及已开发的奖励功能。此pdf文件包含示例输入和输出的屏幕截图。 #项目结构 。 ├──wikiapp│├──CHANGES.txt│├──development.ini│├──MANIFEST.in│├──...
1.3.4 部署Web应用 22 1.4 WebLogic的下载和安装 24 1.4.1 WebLogic的下载和安装 24 1.4.2 WebLogic的基本配置 25 1.4.3 修改WebLogic的服务端口 29 1.4.4 部署Web应用 30 1.5 NetBeans的安装和使用 32 1.5.1 ...
《Ruby.on.Rails.Web开发之旅》,作者:【德】Patrick Lenz,翻译:王德民、刘昕、裴立秋,出版社:人民邮电出版社,ISBN:9787115188526,PDF 格式,大小 144 Mb,被压缩为 3 部分,本资源是第二部分;第一部分下载...
《Ruby.on.Rails.Web开发之旅》,作者:【德】Patrick Lenz,翻译:王德民、刘昕、裴立秋,出版社:人民邮电出版社,ISBN:9787115188526,PDF 格式,大小 144 Mb,被压缩为 3 部分,本资源是第一部分;第二部分下载...
《Ruby.on.Rails.Web开发之旅》,作者:【德】Patrick Lenz,翻译:王德民、刘昕、裴立秋,出版社:人民邮电出版社,ISBN:9787115188526,PDF 格式,大小 144 Mb,被压缩为 3 部分,本资源是第三部分;第一部分下载...
8.2.1 Web应用程序和DataSet 8.2.2 XML集成 8.3 DataSet类 8.4 DataAdapter类 8.4.1 填充DataSet 8.4.2 使用多个表和关系 8.4.3 查找特定行 8.4.4 在数据访问类里使用DataSet 8.4.5 数据绑定 8.5...
10.1 关于Web应用程序 190 10.1.1 静态网页的处理过程 190 10.1.2 动态网页的处理过程 190 10.1.3 Web数据库访问 191 10.2 数据库基础 192 10.2.1 数据库、数据库管理系统和数据库 系统 192 10.2.2 记录与...
例程2-2:发送PDF文件到客房端浏览器 例程2-3:客户信息显示栏 例程2-4:获取服务器基本信息 例程2-5:横幅广告系统 例程2-6:利用过滤器限制客房端访问 例程2-7:多组件协作实现用户用户登录验证 本章小结 第3章 ...
11. 当在 JSP 文件中要使用到 Vector 对象时,应在 JSP 文件中加入以下哪个语句?答案:” java.util.*” %>. 12. 关于 JavaBean 的说法,哪个是正确的?答案:JavaBean 的具体类可以不实现 Serialize 接口。 本...
Web开发过程的目的在于让项目小组开发出达到预定要求的高质量的Web应用软件,开发小组可以把一个Web应用划分为若干部分,一些小组成员在某一部分可以提前进入建设阶段,而其他成员可能还处于设计阶段,这与传统方法...