﻿<?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-在路上</title><link>http://www.blogjava.net/totobacoo/</link><description>姿势就是力量</description><language>zh-cn</language><lastBuildDate>Tue, 28 Apr 2026 19:01:17 GMT</lastBuildDate><pubDate>Tue, 28 Apr 2026 19:01:17 GMT</pubDate><ttl>60</ttl><item><title>struts2项目中静态html在firefox下乱码的解决</title><link>http://www.blogjava.net/totobacoo/archive/2007/09/23/147572.html</link><dc:creator>Samuel.Mo</dc:creator><author>Samuel.Mo</author><pubDate>Sun, 23 Sep 2007 07:10:00 GMT</pubDate><guid>http://www.blogjava.net/totobacoo/archive/2007/09/23/147572.html</guid><wfw:comment>http://www.blogjava.net/totobacoo/comments/147572.html</wfw:comment><comments>http://www.blogjava.net/totobacoo/archive/2007/09/23/147572.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/totobacoo/comments/commentRss/147572.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/totobacoo/services/trackbacks/147572.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp; struts2 项目，通常开发过程中，一些简单的表单文件或者静态描述页面，能不走action流程就可以用html来做，可以一定程度上减少 struts2 的流程开销，如果前端有apache的话，也可以进一步分摊业务服务器压力。按照这样的原则，一个系统做下来，难免有一些或者很多的静态html文件。&nbsp;<br />
&nbsp;&nbsp; 在我的一个工程里面，所有文件的编码格式均为 utf-8，包括这些静态 html 文件。 在 IE 下访问，页面显示完全没有问题。用 httplook 查看 http 头信息，也可以看到服务器回送的页面字符集编码为正常的 utf-8。 但是用 firefox 浏览的时候，所有的动态页面(*.do)正常，唯独 html 页面全部乱码，在浏览器菜单内手动选择页面编码格式为 utf-8，则可以正常显示中文了。虽然可以暂时解决，但不可能假设所有的用户每次浏览这些静态html的时候，都会手动去选择编码格式。这里必须要有一个治本的办法。&nbsp;<br />
&nbsp;&nbsp;&nbsp; 在firefox内乱码的html页面上，右键&#8220;查看页面信息&#8221;，可以看到http头信息内的编码格式为 gb2312，而页面meta信息内指定的是utf-8。即firefox是按gb2312的缺省行为来解析utf-8编码的页面，当然会乱码。问题就出在，firefox并不会像IE那样可以根据meta信息覆盖服务器回送的http头信息，它是严格按照http协议规范的行为方式：按照http头指定的编码格式来解析页面。也就是说，如果http头回送里面指定了页面的编码格式，firefox会忽略meta信息的字符集指定。而IE则以meta优先。<br />
&nbsp;&nbsp;&nbsp;&nbsp;为什么我的服务器输出html页面的时候，http头会回送gb2312的编码集？我在 web.xml 内加上 SetCharacterEncodingFilter，强制所有输出字符集为 utf-8，问题依旧。因为项目做了 SEO，用到了 UrlRewriterFilter，便怀疑是这个 filter 在做 url forward 的时候，改变了输出字符集，可是去掉这个 filter 后，问题还是存在。 于是再考察struts2的 FilterDispatcher，这是一个全局的派发过滤器，struts2的核心派发控制器。 最初的配置如下：<br />
&nbsp;&nbsp;&nbsp; </p>

