﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Paul之Coder日记-文章分类-2、Web</title><link>http://www.blogjava.net/llxiong/category/8437.html</link><description>收藏。</description><language>zh-cn</language><lastBuildDate>Wed, 16 Apr 2008 13:14:46 GMT</lastBuildDate><pubDate>Wed, 16 Apr 2008 13:14:46 GMT</pubDate><ttl>60</ttl><item><title>转：网络报表学习体会心得！ </title><link>http://www.blogjava.net/llxiong/articles/80014.html</link><dc:creator>xnabx</dc:creator><author>xnabx</author><pubDate>Thu, 09 Nov 2006 00:59:00 GMT</pubDate><guid>http://www.blogjava.net/llxiong/articles/80014.html</guid><wfw:comment>http://www.blogjava.net/llxiong/comments/80014.html</wfw:comment><comments>http://www.blogjava.net/llxiong/articles/80014.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/llxiong/comments/commentRss/80014.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/llxiong/services/trackbacks/80014.html</trackback:ping><description><![CDATA[
		<div style="TEXT-INDENT: 18pt">
				<span style="FONT-SIZE: 12pt; COLOR: #333333">这几天本人专门对网络报表的设计及打印技术进行了调查研究，在网上收集了许多相关资料，其中</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">ireport+jasperreport</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">是许多相关人士的首推，因此本人对此进行了较详细的学习，下面是本人在学习</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">ireport</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">和</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">jasperreport</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">过程中碰到的一些问题及网上摘录的解决方法，希望大家阅读此文后会有所收获。</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">1</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">．</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">Jasperreport</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">及</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">ireport</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">简介：</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">   JasperReport </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">是一款报表打印组件，是开放源代码组织</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> sf.net </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">中的一个</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> java </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">报表打印工程，</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">JasperReport </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">的最新版本是</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> 0.5.2 </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">版，最新版本可以从</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> http://jasperreports.sourceforge.net/index.html </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">下载得到。</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">    iReport </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">也是开源组织</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> sf.net </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">中的一款免费软件，其主要作用是用来以可视化的方式设计生成</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> JasperReport </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">所使用的报表格式文件，因为</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> JasperReport </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">本身并未提供很好的可视化报表设计工具，</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">iReport </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">的出现正好弥补了这个缺陷。</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">iReport </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">的最新版本是</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> 0.3.0</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">，</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">iReport </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">可以从</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> http://ireport.sourceforge.net </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">下载得到。</span>
		</div>
		<div> </div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">2</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">．</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">Jasperreport</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">及</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">ireport</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">的安装及配置：</span>
		</div>
		<div style="TEXT-INDENT: 18pt">
				<span style="FONT-SIZE: 12pt; COLOR: #333333">Jasperreport</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">不用另外进行安装，只需要下载</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">JasperReport-x.x.x.jar </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">文件就可以了。</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">JasperReport </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">的配置比较简单，直接将</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">JasperReport-x.x.x.jar </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">文件添加到操作系统的环境变量</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> ClASSPATH </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">中即可完成</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> JasperReport </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">的配置。</span>
		</div>
		<div style="TEXT-INDENT: 18pt">
				<span style="FONT-SIZE: 12pt; COLOR: #333333">iReport </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">在</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> Windows </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">平台也是以</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">.zip </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">形式的文件提供的，直接解压缩后就算完成了安装。只有</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> 2.x </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">版的</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">iReport</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">需要配置，</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">3.0 </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">版的</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">iReport</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">无需进行任何配置，直接启动时</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> ireport.bat </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">文件就可以了。</span>
		</div>
		<div style="TEXT-INDENT: 18pt"> </div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">3</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">．</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">iReport</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">中文显示的问题：</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">   1</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">）、当</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">iReport</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">中提示框输入中文不能正常显示时，直接将</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">iReport</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">下</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">lib</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">中的</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">tinylaf.jar</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">这个包删除即可。</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">
						<br />
				</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">　</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> 2</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">）、在</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">iReport</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">中运行报表时如果出现乱码问题时，将</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">itext-1.02b.jar</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">和</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">iTextAsian.jar</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">这两个包加到</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">CLASSPATH</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">即可。即加入到</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">C</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">：</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">\iReport-0.3.0\lib</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">目录中即可。</span>
		</div>
		<div style="TEXT-INDENT: 18pt">
				<span style="FONT-SIZE: 12pt; COLOR: #333333">3</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">）、带有中文显示的报表：</span>
		</div>
		<div style="TEXT-INDENT: 24pt">
				<span style="FONT-SIZE: 12pt; COLOR: #333333">任意画一文本框，双击它，在出现的对话框中选择</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> Static Text </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">项，修改</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> text </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">内容为汉</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">字，如下所示：</span>
		</div>
		<div style="TEXT-INDENT: 24pt">
				<span style="FONT-SIZE: 12pt; COLOR: #333333">同时，修改</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> FONT </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">项中的内容与下图相同</span>
		</div>
		<div style="TEXT-INDENT: 24pt">
				<span style="FONT-SIZE: 12pt; COLOR: #333333">改动的地方有三项，一是</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> font name,</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">二是</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> PDF font name </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">三是</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> PDF Encoding </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">再次预览报表即可显示中文报表。</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">上面修改的第二和第三项在</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">JRViewer</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">中是看不出来效果的，如果选择报表的生成结果为</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">PDF </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">格式则会体现出来。</span>
		</div>
		<div> </div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">4. </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">设置数据库连接</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">   </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">选择“</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">data source</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">”菜单中的“</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">Connections/Datasources</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">”，在打开的数据连接列表窗口</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">中点击“</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">new</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">”以便新增一个数据源，</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">JasperReport </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">可以使用多种数据源，可以是</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> JDBC </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">数</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">据库连接，也可以是从</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> XML </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">文件中取数据等，以下是使用</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> ORACLE </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">中的</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> CH </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">数据库做为</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">数据源的一个配置例子。</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">          </span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">上例中是以</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> ORACLE </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">做为数据库的一个例子，我们还需要手工复制</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> ORACLE </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">的</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> JDBC </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">驱</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">动文件到</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> iReport </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">的</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> lib </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">目录，复制</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> JDBC </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">驱动以外需要重新运行</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> iReport </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">才会生效。配置好</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">数据源以后，点击“</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">Test</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">”按钮，如果配置没有错误，应该会出现如下所示的内容：</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">测试数据库连接成功后，点击“</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">Save</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">”按钮保存这个数据源以便完成数据源的配置。</span>
		</div>
		<div> </div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">5</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">．</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">JasperReport </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">在程序中的应用</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">   </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">在网上找到</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">JasperReport </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">在程序中的应用的例子，现摘录如下：</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">1.) Servlet:<br />import javax.servlet.*;<br />import javax.servlet.http.*;<br />import dori.jasper.engine.*;<br />import java.io.*;<br />import java.util.*;<br />import java.sql.*; </span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">/**<br />* @author Administrator<br />*<br />* To change the template for this generated type comment go to<br />* Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments<br />*/<br />public class TestReport extends HttpServlet { </span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">public void doGet(HttpServletRequest request, HttpServletResponse response)<br />throws ServletException, IOException {<br />Connection conn = null; </span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">try { </span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");<br />conn =<br />DriverManager.getConnection( </span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">
						<br />"jdbc:microsoft:sqlserver://192.168.0.10:1433;DatabaseName=am;user=sa;password=sa"); </span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">ServletContext servletContext =this.getServletContext();<br />File reportFile = new File(servletContext.getRealPath("test/iteminfo.jasper"));<br />Map parameters = new HashMap();<br />Integer i=new Integer(8);<br />parameters.put("pjId", i);<br />byte[] bytes =<br />JasperRunManager.runReportToPdf(<br />reportFile.getPath(),<br />parameters,<br />conn);<br />response.setContentType("application/pdf");<br />response.setContentLength(bytes.length);<br />ServletOutputStream ouputStream = response.getOutputStream();<br />ouputStream.write(bytes, 0, bytes.length);<br />ouputStream.flush();<br />ouputStream.close();<br />} catch (JRException jre) {<br />System.out.println("JRException:" + jre.getMessage());<br />} catch (Exception e) {<br />System.out.println("Exception:" + e.getMessage());<br />} </span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">} </span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">public void doPost(<br />HttpServletRequest request,<br />HttpServletResponse response)<br />throws ServletException, IOException { </span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">doGet(request, response); </span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">} </span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">} </span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">2.) JSP:</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">
						<br />&lt;%@ page contentType="text/html;charset=GBK" %&gt;<br />&lt;%@ page import="dori.jasper.engine.*" %&gt;<br />&lt;%@ page import="java.util.*" %&gt;<br />&lt;%@ page import="java.io.*" %&gt;<br />&lt;%@ page import="java.sql.*" %&gt; </span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">&lt;%<br />//数据库连接<br />Connection conn=null;<br />Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");<br />conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.0.10:1433;DatabaseName=am;user=sa;password= </span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">sa"); </span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">//取到编译后的jasper文件<br />File reportFile = new File(application.getRealPath("test/iteminfo.jasper")); </span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">//向报表中定义的参数赋值<br />Map parameters = new HashMap();<br />Integer i=new Integer(8);<br />parameters.put("pjId", i); </span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">byte[] bytes = <br />JasperRunManager.runReportToPdf(<br />reportFile.getPath(), <br />parameters, <br />conn<br />); </span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">response.setContentType("application/pdf");<br />response.setContentLength(bytes.length);<br />ServletOutputStream ouputStream = response.getOutputStream();<br />ouputStream.write(bytes, 0, bytes.length);<br />ouputStream.flush();<br />ouputStream.close(); </span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">%&gt; </span>
		</div>
		<div> </div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">3.)</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">如何将</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333"> PDF </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">格式报表结果直接输出到打印机</span>
		</div>
		<div> </div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">注：这段代码只能应用在</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">JavaApplication</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">中</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">public void print() throws UnsupportedFormatException</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">{</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">save("./tmp.pdf");</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">try</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">{</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">String osName = System.getProperty("os.name");</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">//FOR WINDOWS 95 AND 98 USE COMMAND.COM</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">if (osName.equals("Windows 95") || osName.equals("Windows 98"))</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">{</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">Runtime.getRuntime().exec("command.com /C start acrord32 /p " + "./tmp.pdf");</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">}</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">//FOR WINDOWS NT/XP/2000 USE CMD.EXE</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">else</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">{</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">Runtime.getRuntime().exec("cmd.exe /C Start acrord32 /p " + "./tmp.pdf");</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">}</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">}</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">catch (IOException IOE)</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">{</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">JOptionPane.showMessageDialog(null, IOE.getMessage(), "RuntimeException",</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">JOptionPane.ERROR_MESSAGE);</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">}</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">}</span>
		</div>
		<div> </div>
		<div>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">6. </span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">以上是本人在学习</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">Jasperreport</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">及</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">ireport</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">中认为应该注意的及容易碰到的一些问题，许多解决方案是直接从网上摘录的，另外</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">Jasperreport</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">及</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">ireport</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">的软件及一些相关的学习资料，我已经将其</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">COPY</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">到公司的</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">SERVER</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">服务器暂存盘上我的个人目录下的网络报表设计子目录中，大家要是不想自己去下载，可直接到服务器上去</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">COPY</span>
				<span style="FONT-SIZE: 12pt; COLOR: #333333">一份，同时也希望对大家有所帮助。</span>
		</div>
		<br />
		<br />
		<p id="TBPingURL">Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=645592</p>
<img src ="http://www.blogjava.net/llxiong/aggbug/80014.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/llxiong/" target="_blank">xnabx</a> 2006-11-09 08:59 <a href="http://www.blogjava.net/llxiong/articles/80014.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转载：重温Struts--标签</title><link>http://www.blogjava.net/llxiong/articles/35538.html</link><dc:creator>xnabx</dc:creator><author>xnabx</author><pubDate>Thu, 16 Mar 2006 01:17:00 GMT</pubDate><guid>http://www.blogjava.net/llxiong/articles/35538.html</guid><wfw:comment>http://www.blogjava.net/llxiong/comments/35538.html</wfw:comment><comments>http://www.blogjava.net/llxiong/articles/35538.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/llxiong/comments/commentRss/35538.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/llxiong/services/trackbacks/35538.html</trackback:ping><description><![CDATA[<DIV class=postcontent>
<P class=MsoNormal style="MARGIN: 0cm 0cm 7.8pt; TEXT-INDENT: 21.75pt; mso-para-margin-bottom: .5gd"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">作者：</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: navy"><A HREF="/flyingis"><SPAN style="COLOR: navy">Flyingis</SPAN></A></SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 7.8pt; TEXT-INDENT: 21.75pt; mso-para-margin-bottom: .5gd"><SPAN lang=EN-US style="FONT-SIZE: 10pt">Struts</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标签提供了大部分应用来满足创建</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">MVC</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">架构表现页面的所有功能。在一个</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">MVC</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">应用中，请求并不是直接到达表现页面，而是首先经过控制器，仅当业务数据被获取，并且业务规则被应用后，控制器才处理表现页面。页面的职责就是输出结果和捕获用户输入，</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">Struts</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标签的功能目的就在于此。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 7.8pt; TEXT-INDENT: 21.75pt; mso-para-margin-bottom: .5gd"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">虽说</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">Struts</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标签库能满足我们大多数情况下的需要，但不是唯一可用的标签，例如</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">JSTL</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标签、</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">DisplayTag</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">等等。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">Struts</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标签和其他各种标签的基本使用方法在各种书本上都有介绍，这里总结一下标签使用中的个人体会，并不断更新。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 7.8pt 18pt; TEXT-INDENT: -18pt; mso-para-margin-bottom: .5gd; mso-para-margin-top: 0cm; mso-para-margin-right: 0cm; mso-para-margin-left: 18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"><SPAN style="mso-list: Ignore">1.<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">Struts</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中包含三个标签库，</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">Bean</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">HTML</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">Logic</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，其中</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">HTML</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标签库依赖于框架，其他大部分标签不依赖于框架，可以在其他应用中使用。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 7.8pt 18pt; TEXT-INDENT: -18pt; mso-para-margin-bottom: .5gd; mso-para-margin-top: 0cm; mso-para-margin-right: 0cm; mso-para-margin-left: 18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"><SPAN style="mso-list: Ignore">2.<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">Struts HTML</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标签和一般</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">HTML</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标签具有一定的对应关系，但也存在一点不同。使用</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">Scriptlet</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">HTML</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标签需要在使用前在页面中将</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">Form Bean</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">声明为一个脚本变量，</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">Struts</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标签则不需要声明就能找到该</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">Bean</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。在默认情况下，</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">Struts</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标签将对剩下的表单使用同一个</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">Bean</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，所以不需要对每一个控件都进行指定。例如：</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"><BR>&lt;input type=“text” name=“username” value=“&lt;%=user.getUsername()%&gt;”/&gt;<BR></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">使用</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">Struts HTML</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标签</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"><BR>&lt;html:text property=“username”&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 7.8pt 18pt; TEXT-INDENT: -18pt; mso-para-margin-bottom: .5gd; mso-para-margin-top: 0cm; mso-para-margin-right: 0cm; mso-para-margin-left: 18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"><SPAN style="mso-list: Ignore">3.<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">Struts HTML</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标签和一般</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">HTML</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标签具有一定的对应关系，但存在几个特例，在</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">Struts HTML</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标签中，</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">Messages / errors / rewrite</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">分别用来表示显示一组消息、显示一组错误消息、输出一个编码的</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">URL</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">路径，而这些在一般</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">HTML</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标签中就不存在。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 7.8pt 18pt; TEXT-INDENT: -18pt; mso-para-margin-bottom: .5gd; mso-para-margin-top: 0cm; mso-para-margin-right: 0cm; mso-para-margin-left: 18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"><SPAN style="mso-list: Ignore">4.<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">HTML</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">有时需要处理特殊的字符，包括标签的括号、</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">&amp;</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">符号以及其他的内容，如果这些字符作为文本字段的一部分，可能会出现错误并造成</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">HTML</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">崩溃。如果确实需要在数据中存储这些字符，可以在网页中进行设置，使得这些字符不被页面过滤成为特殊字符，例如：</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"><BR>&lt;bean:write name=“UserForm” property=“username” filter=“false”/&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 7.8pt 18pt; TEXT-INDENT: -18pt; mso-para-margin-bottom: .5gd; mso-para-margin-top: 0cm; mso-para-margin-right: 0cm; mso-para-margin-left: 18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"><SPAN style="mso-list: Ignore">5.<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">使用</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">&lt;html:password&gt;</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">时，如果页面校验错误，</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">password</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">属性将从</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">Form Bean</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中读回，并放置在</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">password</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标签中。虽然密码会被浏览器用符号隐藏，但在</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">HTML</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">源代码中仍然可以看到，存在安全上的隐患，因此可以在标签中加入</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">redisplay=false</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来保证</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">password</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">总是以空白状态显示给用户。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 7.8pt 18pt; TEXT-INDENT: -18pt; mso-para-margin-bottom: .5gd; mso-para-margin-top: 0cm; mso-para-margin-right: 0cm; mso-para-margin-left: 18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"><SPAN style="mso-list: Ignore">6.<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提供一个</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">Javascript</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的返回按钮，可以定义一个没有属性的简单表单，</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">Struts</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">配置文件：</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"><BR>&lt;action path=“/adduser”<BR><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>type=“org.apache.struts.ForwardAction”<BR><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>name=“BlankForm”<BR><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>scope=“request”<BR><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>validate=“false”<BR><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>parameter=“/user.do”&gt;<BR>JSP</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">页面：</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"><BR>&lt;html:form action=“/adduser”&gt;<BR>&lt;html:button property=“page” onClick=“history.go(-1)”&gt;here&lt;/html:button&gt;<BR>&lt;/html:form&gt;<o:p></o:p></SPAN></P></DIV><img src ="http://www.blogjava.net/llxiong/aggbug/35538.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/llxiong/" target="_blank">xnabx</a> 2006-03-16 09:17 <a href="http://www.blogjava.net/llxiong/articles/35538.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Apache＋Tomcat实现负载均衡</title><link>http://www.blogjava.net/llxiong/articles/35244.html</link><dc:creator>xnabx</dc:creator><author>xnabx</author><pubDate>Tue, 14 Mar 2006 07:26:00 GMT</pubDate><guid>http://www.blogjava.net/llxiong/articles/35244.html</guid><wfw:comment>http://www.blogjava.net/llxiong/comments/35244.html</wfw:comment><comments>http://www.blogjava.net/llxiong/articles/35244.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/llxiong/comments/commentRss/35244.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/llxiong/services/trackbacks/35244.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 安装Apache																																																																								，配置负载均衡																																																																		...&nbsp;&nbsp;<a href='http://www.blogjava.net/llxiong/articles/35244.html'>阅读全文</a><img src ="http://www.blogjava.net/llxiong/aggbug/35244.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/llxiong/" target="_blank">xnabx</a> 2006-03-14 15:26 <a href="http://www.blogjava.net/llxiong/articles/35244.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>