﻿<?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-Tomorrow Belong To Nobody...-文章分类-Other</title><link>http://www.blogjava.net/leweslove/category/32006.html</link><description>             永远也走不出这操蛋的围城...</description><language>zh-cn</language><lastBuildDate>Wed, 04 Mar 2009 04:52:05 GMT</lastBuildDate><pubDate>Wed, 04 Mar 2009 04:52:05 GMT</pubDate><ttl>60</ttl><item><title>IPD 与 CMM</title><link>http://www.blogjava.net/leweslove/articles/257709.html</link><dc:creator>leweslove</dc:creator><author>leweslove</author><pubDate>Wed, 04 Mar 2009 02:33:00 GMT</pubDate><guid>http://www.blogjava.net/leweslove/articles/257709.html</guid><wfw:comment>http://www.blogjava.net/leweslove/comments/257709.html</wfw:comment><comments>http://www.blogjava.net/leweslove/articles/257709.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leweslove/comments/commentRss/257709.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leweslove/services/trackbacks/257709.html</trackback:ping><description><![CDATA[IPD是<span style="color: #303dff;"><span style="color: red;">Integrated Product Development</span></span>
的缩写，即&#8220;集成的产品开发&#8221;，是新产品开发管理的一种模式，它逐渐兴起于上个世纪的西方企业。蓝色巨人IBM公司的重新崛起在很大程度上得益于IPD的
推行，IPD使IBM的多项研发指标得到了重大改善，如：新产品上市周期的大幅度缩短、研发资源浪费比率的显著下降等。对于IT行业，IPD作为新产品开
发管理模式堪称最佳实践的典范。
<br />
<br />
IPD的关键要素包括：跨部门的团队、结构化的流程、一流的子流程（如：项目计划与监控、数据管理、共用模块、技术管理、管道管理等）、基于平衡记分卡的考核体系、IT支持等。
<br />
<br />
CMM(<span style="color: #ff0000;">Capability Maturity
Model</span>)，英文直译的意思是&#8220;能力成熟度模型&#8221;。由卡内基.梅隆大学的软件工程协会(Software Engineering
Institute, 简称SEI)
提出并完善，目的是通过一个合理的体系模型来对软件组织开发能力进行合理有效的评估，帮助软件组织在模型实施的过程中提高软件过程管理能力，降低软件系统
开发风险，在预定的项目周期和预算内开发出高质量的软件产品。 <br />
<br />
CMM一共分为5级，1级最低，5级最高，3级是一个比较重要的分界线
<img src ="http://www.blogjava.net/leweslove/aggbug/257709.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leweslove/" target="_blank">leweslove</a> 2009-03-04 10:33 <a href="http://www.blogjava.net/leweslove/articles/257709.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>什么是CSS hack</title><link>http://www.blogjava.net/leweslove/articles/253173.html</link><dc:creator>leweslove</dc:creator><author>leweslove</author><pubDate>Wed, 04 Feb 2009 01:22:00 GMT</pubDate><guid>http://www.blogjava.net/leweslove/articles/253173.html</guid><wfw:comment>http://www.blogjava.net/leweslove/comments/253173.html</wfw:comment><comments>http://www.blogjava.net/leweslove/articles/253173.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leweslove/comments/commentRss/253173.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leweslove/services/trackbacks/253173.html</trackback:ping><description><![CDATA[什么是CSS hack
<p>　　由于不同的浏览器，比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等，对CSS的解析认识不一样，因此会导致生成的页面效果不一样，得不到我们所需要的页面效果。</p>
<p>　　这个时候我们就需要针对不同的浏览器去写不同的CSS，让它能够同时兼容不同的浏览器，能在不同的浏览器中也能得到我们想要的页面效果。</p>
<p>　　这个针对不同的浏览器写不同的CSS code的过程，就叫CSS hack,也叫写CSS hack。</p>
<p>　　CSS Hack的原理是什么<br />
由于不同的浏览器对CSS的支持及解析结果不一样，还由于CSS中的优先级的关系。我们就可以根据这个来针对不同的浏览器来写不同的CSS。</p>
<p>　　比如IE6能识别下划线_和星号*，IE7能识别星号*，当不能识别下划线_，而firefox两个都不能认识。等等</p>
<p>　　　书写顺序，一般是将识别能力强的浏览器的CSS写在后面。下面如何写里面说得更详细些。</p>
<p>　　如何写CSS Hack<br />
比如要分辨IE6和firefox两种浏览器，可以这样写： </p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #800000;">　　&lt;style&gt;&nbsp;&nbsp;<br />
div</span><span style="color: #000000;">{</span><span style="color: #ff0000;">&nbsp;&nbsp;<br />
&nbsp;&nbsp;　　&nbsp;&nbsp;background</span><span style="color: #000000;">:</span><span style="color: #0000ff;">green</span><span style="color: #000000;">;</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;for&nbsp;firefox&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #ff0000;">&nbsp;&nbsp;<br />
&nbsp;　　&nbsp;&nbsp;&nbsp;*background</span><span style="color: #000000;">:</span><span style="color: #0000ff;">red</span><span style="color: #000000;">;</span><span style="color: #ff0000;">&nbsp;&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;for&nbsp;IE6&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #ff0000;">&nbsp;&nbsp;<br />
</span><span style="color: #000000;">}</span><span style="color: #800000;">&nbsp;&nbsp;<br />
&lt;/style&gt; <br />
</span><span style="color: #800000;">&nbsp;&nbsp;&nbsp; &lt;div&gt;我在IE6中看到是红色的，在firefox中看到是绿色的。&lt;/div&gt;&nbsp;</span><span style="color: #800000;">&nbsp; </span></div>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #800000;">&nbsp;&nbsp;&nbsp; <br />
&lt;style&gt; <br />
&nbsp;&nbsp;&nbsp; div</span><span style="color: #000000;">{</span><span style="color: #ff0000;">&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; background</span><span style="color: #000000;">:</span><span style="color: #0000ff;">green</span><span style="color: #000000;">;</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;for&nbsp;firefox&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #ff0000;">&nbsp;&nbsp;　　<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *background</span><span style="color: #000000;">:</span><span style="color: #0000ff;">red</span><span style="color: #000000;">;</span><span style="color: #ff0000;">&nbsp;&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;for&nbsp;IE6&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #ff0000;"> <br />
&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">}<br />
&nbsp; &nbsp;</span><span style="color: #800000;"> &lt;/style&gt; <br />
&nbsp;&nbsp;&nbsp; &lt;div&gt;我在IE6中看到是红色的，在firefox中看到是绿色的。&lt;/div&gt;</span></div>
<p>&nbsp;</p>
<p>　　解释一下：</p>
<p>　　上面的css在firefox中，它是认识不了后面的那个带星号*的东东是什么的，于是将它过滤掉，不予理睬，解析得到的结果是:div{background:green},于是理所当然这个div的背景是绿色的。</p>
<p>　　在IE6中呢，它两个background都能识别出来，它解析得到的结果是:div{background:green;background:red;},于是根据优先级别，处在后面的red的优先级高，于是当然这个div的背景颜色就是红色的了。</p>
<p>　　CSS hack:区分IE6，IE7，firefox区别不同浏览器，CSS hack写法：</p>
<p>　　区<span style="color: #ff0000;"><span style="color: #040000;">别IE6与F</span></span>F：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #ff0000;"> <span style="background-color: yellow;">background:orange;*background:blue;</span></span></p>
<p>　　区别IE6与IE7：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #ff0000;"><span style="background-color: yellow;">background:green !important;background:blue;</span></span></p>
<p>　　区别IE7与FF：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #ff0000;"><span style="background-color: yellow;">background:orange; *background:green;</span></span></p>
<p>　　区别FF，IE7，IE6：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="background-color: yellow;"><span style="color: #ff0000;">background:orange;*background:green !important;*background:blue;</span></span></p>
<p>　　注：</p>
<p><strong><span style="background-color: yellow;"><span style="color: #ff0000;">&nbsp;&nbsp;&nbsp; IE都能识别*;标准浏览器(如FF)不能识别*；<br />
IE6能识别*，但不能识别 !important,<br />
IE7能识别*，也能识别!important;<br />
FF不能识别*，但能识别!important;</span></span></strong></p>
<p>&nbsp;　　IE6 IE7 FF <br />
* &#8730; &#8730; &#215; <br />
!important &#215; &#8730; &#8730; </p>
<p>　　另外再补充一个，下划线"_",<br />
IE6支持下划线，IE7和firefox均不支持下划线。</p>
<p>　　于是大家还可以这样来区分IE6，IE7，firefox<br />
: background:orange;*background:green;_background:blue; </p>
<p>　　注：不管是什么方法，书写的顺序都是firefox的写在前面，IE7的写在中间，IE6的写在最后面。</p>
<p>　　附：CSS的各种浏览器兼容一栏表</p>
<p><img src="http://www.blogjava.net/images/blogjava_net/leweslove/120NA3513F1SR.gif" alt="" border="0" /><br />
</p>
<img src ="http://www.blogjava.net/leweslove/aggbug/253173.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leweslove/" target="_blank">leweslove</a> 2009-02-04 09:22 <a href="http://www.blogjava.net/leweslove/articles/253173.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>6月30号的一些杂碎</title><link>http://www.blogjava.net/leweslove/articles/211760.html</link><dc:creator>leweslove</dc:creator><author>leweslove</author><pubDate>Mon, 30 Jun 2008 13:55:00 GMT</pubDate><guid>http://www.blogjava.net/leweslove/articles/211760.html</guid><wfw:comment>http://www.blogjava.net/leweslove/comments/211760.html</wfw:comment><comments>http://www.blogjava.net/leweslove/articles/211760.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leweslove/comments/commentRss/211760.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leweslove/services/trackbacks/211760.html</trackback:ping><description><![CDATA[1、<br />
通过get发放传递中文参数时会有乱码产生。避免此问题的方法一种是更改tomcat中设置。另一种是改get为post<br />
tomcat中应该修改配置文件server.xml中的编码设置为:utf-8或者GBK<br />
//代码<br />
&nbsp;&nbsp;&nbsp;
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">Connector&nbsp;</span><span style="color: #ff0000;">port</span><span style="color: #0000ff;">="8080"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxThreads</span><span style="color: #0000ff;">="150"</span><span style="color: #ff0000;">&nbsp;minSpareThreads</span><span style="color: #0000ff;">="25"</span><span style="color: #ff0000;">&nbsp;maxSpareThreads</span><span style="color: #0000ff;">="75"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enableLookups</span><span style="color: #0000ff;">="false"</span><span style="color: #ff0000;">&nbsp;redirectPort</span><span style="color: #0000ff;">="8443"</span><span style="color: #ff0000;">&nbsp;acceptCount</span><span style="color: #0000ff;">="100"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;debug</span><span style="color: #0000ff;">="0"</span><span style="color: #ff0000;">&nbsp;connectionTimeout</span><span style="color: #0000ff;">="20000"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disableUploadTimeout</span><span style="color: #0000ff;">="true"</span><span style="color: #ff0000;">&nbsp;URIEncoding</span><span style="color: #0000ff;">="UTF-8或GBK"</span><span style="color: #0000ff;">/&gt;</span></div>
<br />
2、<br />
解决下载附件时文件名中文乱码问题 需要在设置下载文件时把名字的编码改为"ISO8859-1"<br />
//代码<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">JspFileDownload&nbsp;jfd&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;JspFileDownload();<br />
jfd.setResponse(response);<br />
jfd.setDownType(</span><span style="color: #000000;">0</span><span style="color: #000000;">);<br />
jfd.setDisFileName(URLEncoder.encode(request.getParameter(</span><span style="color: #000000;">"</span><span style="color: #000000;">filename</span><span style="color: #000000;">"</span><span style="color: #000000;">),</span><span style="color: #000000;">"</span><span style="color: #000000;">ISO8859_1</span><span style="color: #000000;">"</span><span style="color: #000000;">));<br />
</span></div>
<br />
3、<br />
在一块&lt;span/&gt;中使鼠标移上之后便手指是在span块中加入<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">span&nbsp;</span><span style="color: #ff0000;">style</span><span style="color: #0000ff;">="cursor:hand"</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">span</span><span style="color: #0000ff;">&gt;</span></div>
使其变色为<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">span&nbsp;</span><span style="color: #ff0000;">style</span><span style="color: #0000ff;">="color:blue"</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">span</span><span style="color: #0000ff;">&gt;</span></div>
<br />
4、<br />
通过JS使页面跳转其中一个方式<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">window.location.href</span><span style="color: #000000;">=</span><span style="color: #000000;">""</span><span style="color: #000000;">;</span></div>
<br />
<br />
用JS打开一个新窗口<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">window.open(</span><span style="color: #000000;">"</span><span style="color: #000000;">地址</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">popupwin</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">height=</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">h</span><span style="color: #000000;">+</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;width=</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">w</span><span style="color: #000000;">+</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;top=</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">top</span><span style="color: #000000;">+</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;left=</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">left</span><span style="color: #000000;">+</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;toolbar=0,&nbsp;menubar=0,&nbsp;scrollbars=1,&nbsp;resizable=0,location=0,&nbsp;status=1</span><span style="color: #000000;">"</span><span style="color: #000000;">);</span></div>
<br />
<br />
强制刷新父页面并且关闭本窗口<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">window.opener.location.href</span><span style="color: #000000;">=</span><span style="color: #000000;">window.opener.location.href;<br />
window.close();</span></div>
<br />
<br />
5、<br />
servlet中的跳转页面<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">request.getRequestDispatcher(</span><span style="color: #000000;">"</span><span style="color: #000000;">地址</span><span style="color: #000000;">"</span><span style="color: #000000;">).forward(request,response);</span></div>
<br />
6、<br />
这是一个HQL查询方法<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;List</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">SysInfomation</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;findByUser(String&nbsp;user,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;pageCount,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;page)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;hql&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">from&nbsp;SysInfomation&nbsp;f&nbsp;where&nbsp;f.style&nbsp;=&nbsp;1&nbsp;and&nbsp;(f.fankuiren&nbsp;=&nbsp;'</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;user&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">'&nbsp;or&nbsp;f.shoujianren&nbsp;=&nbsp;'</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;user&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">"</span><span style="color: #000000;">')&nbsp;order&nbsp;by&nbsp;f.isread</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">super</span><span style="color: #000000;">.find(hql,&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">,&nbsp;pageCount,&nbsp;page);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<br />
<br />
<img src ="http://www.blogjava.net/leweslove/aggbug/211760.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leweslove/" target="_blank">leweslove</a> 2008-06-30 21:55 <a href="http://www.blogjava.net/leweslove/articles/211760.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>BIRT的图片问题。</title><link>http://www.blogjava.net/leweslove/articles/209026.html</link><dc:creator>leweslove</dc:creator><author>leweslove</author><pubDate>Wed, 18 Jun 2008 15:51:00 GMT</pubDate><guid>http://www.blogjava.net/leweslove/articles/209026.html</guid><wfw:comment>http://www.blogjava.net/leweslove/comments/209026.html</wfw:comment><comments>http://www.blogjava.net/leweslove/articles/209026.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leweslove/comments/commentRss/209026.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leweslove/services/trackbacks/209026.html</trackback:ping><description><![CDATA[当我做完使用API Servlet部署能够接受参数以后 发现一个新的问题又来了，就是在报表中生成的<span style="color: red;">图片和chart都是以链接本地地址</span>存在的，那要是放在服务器上，别的机子访问时会出现图片不可用的问题。经过查一系列资料终于把问题解决了。具体原理是什么其实我也不太了解，BIRT的API我还是没怎么好好读，先把代码贴到这里再说吧，具体用的方式前面已经写过一个详细的文档了。<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;&nbsp;1</span>&nbsp;<span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;cn.com.maxtech.fileupload;<br />
</span><span style="color: #008080;">&nbsp;&nbsp;2</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;&nbsp;3</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.io.IOException;<br />
</span><span style="color: #008080;">&nbsp;&nbsp;4</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.util.Enumeration;<br />
</span><span style="color: #008080;">&nbsp;&nbsp;5</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.util.HashMap;<br />
</span><span style="color: #008080;">&nbsp;&nbsp;6</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.util.Map;<br />
</span><span style="color: #008080;">&nbsp;&nbsp;7</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.util.logging.Level;<br />
</span><span style="color: #008080;">&nbsp;&nbsp;8</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.util.logging.Logger;<br />
</span><span style="color: #008080;">&nbsp;&nbsp;9</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;10</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.servlet.ServletContext;<br />
</span><span style="color: #008080;">&nbsp;11</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.servlet.ServletException;<br />
</span><span style="color: #008080;">&nbsp;12</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.servlet.http.HttpServlet;<br />
</span><span style="color: #008080;">&nbsp;13</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.servlet.http.HttpServletRequest;<br />
</span><span style="color: #008080;">&nbsp;14</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.servlet.http.HttpServletResponse;<br />
</span><span style="color: #008080;">&nbsp;15</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;16</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;17</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.eclipse.birt.report.engine.api.EngineConstants;<br />
</span><span style="color: #008080;">&nbsp;18</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;19</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.eclipse.birt.report.engine.api.HTMLRenderContext;<br />
</span><span style="color: #008080;">&nbsp;20</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.eclipse.birt.report.engine.api.HTMLRenderOption;<br />
</span><span style="color: #008080;">&nbsp;21</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;22</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.eclipse.birt.report.engine.api.EngineConfig;<br />
</span><span style="color: #008080;">&nbsp;23</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.eclipse.birt.report.engine.api.HTMLActionHandler;<br />
</span><span style="color: #008080;">&nbsp;24</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.eclipse.birt.report.engine.api.HTMLEmitterConfig;<br />
</span><span style="color: #008080;">&nbsp;25</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.eclipse.birt.report.engine.api.HTMLServerImageHandler;<br />
</span><span style="color: #008080;">&nbsp;26</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.eclipse.birt.report.engine.api.IReportEngine;<br />
</span><span style="color: #008080;">&nbsp;27</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.eclipse.birt.report.engine.api.IReportRunnable;<br />
</span><span style="color: #008080;">&nbsp;28</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.eclipse.birt.report.engine.api.IRunAndRenderTask;<br />
</span><span style="color: #008080;">&nbsp;29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;30</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;31</span>&nbsp;<span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;WebReport&nbsp;</span><span style="color: #0000ff;">extends</span><span style="color: #000000;">&nbsp;HttpServlet&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;32</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;33</span>&nbsp;<span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;34</span>&nbsp;<span style="color: #008000;">&nbsp;*&nbsp;<br />
</span><span style="color: #008080;">&nbsp;35</span>&nbsp;<span style="color: #008000;">&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;36</span>&nbsp;<span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">long</span><span style="color: #000000;">&nbsp;serialVersionUID&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1L</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">&nbsp;37</span>&nbsp;<span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;38</span>&nbsp;<span style="color: #008000;">&nbsp;*&nbsp;Constructor&nbsp;of&nbsp;the&nbsp;object.<br />
</span><span style="color: #008080;">&nbsp;39</span>&nbsp;<span style="color: #008000;">&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;40</span>&nbsp;<span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;IReportEngine&nbsp;birtReportEngine&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">&nbsp;41</span>&nbsp;<span style="color: #0000ff;">protected</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;Logger&nbsp;logger&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;Logger.getLogger(&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">org.eclipse.birt</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;);<br />
</span><span style="color: #008080;">&nbsp;42</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;43</span>&nbsp;<span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;WebReport()&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;44</span>&nbsp;<span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">super</span><span style="color: #000000;">();<br />
</span><span style="color: #008080;">&nbsp;45</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">&nbsp;46</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;47</span>&nbsp;<span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;48</span>&nbsp;<span style="color: #008000;">&nbsp;*&nbsp;Destruction&nbsp;of&nbsp;the&nbsp;servlet.&nbsp;<br />
</span><span style="color: #008080;">&nbsp;49</span>&nbsp;<span style="color: #008000;">&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;50</span>&nbsp;<span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;destroy()&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;51</span>&nbsp;<span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">super</span><span style="color: #000000;">.destroy();&nbsp;<br />
</span><span style="color: #008080;">&nbsp;52</span>&nbsp;<span style="color: #000000;">&nbsp;BirtEngine.destroyBirtEngine();<br />
</span><span style="color: #008080;">&nbsp;53</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">&nbsp;54</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;55</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;56</span>&nbsp;<span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;57</span>&nbsp;<span style="color: #008000;">&nbsp;*&nbsp;The&nbsp;doGet&nbsp;method&nbsp;of&nbsp;the&nbsp;servlet.&nbsp;<br />
</span><span style="color: #008080;">&nbsp;58</span>&nbsp;<span style="color: #008000;">&nbsp;*<br />
</span><span style="color: #008080;">&nbsp;59</span>&nbsp;<span style="color: #008000;">&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;60</span>&nbsp;<span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;doGet(HttpServletRequest&nbsp;req,&nbsp;HttpServletResponse&nbsp;resp)<br />
</span><span style="color: #008080;">&nbsp;61</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;ServletException,&nbsp;IOException&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;62</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;63</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;Map&nbsp;m&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;HashMap();<br />
</span><span style="color: #008080;">&nbsp;64</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;Enumeration&nbsp;names&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;req.getParameterNames();<br />
</span><span style="color: #008080;">&nbsp;65</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">&nbsp;(names.hasMoreElements())&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;66</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">(String)names.nextElement();<br />
</span><span style="color: #008080;">&nbsp;67</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;value&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;req.getParameter(name);<br />
</span><span style="color: #008080;">&nbsp;68</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(name.trim().equals(</span><span style="color: #000000;">"</span><span style="color: #000000;">ReportName</span><span style="color: #000000;">"</span><span style="color: #000000;">)&nbsp;</span><span style="color: #000000;">||</span><span style="color: #000000;">&nbsp;name.trim().equals(</span><span style="color: #000000;">"</span><span style="color: #000000;">action</span><span style="color: #000000;">"</span><span style="color: #000000;">)&nbsp;</span><span style="color: #000000;">||</span><span style="color: #000000;">&nbsp;value&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">||</span><span style="color: #000000;">&nbsp;value.trim().equals(</span><span style="color: #000000;">""</span><span style="color: #000000;">))&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;69</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;70</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;71</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m.put(name,&nbsp;value);<br />
</span><span style="color: #008080;">&nbsp;72</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(name&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">---&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">&nbsp;73</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(m.get(name));<br />
</span><span style="color: #008080;">&nbsp;74</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">&nbsp;75</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;76</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">&nbsp;77</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;78</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;ServletContext&nbsp;sc&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;req.getSession().getServletContext();<br />
</span><span style="color: #008080;">&nbsp;79</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;80</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.birtReportEngine&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;BirtEngine.getBirtEngine(sc);<br />
</span><span style="color: #008080;">&nbsp;81</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;EngineConfig&nbsp;config&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;birtReportEngine.getConfig();<br />
</span><span style="color: #008080;">&nbsp;82</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;HTMLEmitterConfig&nbsp;emitterConfig&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;HTMLEmitterConfig(&nbsp;);&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;83</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;emitterConfig.setActionHandler(&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;HTMLActionHandler(&nbsp;)&nbsp;);&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;84</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;HTMLServerImageHandler&nbsp;imageHandler&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;HTMLServerImageHandler(&nbsp;);&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;85</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;emitterConfig.setImageHandler(&nbsp;imageHandler&nbsp;);&nbsp;<br />
</span><span style="color: #008080;">&nbsp;86</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;87</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;config.getEmitterConfigs(&nbsp;).put(&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">html</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;emitterConfig&nbsp;);<br />
</span><span style="color: #008080;">&nbsp;88</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;89</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;90</span>&nbsp;<span style="color: #000000;">&nbsp;resp.setContentType(</span><span style="color: #000000;">"</span><span style="color: #000000;">text/html</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">&nbsp;91</span>&nbsp;<span style="color: #000000;">&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">resp.setContentType(&nbsp;"application/pdf"&nbsp;);&nbsp;<br />
</span><span style="color: #008080;">&nbsp;92</span>&nbsp;<span style="color: #008000;">&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">resp.setHeader&nbsp;("Content-Disposition","inline;&nbsp;filename=test.pdf");&nbsp;&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;93</span>&nbsp;<span style="color: #000000;">&nbsp;String&nbsp;reportPath&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;req.getParameter(</span><span style="color: #000000;">"</span><span style="color: #000000;">reportPath</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">&nbsp;94</span>&nbsp;<span style="color: #000000;">&nbsp;String&nbsp;reportName&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;req.getParameter(</span><span style="color: #000000;">"</span><span style="color: #000000;">ReportName</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">&nbsp;95</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;96</span>&nbsp;<span style="color: #000000;">&nbsp;<br />
</span><span style="color: #008080;">&nbsp;97</span>&nbsp;<span style="color: #000000;">&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">setup&nbsp;image&nbsp;directory</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;98</span>&nbsp;<span style="color: #000000;">&nbsp;HTMLRenderContext&nbsp;renderContext&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;HTMLRenderContext();<br />
</span><span style="color: #008080;">&nbsp;99</span>&nbsp;<span style="color: #000000;">&nbsp;renderContext.setBaseImageURL(req.getContextPath()</span><span style="color: #000000;">+</span><span style="color: #000000;">"</span><span style="color: #000000;">/images</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">100</span>&nbsp;<span style="color: #000000;">&nbsp;renderContext.setImageDirectory(sc.getRealPath(</span><span style="color: #000000;">"</span><span style="color: #000000;">/images</span><span style="color: #000000;">"</span><span style="color: #000000;">));<br />
</span><span style="color: #008080;">101</span>&nbsp;<span style="color: #000000;">&nbsp;<br />
</span><span style="color: #008080;">102</span>&nbsp;<span style="color: #000000;">&nbsp;renderContext.setSupportedImageFormats(</span><span style="color: #000000;">"</span><span style="color: #000000;">JPG;PNG;BMP;SVG</span><span style="color: #000000;">"</span><span style="color: #000000;">);&nbsp;<br />
</span><span style="color: #008080;">103</span>&nbsp;<span style="color: #000000;">&nbsp;<br />
</span><span style="color: #008080;">104</span>&nbsp;<span style="color: #000000;">&nbsp;logger.log(&nbsp;Level.FINE,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">image&nbsp;directory&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;sc.getRealPath(</span><span style="color: #000000;">"</span><span style="color: #000000;">/images</span><span style="color: #000000;">"</span><span style="color: #000000;">));&nbsp;&nbsp;<br />
</span><span style="color: #008080;">105</span>&nbsp;<span style="color: #000000;">&nbsp;System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">stdout&nbsp;image&nbsp;directory&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;sc.getRealPath(</span><span style="color: #000000;">"</span><span style="color: #000000;">/images</span><span style="color: #000000;">"</span><span style="color: #000000;">));<br />
</span><span style="color: #008080;">106</span>&nbsp;<span style="color: #000000;">&nbsp;System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">stdout&nbsp;image&nbsp;directory&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;renderContext.getBaseImageURL());<br />
</span><span style="color: #008080;">107</span>&nbsp;<span style="color: #000000;">&nbsp;<br />
</span><span style="color: #008080;">108</span>&nbsp;<span style="color: #000000;">&nbsp;HashMap</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">String,&nbsp;HTMLRenderContext</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;contextMap&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;HashMap</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">String,&nbsp;HTMLRenderContext</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">();<br />
</span><span style="color: #008080;">109</span>&nbsp;<span style="color: #000000;">&nbsp;contextMap.put(&nbsp;EngineConstants.APPCONTEXT_HTML_RENDER_CONTEXT,&nbsp;renderContext&nbsp;);<br />
</span><span style="color: #008080;">110</span>&nbsp;<span style="color: #000000;">&nbsp;<br />
</span><span style="color: #008080;">111</span>&nbsp;<span style="color: #000000;">&nbsp;IReportRunnable&nbsp;design;<br />
</span><span style="color: #008080;">112</span>&nbsp;<span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">113</span>&nbsp;<span style="color: #000000;">&nbsp;{<br />
</span><span style="color: #008080;">114</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">Open&nbsp;report&nbsp;design</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">115</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;design&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;birtReportEngine.openReportDesign(&nbsp;sc.getRealPath(</span><span style="color: #000000;">"</span><span style="color: #000000;">/upload/baobiao/</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;reportPath)</span><span style="color: #000000;">+</span><span style="color: #000000;">"</span><span style="color: #000000;">/</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">reportName&nbsp;);<br />
</span><span style="color: #008080;">116</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">create&nbsp;task&nbsp;to&nbsp;run&nbsp;and&nbsp;render&nbsp;report</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">117</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;IRunAndRenderTask&nbsp;task&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;birtReportEngine.createRunAndRenderTask(&nbsp;design&nbsp;);&nbsp;&nbsp;<br />
</span><span style="color: #008080;">118</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;task.setAppContext(&nbsp;contextMap&nbsp;);<br />
</span><span style="color: #008080;">119</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;<br />
</span><span style="color: #008080;">120</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">set&nbsp;output&nbsp;options</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">121</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;HTMLRenderOption&nbsp;options&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;HTMLRenderOption();<br />
</span><span style="color: #008080;">122</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;options.setOutputFormat(HTMLRenderOption.OUTPUT_FORMAT_HTML);<br />
</span><span style="color: #008080;">123</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">options.setOutputFormat(HTMLRenderOption.OUTPUT_FORMAT_PDF);</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">124</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;options.setOutputStream(resp.getOutputStream());<br />
</span><span style="color: #008080;">125</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;task.setRenderOption(options);<br />
</span><span style="color: #008080;">126</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;<br />
</span><span style="color: #008080;">127</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">run&nbsp;report</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">128</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;task.setParameterValues(m);<br />
</span><span style="color: #008080;">129</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;task.run();<br />
</span><span style="color: #008080;">130</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;task.close();<br />
</span><span style="color: #008080;">131</span>&nbsp;<span style="color: #000000;">&nbsp;}</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(Exception&nbsp;e){<br />
</span><span style="color: #008080;">132</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;<br />
</span><span style="color: #008080;">133</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;e.printStackTrace();<br />
</span><span style="color: #008080;">134</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #0000ff;">throw</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;ServletException(&nbsp;e&nbsp;);<br />
</span><span style="color: #008080;">135</span>&nbsp;<span style="color: #000000;">&nbsp;}<br />
</span><span style="color: #008080;">136</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">137</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">138</span>&nbsp;<span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">139</span>&nbsp;<span style="color: #008000;">&nbsp;*&nbsp;The&nbsp;doPost&nbsp;method&nbsp;of&nbsp;the&nbsp;servlet.&nbsp;<br />
</span><span style="color: #008080;">140</span>&nbsp;<span style="color: #008000;">&nbsp;*<br />
</span><span style="color: #008080;">141</span>&nbsp;<span style="color: #008000;">&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">142</span>&nbsp;<span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;doPost(HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)<br />
</span><span style="color: #008080;">143</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;ServletException,&nbsp;IOException&nbsp;{<br />
</span><span style="color: #008080;">144</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">145</span>&nbsp;<span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.doGet(request,&nbsp;response);<br />
</span><span style="color: #008080;">146</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">147</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">148</span>&nbsp;<span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">149</span>&nbsp;<span style="color: #008000;">&nbsp;*&nbsp;Initialization&nbsp;of&nbsp;the&nbsp;servlet.&nbsp;<br />
</span><span style="color: #008080;">150</span>&nbsp;<span style="color: #008000;">&nbsp;*<br />
</span><span style="color: #008080;">151</span>&nbsp;<span style="color: #008000;">&nbsp;*&nbsp;</span><span style="color: #808080;">@throws</span><span style="color: #008000;">&nbsp;ServletException&nbsp;if&nbsp;an&nbsp;error&nbsp;occure<br />
</span><span style="color: #008080;">152</span>&nbsp;<span style="color: #008000;">&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">153</span>&nbsp;<span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;init()&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;ServletException&nbsp;{<br />
</span><span style="color: #008080;">154</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">155</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;BirtEngine.initBirtConfig();<br />
</span><span style="color: #008080;">156</span>&nbsp;<span style="color: #000000;">&nbsp;<br />
</span><span style="color: #008080;">157</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">158</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">159</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">160</span>&nbsp;</div>
<br />
<br />
<img src ="http://www.blogjava.net/leweslove/aggbug/209026.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leweslove/" target="_blank">leweslove</a> 2008-06-18 23:51 <a href="http://www.blogjava.net/leweslove/articles/209026.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>BIRT使用API进行简单部署</title><link>http://www.blogjava.net/leweslove/articles/leweslove.html</link><dc:creator>leweslove</dc:creator><author>leweslove</author><pubDate>Fri, 06 Jun 2008 15:08:00 GMT</pubDate><guid>http://www.blogjava.net/leweslove/articles/leweslove.html</guid><wfw:comment>http://www.blogjava.net/leweslove/comments/206429.html</wfw:comment><comments>http://www.blogjava.net/leweslove/articles/leweslove.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leweslove/comments/commentRss/206429.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leweslove/services/trackbacks/206429.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在网上查了下BIRT的文章，不是很多。而且讲述的也不是十分全面。还是得自己琢磨啊。刚实验好，贴上来分享一下共同交流。希望也能帮助到对API部署还困惑的人。做这个纯粹是看官网上的例子，还有好多疑点，希望高手能给我解答下。首先，这个API部署其实在官网上是叫"Servlet Example"。我没有在网上找到中文的这个教程，所以我就以我这贫乏的英语水品来自己理解了官网上的步骤。下面直接开始...&nbsp;&nbsp;<a href='http://www.blogjava.net/leweslove/articles/leweslove.html'>阅读全文</a><img src ="http://www.blogjava.net/leweslove/aggbug/206429.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leweslove/" target="_blank">leweslove</a> 2008-06-06 23:08 <a href="http://www.blogjava.net/leweslove/articles/leweslove.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>