<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&lt;</span><span style="color: #000000">filter</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000">struts2</span><span style="color: #000000">&lt;/</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #0000ff">class</span><span style="color: #000000">&gt;</span><span style="color: #000000">org.apache.struts2.dispatcher.FilterDispatcher</span><span style="color: #000000">&lt;/</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #0000ff">class</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">filter</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #000000">mapping</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000">struts2</span><span style="color: #000000">&lt;/</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img id="Codehighlighter1_205_316_Open_Image" onclick="this.style.display='none'; Codehighlighter1_205_316_Open_Text.style.display='none'; Codehighlighter1_205_316_Closed_Image.style.display='inline'; Codehighlighter1_205_316_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_205_316_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_205_316_Closed_Text.style.display='none'; Codehighlighter1_205_316_Open_Image.style.display='inline'; Codehighlighter1_205_316_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">url</span><span style="color: #000000">-</span><span style="color: #000000">pattern</span><span style="color: #000000">&gt;</span><span id="Codehighlighter1_205_316_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**/</span><span id="Codehighlighter1_205_316_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">&lt;/url-pattern&gt;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;dispatcher&gt;REQUEST&lt;/dispatcher&gt;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;dispatcher&gt;FORWARD&lt;/dispatcher&gt;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&lt;/filter-mapping&gt;</span></div>
</span><br />
url-pattern 是 /* 的全范围映射，当然也包括了 html 后缀文件。这种情况下，项目中任何一个请求，会经过3次filter，首先是SetCharacterFilter、然后是 UrlRewriterFilter、最后是 FilterDispatcher，之前已经排除了 UrlRewriterFilter 的问题。于是修改 FilterDispatcher 的 url-pattern 为 *.do，即只过滤 *.do 的请求，其他请求比如 *.html，则不会经过这个 filter。&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;这样修改后，一切都正常了。<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;当 url-pattern 为 /* 时，所有请求包括对静态资源文件的请求，都会有FilterDispatcher来接管派发。如果请求类型为静态资源，则 FilterDispatcher 不会调用 action 处理模块来接收这个请求，而是简单的回送静态资源。在这个回送过程中，FilterDispatcher 做的工作如下：<br />
<br />
FilterDispatcher.java<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_124_2742_Open_Image" onclick="this.style.display='none'; Codehighlighter1_124_2742_Open_Text.style.display='none'; Codehighlighter1_124_2742_Closed_Image.style.display='inline'; Codehighlighter1_124_2742_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_124_2742_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_124_2742_Closed_Text.style.display='none'; Codehighlighter1_124_2742_Open_Image.style.display='inline'; Codehighlighter1_124_2742_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /><span style="color: #0000ff">protected</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;findStaticResource(String&nbsp;name,&nbsp;HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;IOException&nbsp;</span><span id="Codehighlighter1_124_2742_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_124_2742_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_164_2673_Open_Image" onclick="this.style.display='none'; Codehighlighter1_164_2673_Open_Text.style.display='none'; Codehighlighter1_164_2673_Closed_Image.style.display='inline'; Codehighlighter1_164_2673_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_164_2673_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_164_2673_Closed_Text.style.display='none'; Codehighlighter1_164_2673_Open_Image.style.display='inline'; Codehighlighter1_164_2673_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #000000">!</span><span style="color: #000000">name.endsWith(</span><span style="color: #000000">"</span><span style="color: #000000">.class</span><span style="color: #000000">"</span><span style="color: #000000">))&nbsp;</span><span id="Codehighlighter1_164_2673_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_164_2673_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_217_2663_Open_Image" onclick="this.style.display='none'; Codehighlighter1_217_2663_Open_Text.style.display='none'; Codehighlighter1_217_2663_Closed_Image.style.display='inline'; Codehighlighter1_217_2663_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_217_2663_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_217_2663_Closed_Text.style.display='none'; Codehighlighter1_217_2663_Open_Image.style.display='inline'; Codehighlighter1_217_2663_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(String&nbsp;pathPrefix&nbsp;:&nbsp;pathPrefixes)&nbsp;</span><span id="Codehighlighter1_217_2663_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_217_2663_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputStream&nbsp;is&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;findInputStream(name,&nbsp;pathPrefix);<br />
<img id="Codehighlighter1_319_2649_Open_Image" onclick="this.style.display='none'; Codehighlighter1_319_2649_Open_Text.style.display='none'; Codehighlighter1_319_2649_Closed_Image.style.display='inline'; Codehighlighter1_319_2649_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_319_2649_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_319_2649_Closed_Text.style.display='none'; Codehighlighter1_319_2649_Open_Image.style.display='inline'; Codehighlighter1_319_2649_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(is&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 id="Codehighlighter1_319_2649_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_319_2649_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calendar&nbsp;cal&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Calendar.getInstance();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;check&nbsp;for&nbsp;if-modified-since,&nbsp;prior&nbsp;to&nbsp;any&nbsp;other&nbsp;headers</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;ifModifiedSince&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
<img id="Codehighlighter1_550_655_Open_Image" onclick="this.style.display='none'; Codehighlighter1_550_655_Open_Text.style.display='none'; Codehighlighter1_550_655_Closed_Image.style.display='inline'; Codehighlighter1_550_655_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_550_655_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_550_655_Closed_Text.style.display='none'; Codehighlighter1_550_655_Open_Image.style.display='inline'; Codehighlighter1_550_655_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_550_655_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_550_655_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ifModifiedSince&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;request.getDateHeader(</span><span style="color: #000000">"</span><span style="color: #000000">If-Modified-Since</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img id="Codehighlighter1_677_832_Open_Image" onclick="this.style.display='none'; Codehighlighter1_677_832_Open_Text.style.display='none'; Codehighlighter1_677_832_Closed_Image.style.display='inline'; Codehighlighter1_677_832_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_677_832_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_677_832_Closed_Text.style.display='none'; Codehighlighter1_677_832_Open_Image.style.display='inline'; Codehighlighter1_677_832_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(Exception&nbsp;e)&nbsp;</span><span id="Codehighlighter1_677_832_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_677_832_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LOG.warn(</span><span style="color: #000000">"</span><span style="color: #000000">Invalid&nbsp;If-Modified-Since&nbsp;header&nbsp;value:&nbsp;'</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;request.getHeader(</span><span style="color: #000000">"</span><span style="color: #000000">If-Modified-Since</span><span style="color: #000000">"</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">',&nbsp;ignoring</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;lastModifiedMillis&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;lastModifiedCal.getTimeInMillis();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;now&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;cal.getTimeInMillis();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cal.add(Calendar.DAY_OF_MONTH,&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;expires&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;cal.getTimeInMillis();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_1153_1429_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1153_1429_Open_Text.style.display='none'; Codehighlighter1_1153_1429_Closed_Image.style.display='inline'; Codehighlighter1_1153_1429_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1153_1429_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1153_1429_Closed_Text.style.display='none'; Codehighlighter1_1153_1429_Open_Image.style.display='inline'; Codehighlighter1_1153_1429_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(ifModifiedSince&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;ifModifiedSince&nbsp;</span><span style="color: #000000">&lt;=</span><span style="color: #000000">&nbsp;lastModifiedMillis)&nbsp;</span><span id="Codehighlighter1_1153_1429_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1153_1429_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;not&nbsp;modified,&nbsp;content&nbsp;is&nbsp;not&nbsp;sent&nbsp;-&nbsp;only&nbsp;basic&nbsp;headers&nbsp;and&nbsp;status&nbsp;SC_NOT_MODIFIED</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setDateHeader(</span><span style="color: #000000">"</span><span style="color: #000000">Expires</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;expires);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is.close();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;set&nbsp;the&nbsp;content-type&nbsp;header</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;contentType&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;getContentType(name);<br />
<img id="Codehighlighter1_1605_1689_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1605_1689_Open_Text.style.display='none'; Codehighlighter1_1605_1689_Closed_Image.style.display='inline'; Codehighlighter1_1605_1689_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1605_1689_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1605_1689_Closed_Text.style.display='none'; Codehighlighter1_1605_1689_Open_Image.style.display='inline'; Codehighlighter1_1605_1689_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(contentType&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 id="Codehighlighter1_1605_1689_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1605_1689_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setContentType(contentType);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_1741_2195_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1741_2195_Open_Text.style.display='none'; Codehighlighter1_1741_2195_Closed_Image.style.display='inline'; Codehighlighter1_1741_2195_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1741_2195_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1741_2195_Closed_Text.style.display='none'; Codehighlighter1_1741_2195_Open_Image.style.display='inline'; Codehighlighter1_1741_2195_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(serveStaticBrowserCache)&nbsp;</span><span id="Codehighlighter1_1741_2195_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1741_2195_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;set&nbsp;heading&nbsp;information&nbsp;for&nbsp;caching&nbsp;static&nbsp;content</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setDateHeader(</span><span style="color: #000000">"</span><span style="color: #000000">Date</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;now);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setDateHeader(</span><span style="color: #000000">"</span><span style="color: #000000">Expires</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;expires);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setDateHeader(</span><span style="color: #000000">"</span><span style="color: #000000">Retry-After</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;expires);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setHeader(</span><span style="color: #000000">"</span><span style="color: #000000">Cache-Control</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">public</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setDateHeader(</span><span style="color: #000000">"</span><span style="color: #000000">Last-Modified</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;lastModifiedMillis);<br />
<img id="Codehighlighter1_2202_2424_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2202_2424_Open_Text.style.display='none'; Codehighlighter1_2202_2424_Closed_Image.style.display='inline'; Codehighlighter1_2202_2424_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2202_2424_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2202_2424_Closed_Text.style.display='none'; Codehighlighter1_2202_2424_Open_Image.style.display='inline'; Codehighlighter1_2202_2424_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_2202_2424_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_2202_2424_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setHeader(</span><span style="color: #000000">"</span><span style="color: #000000">Cache-Control</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">no-cache</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setHeader(</span><span style="color: #000000">"</span><span style="color: #000000">Pragma</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">no-cache</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setHeader(</span><span style="color: #000000">"</span><span style="color: #000000">Expires</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">-1</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_2451_2535_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2451_2535_Open_Text.style.display='none'; Codehighlighter1_2451_2535_Closed_Image.style.display='inline'; Codehighlighter1_2451_2535_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2451_2535_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2451_2535_Closed_Text.style.display='none'; Codehighlighter1_2451_2535_Open_Image.style.display='inline'; Codehighlighter1_2451_2535_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_2451_2535_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_2451_2535_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;copy(is,&nbsp;response.getOutputStream());<br />
<img id="Codehighlighter1_2545_2603_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2545_2603_Open_Text.style.display='none'; Codehighlighter1_2545_2603_Closed_Image.style.display='inline'; Codehighlighter1_2545_2603_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2545_2603_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2545_2603_Closed_Text.style.display='none'; Codehighlighter1_2545_2603_Open_Image.style.display='inline'; Codehighlighter1_2545_2603_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">finally</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_2545_2603_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_2545_2603_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is.close();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.sendError(HttpServletResponse.SC_NOT_FOUND);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" />..</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000"><br />
<img id="Codehighlighter1_2850_3236_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2850_3236_Open_Text.style.display='none'; Codehighlighter1_2850_3236_Closed_Image.style.display='inline'; Codehighlighter1_2850_3236_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2850_3236_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2850_3236_Closed_Text.style.display='none'; Codehighlighter1_2850_3236_Open_Image.style.display='inline'; Codehighlighter1_2850_3236_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">protected</span><span style="color: #000000">&nbsp;InputStream&nbsp;findInputStream(String&nbsp;name,&nbsp;String&nbsp;packagePrefix)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;IOException&nbsp;</span><span id="Codehighlighter1_2850_3236_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_2850_3236_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;resourcePath;<br />
<img id="Codehighlighter1_2946_3018_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2946_3018_Open_Text.style.display='none'; Codehighlighter1_2946_3018_Closed_Image.style.display='inline'; Codehighlighter1_2946_3018_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2946_3018_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2946_3018_Closed_Text.style.display='none'; Codehighlighter1_2946_3018_Open_Image.style.display='inline'; Codehighlighter1_2946_3018_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(packagePrefix.endsWith(</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">&amp;&amp;</span><span style="color: #000000">&nbsp;name.startsWith(</span><span style="color: #000000">"</span><span style="color: #000000">/</span><span style="color: #000000">"</span><span style="color: #000000">))&nbsp;</span><span id="Codehighlighter1_2946_3018_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_2946_3018_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resourcePath&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;packagePrefix&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;name.substring(</span><span style="color: #000000">1</span><span style="color: #000000">);<br />
<img id="Codehighlighter1_3025_3084_Open_Image" onclick="this.style.display='none'; Codehighlighter1_3025_3084_Open_Text.style.display='none'; Codehighlighter1_3025_3084_Closed_Image.style.display='inline'; Codehighlighter1_3025_3084_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_3025_3084_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_3025_3084_Closed_Text.style.display='none'; Codehighlighter1_3025_3084_Open_Image.style.display='inline'; Codehighlighter1_3025_3084_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_3025_3084_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_3025_3084_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resourcePath&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;packagePrefix&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;name;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resourcePath&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;URLDecoder.decode(resourcePath,&nbsp;encoding);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;ClassLoaderUtil.getResourceAsStream(resourcePath,&nbsp;getClass());<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<br />
<br />
可以看到，由 ClassLoaderUtil.getResourceAsStream 载入静态资源，然后回送。ClassLoaderUtil 还是用了 xwork 的 lib，struts2并没有重写这个类。这个回送过程中，FilterDispatcher 并没有指定回送字符集，因此输出页面会采用服务器默认字符集，当然跟具体操作系统也有关系。目前还没看到有默认以UTF-8作为服务器字符集的。
<img src ="http://www.blogjava.net/totobacoo/aggbug/147572.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/totobacoo/" target="_blank">Samuel.Mo</a> 2007-09-23 15:10 <a href="http://www.blogjava.net/totobacoo/archive/2007/09/23/147572.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一些JS常用的正则表达式</title><link>http://www.blogjava.net/totobacoo/archive/2006/12/09/86557.html</link><dc:creator>Samuel.Mo</dc:creator><author>Samuel.Mo</author><pubDate>Sat, 09 Dec 2006 09:15:00 GMT</pubDate><guid>http://www.blogjava.net/totobacoo/archive/2006/12/09/86557.html</guid><wfw:comment>http://www.blogjava.net/totobacoo/comments/86557.html</wfw:comment><comments>http://www.blogjava.net/totobacoo/archive/2006/12/09/86557.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/totobacoo/comments/commentRss/86557.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/totobacoo/services/trackbacks/86557.html</trackback:ping><description><![CDATA[一些JS常用的正则表达式。在这里记录一下，方便以后查找。<br /><br />以后再有好的，陆续添加～<br /><div class="code">必填：<br />/.+/<br /><br />用户名：<br />/^[a-zA-Z]{1}([a-zA-Z0-9]|[_]){4,19}$/<br /><br />无符号字符串：<br />/^[^\s]{1}[^-_\~!@#\$%\^&amp;\*\.\(\)\[\]\{\}&lt;&gt;\?\\\/\'\"]*$/<br /><br />Email：<br />/^\w+([-+.]\w+)*@\w+([-.]\\w+)*\.\w+([-.]\w+)*$/<br /><br />电话号码：<br />/^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/<br /><br />手机号码：<br />/^((\(\d{3}\))|(\d{3}\-))?13\d{9}$/<br /><br />URL：<br />/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&amp;_~`@[\]\':+!]*([^&lt;&gt;\"\"])*$/<br /><br />身份证：<br />/^\d{15}(\d{2}[A-Za-z0-9])?$/<br /><br />货币：<br />/^\d+(\.\d+)?$/<br /><br />数字：<br />/^\d+$/<br /><br />邮政编码：<br />/^[1-9]\d{5}$/<br /><br />QQ：<br />/^[1-9]\d{4,8}$/<br /><br />整数：<br />/^[-\+]?\d+$/<br /><br />实数：<br />/^[-\+]?\d+(\.\d+)?$/<br /><br />英文：<br />/^[A-Za-z]+$/<br /><br />中文<br />/^[\u0391-\uFFE5]+$/<br /><br />密码（必须含有大写字母、小写字母、标点、数字中的至少两种。呵呵，这个比较变态吧～）<br />/^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&amp;\*\.\(\)\[\]\{\}&lt;&gt;\?\\\/\'\"]*)|.{0,5})$|\s/</div><img src ="http://www.blogjava.net/totobacoo/aggbug/86557.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/totobacoo/" target="_blank">Samuel.Mo</a> 2006-12-09 17:15 <a href="http://www.blogjava.net/totobacoo/archive/2006/12/09/86557.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CentOS yum 国内镜像</title><link>http://www.blogjava.net/totobacoo/archive/2006/12/01/84816.html</link><dc:creator>Samuel.Mo</dc:creator><author>Samuel.Mo</author><pubDate>Fri, 01 Dec 2006 05:23:00 GMT</pubDate><guid>http://www.blogjava.net/totobacoo/archive/2006/12/01/84816.html</guid><wfw:comment>http://www.blogjava.net/totobacoo/comments/84816.html</wfw:comment><comments>http://www.blogjava.net/totobacoo/archive/2006/12/01/84816.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/totobacoo/comments/commentRss/84816.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/totobacoo/services/trackbacks/84816.html</trackback:ping><description><![CDATA[最近不知道是不是网络的问题，在更新CentOS4.4的时候非常慢，等的我脖子都长的。<br />然后就自己把升级的脚本修改的一下，直接使用国内镜像升级。速度非常快。<br />大家可以下载下面的文件进行替换，然后进行更新。或者看下面的修改方法吧：）<br /><br />1。修改升级脚本<br />#vi /etc/yum.repos.d/CentOS-Base.repo<br /><br />把mirrorlist=http://mirrorlist.centos.org.....开头的行全部删除.<br /><br />接着把<a href="http://mirror.centos.org/" target="_blank">http://mirror.centos.org/</a>替换为<a href="http://mirror.be10.com/" target="_blank">http://mirror.be10.com/</a><br /><br />接着把#baseurl=替换为baseurl=<br /><br />接下来把$releasever替换成的你CentOS的版本，这里可以用4.4的更新.4.3的不支持。<br /><br />最好是把$basearch替换成你的系统的相应的字窜。我的是i386的。服务器是x86_64的<br />大家按自己的情况替换就行了：）<br /><br /><img style="MARGIN: 0px 2px -4px 0px" alt="下载文件" src="http://www.5sai.net.cn/images/download.gif" /><a href="http://www.5sai.net.cn/attachments/month_0611/a20061123122025.rar" target="_blank">CentOS4.4国内更新镜像脚本下载</a><br /><br /><br />系统原始脚本<br />[base]<br />name=CentOS-$releasever - Base<br />mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=os<br />#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/<br />gpgcheck=1<br />gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4<br /><br />#released updates <br />[update]<br />name=CentOS-$releasever - Updates<br />mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=updates<br />#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/<br />gpgcheck=1<br />gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4<br /><br />#packages used/produced in the build but not released<br />[addons]<br />name=CentOS-$releasever - Addons<br />mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=addons<br />#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/<br />gpgcheck=1<br />gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4<br /><br />#additional packages that may be useful<br />[extras]<br />name=CentOS-$releasever - Extras<br />mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=extras<br />#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/<br />gpgcheck=1<br />gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4<br /><br />#additional packages that extend functionality of existing packages<br />[centosplus]<br />name=CentOS-$releasever - Plus<br />mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=centosplus<br />#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/<br />gpgcheck=1<br />enabled=0<br />gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4<br /><br />#contrib - packages by Centos Users<br />[contrib]<br />name=CentOS-$releasever - Contrib<br />mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=contrib<br />#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/<br />gpgcheck=1<br />enabled=0<br />gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4<br /><br /><br /><br />我修改过的i386的4.4 版本<br />[base]<br />name=CentOS-4.4 - Base<br />baseurl=http://mirror.be10.com/centos/4.4/os/i386/<br />gpgcheck=1<br />gpgkey=http://mirror.be10.com/centos/RPM-GPG-KEY-centos4<br /><br />#released updates <br />[update]<br />name=CentOS-4.4 - Updates<br />baseurl=http://mirror.be10.com/centos/4.4/updates/i386/<br />gpgcheck=1<br />gpgkey=http://mirror.be10.com/centos/RPM-GPG-KEY-centos4<br /><br />#packages used/produced in the build but not released<br />[addons]<br />name=CentOS-4.4 - Addons<br />baseurl=http://mirror.be10.com/centos/4.4/addons/i386/<br />gpgcheck=1<br />gpgkey=http://mirror.be10.com/centos/RPM-GPG-KEY-centos4<br /><br />#additional packages that may be useful<br />[extras]<br />name=CentOS-4.4 - Extras<br />baseurl=http://mirror.be10.com/centos/4.4/extras/i386/<br />gpgcheck=1<br />gpgkey=http://mirror.be10.com/centos/RPM-GPG-KEY-centos4<br /><br />#additional packages that extend functionality of existing packages<br />[centosplus]<br />name=CentOS-4.4 - Plus<br />baseurl=http://mirror.be10.com/centos/4.4/centosplus/i386/<br />gpgcheck=1<br />enabled=0<br />gpgkey=http://mirror.be10.com/centos/RPM-GPG-KEY-centos4<br /><br />#contrib - packages by Centos Users<br />[contrib]<br />name=CentOS-4.4 - Contrib<br />baseurl=http://mirror.be10.com/centos/4.4/contrib/i386/<br />gpgcheck=1<br />enabled=0<br />gpgkey=http://mirror.be10.com/centos/RPM-GPG-KEY-centos4<br /><img src ="http://www.blogjava.net/totobacoo/aggbug/84816.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/totobacoo/" target="_blank">Samuel.Mo</a> 2006-12-01 13:23 <a href="http://www.blogjava.net/totobacoo/archive/2006/12/01/84816.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SSH,telnet终端中文显示乱码解决办法</title><link>http://www.blogjava.net/totobacoo/archive/2006/12/01/84800.html</link><dc:creator>Samuel.Mo</dc:creator><author>Samuel.Mo</author><pubDate>Fri, 01 Dec 2006 04:12:00 GMT</pubDate><guid>http://www.blogjava.net/totobacoo/archive/2006/12/01/84800.html</guid><wfw:comment>http://www.blogjava.net/totobacoo/comments/84800.html</wfw:comment><comments>http://www.blogjava.net/totobacoo/archive/2006/12/01/84800.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/totobacoo/comments/commentRss/84800.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/totobacoo/services/trackbacks/84800.html</trackback:ping><description><![CDATA[
		<p>vi /etc/sysconfig/i18n</p>
		<p>将内容改为</p>
		<p>LANG="zh_CN.GB18030"<br />LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"<br />SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"<br />SYSFONT="lat0-sun16"</p>
<img src ="http://www.blogjava.net/totobacoo/aggbug/84800.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/totobacoo/" target="_blank">Samuel.Mo</a> 2006-12-01 12:12 <a href="http://www.blogjava.net/totobacoo/archive/2006/12/01/84800.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>搬家过来了</title><link>http://www.blogjava.net/totobacoo/archive/2006/09/27/72302.html</link><dc:creator>Samuel.Mo</dc:creator><author>Samuel.Mo</author><pubDate>Wed, 27 Sep 2006 06:46:00 GMT</pubDate><guid>http://www.blogjava.net/totobacoo/archive/2006/09/27/72302.html</guid><wfw:comment>http://www.blogjava.net/totobacoo/comments/72302.html</wfw:comment><comments>http://www.blogjava.net/totobacoo/archive/2006/09/27/72302.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/totobacoo/comments/commentRss/72302.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/totobacoo/services/trackbacks/72302.html</trackback:ping><description><![CDATA[
		<p>从 donews 搬家过来了，那边有一些文章，有空的时候陆陆续续搬过来。<br /><br />虽然 blogjava 跟 donews 一样，也用我很不感冒的 .TEXT 程序，不过感觉这边的气氛比 donews 好，服务也算很稳定。<br /><br />写的东西不会太多，值得记录一下的才会上来动动手。</p>
<img src ="http://www.blogjava.net/totobacoo/aggbug/72302.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/totobacoo/" target="_blank">Samuel.Mo</a> 2006-09-27 14:46 <a href="http://www.blogjava.net/totobacoo/archive/2006/09/27/72302.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>