﻿<?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-老翟-随笔分类-java web</title><link>http://www.blogjava.net/apl330/category/48127.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 09 May 2011 00:18:14 GMT</lastBuildDate><pubDate>Mon, 09 May 2011 00:18:14 GMT</pubDate><ttl>60</ttl><item><title>JSTL的使用</title><link>http://www.blogjava.net/apl330/archive/2011/05/08/349798.html</link><dc:creator>jack zhai</dc:creator><author>jack zhai</author><pubDate>Sun, 08 May 2011 15:16:00 GMT</pubDate><guid>http://www.blogjava.net/apl330/archive/2011/05/08/349798.html</guid><wfw:comment>http://www.blogjava.net/apl330/comments/349798.html</wfw:comment><comments>http://www.blogjava.net/apl330/archive/2011/05/08/349798.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/apl330/comments/commentRss/349798.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/apl330/services/trackbacks/349798.html</trackback:ping><description><![CDATA[1、在jsp文件的头部加入<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">%@&nbsp;taglib&nbsp;</span><span style="color: #ff0000">prefix</span><span style="color: #0000ff">="c"</span><span style="color: #ff0000">&nbsp;uri</span><span style="color: #0000ff">="http://java.sun.com/jstl/core_rt"</span><span style="color: #ff0000">%</span><span style="color: #0000ff">&gt;</span></div>
<br />
2、&lt;c:froEach/&gt;的使用<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">&nbsp;1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">%<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #800000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OperationDAO&nbsp;</span><span style="color: #ff0000">opDao&nbsp;</span><span style="color: #0000ff">=&nbsp;new&nbsp;</span><span style="color: #ff0000">OperationDAOImpl();<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #ff0000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;Operation</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;ops&nbsp;=&nbsp;opDao.getAll_();<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MenuDAO&nbsp;meDao&nbsp;=&nbsp;new&nbsp;MenuDAOImpl();<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">Menu</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;mes&nbsp;=&nbsp;meDao.getAll_Lazy(1)&nbsp;;<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;%&gt;<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">table&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="demoTable"</span><span style="color: #ff0000">&nbsp;border</span><span style="color: #0000ff">="1"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">thead</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">th</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">id</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">th</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">th</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">显示名称</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">th</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">th</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">链接</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">th</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">th</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">所属菜单</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">th</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">th</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">是否可见</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">th</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">th</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">操作</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">th</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">thead</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">tbody</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">c:forEach&nbsp;</span><span style="color: #ff0000">var</span><span style="color: #0000ff">="op"</span><span style="color: #ff0000">&nbsp;items</span><span style="color: #0000ff">="&lt;%=ops&nbsp;%&gt;"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  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">&lt;</span><span style="color: #800000">tr&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="${op.op_Id}"</span><span style="color: #ff0000"><br />
</span><span style="color: #008080">19</span><span style="color: #ff0000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  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;class</span><span style="color: #0000ff">="{op_Id:${op.op_Id},op_displayName:'${op.op_displayName}',op_link:'${op.op_link&nbsp;}',me_name:'${op.menu.me_displayName}',viewMode:'${op.viewMode}'}"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  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">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="op_Id"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">${op.op_Id}</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  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">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="op_displayName"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">${op.op_displayName}</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  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">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="op_link"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">${op.op_link&nbsp;}</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">23</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  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">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="me_name"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">${op.menu.me_displayName}</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  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">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="viewMode"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">viewMode:${op.viewMode}</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">25</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  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">&lt;</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="editRecord"</span><span style="color: #ff0000">&nbsp;href</span><span style="color: #0000ff">="anotherPage.html"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">Edit</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;|<br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="deleteRecord"</span><span style="color: #ff0000">&nbsp;href</span><span style="color: #0000ff">="anotherPage.html"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">Delete</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">27</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  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">&lt;/</span><span style="color: #800000">tr</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">28</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">c:forEach</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">29</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">tbody</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">30</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">table</span><span style="color: #0000ff">&gt;</span></div>
<br />
<br />
<br />
<img src ="http://www.blogjava.net/apl330/aggbug/349798.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/apl330/" target="_blank">jack zhai</a> 2011-05-08 23:16 <a href="http://www.blogjava.net/apl330/archive/2011/05/08/349798.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JQuery插件：TableEditor试用</title><link>http://www.blogjava.net/apl330/archive/2011/04/09/347925.html</link><dc:creator>jack zhai</dc:creator><author>jack zhai</author><pubDate>Fri, 08 Apr 2011 22:27:00 GMT</pubDate><guid>http://www.blogjava.net/apl330/archive/2011/04/09/347925.html</guid><wfw:comment>http://www.blogjava.net/apl330/comments/347925.html</wfw:comment><comments>http://www.blogjava.net/apl330/archive/2011/04/09/347925.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/apl330/comments/commentRss/347925.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/apl330/services/trackbacks/347925.html</trackback:ping><description><![CDATA[<p>这个插件在JQuery1.5.1版下无法使用。</p> <p>项目地址：<a title="http://dev.iceburg.net/jquery/tableEditor/demo.php" href="http://dev.iceburg.net/jquery/tableEditor/demo.php">http://dev.iceburg.net/jquery/tableEditor/demo.php</a></p> <p>html文件：</p> <div class="cnblogs_code"><pre><img id="Code_Closed_Image_319265" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_319265').style.display='none'; document.getElementById('Code_Open_Image_319265').style.display='inline'; document.getElementById('Code_Open_Text_319265').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" height="16"><img style="display: none" id="Code_Open_Image_319265" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_319265').style.display='none'; getElementById('Code_Closed_Image_319265').style.display='inline'; getElementById('Code_Closed_Text_319265').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" height="16"><span id="Code_Closed_Text_319265" class="cnblogs_code_Collapse">html</span><span style="display: none" id="Code_Open_Text_319265">&lt;table id="<span style="color: #8b0000">editableTable</span>" border="<span style="color: #8b0000">0</span>" cellspacing="<span style="color: #8b0000">0</span>" cellpadding="<span style="color: #8b0000">0</span>"&gt;
	&lt;thead&gt;
		&lt;tr&gt;
			&lt;th name="<span style="color: #8b0000">ID</span>"&gt;ID&lt;/th&gt;
			&lt;th name="<span style="color: #8b0000">first</span>"&gt;First Name&lt;/th&gt;
			&lt;th name="<span style="color: #8b0000">last</span>"&gt;Last Name&lt;/th&gt;
			&lt;th&gt;Phone&lt;/th&gt;
			&lt;th name="<span style="color: #8b0000">city</span>"&gt;City&lt;/th&gt;
			&lt;th name="<span style="color: #8b0000">email</span>"&gt;Email&lt;/th&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;key&gt;233&lt;/key&gt; &lt;button <span style="color: #0000ff">class</span>="<span style="color: #8b0000">eventLink</span>"&gt;edit&lt;/button&gt;&lt;/td&gt;
			&lt;td&gt;&lt;input type="<span style="color: #8b0000">text</span>" name="<span style="color: #8b0000">XXXX</span>" val="<span style="color: #8b0000">YYYY</span>"&gt;&lt;/input&gt;&lt;/td&gt;
			&lt;td&gt;XXX&lt;/td&gt;
			&lt;td&gt;&lt;input type="<span style="color: #8b0000">checkbox</span>" checked name="<span style="color: #8b0000">zzTop</span>"&gt;&lt;/input&gt;&lt;/td&gt;
			&lt;td&gt;&lt;input type="<span style="color: #8b0000">checkbox</span>" name="<span style="color: #8b0000">yyy</span>"&gt;&lt;/input&gt;&lt;/td&gt;
			&lt;td&gt;&lt;select name="<span style="color: #8b0000">yyy</span>"&gt;&lt;option&gt;XXX&lt;/option&gt;&lt;option SELECTED&gt;YYY&lt;/option&gt;&lt;/select&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;key&gt;1&lt;/key&gt; &lt;button <span style="color: #0000ff">class</span>="<span style="color: #8b0000">eventLink</span>"&gt;edit&lt;/button&gt;&lt;/td&gt;
			&lt;td&gt;Brice&lt;/td&gt;
			&lt;td&gt;Burgess&lt;/td&gt;
			&lt;td&gt;(800)768-5283&lt;/td&gt;
			&lt;td&gt;Milwaukee&lt;/td&gt;
			&lt;td&gt;b@b.com&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;key&gt;2&lt;/key&gt; &lt;button <span style="color: #0000ff">class</span>="<span style="color: #8b0000">eventLink</span>"&gt;edit&lt;/button&gt;&lt;/td&gt;
			&lt;td&gt;Christian&lt;/td&gt;
			&lt;td&gt;Bach&lt;/td&gt;
			&lt;td&gt;(800)768-6288&lt;/td&gt;
			&lt;td&gt;Chicago&lt;/td&gt;
			&lt;td&gt;c@c.com&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;key&gt;3&lt;/key&gt; &lt;button <span style="color: #0000ff">class</span>="<span style="color: #8b0000">eventLink</span>"&gt;edit&lt;/button&gt;&lt;/td&gt;
			&lt;td&gt;Abe&lt;/td&gt;
			&lt;td&gt;Lincoln&lt;/td&gt;
			&lt;td&gt;(800)223-2331&lt;/td&gt;
			&lt;td&gt;Washington D.C.&lt;/td&gt;
			&lt;td&gt;l@l.com&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;key&gt;8&lt;/key&gt; &lt;button <span style="color: #0000ff">class</span>="<span style="color: #8b0000">eventLink</span>"&gt;edit&lt;/button&gt;&lt;/td&gt;
			&lt;td&gt;Sam Lightning&lt;/td&gt;
			&lt;td&gt;Hopkings&lt;/td&gt;
			&lt;td&gt;(800)728-1221&lt;/td&gt;
			&lt;td&gt;Houston&lt;/td&gt;
			&lt;td&gt;s@s.com&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;key&gt;15&lt;/key&gt; &lt;button <span style="color: #0000ff">class</span>="<span style="color: #8b0000">eventLink</span>"&gt;edit&lt;/button&gt;&lt;/td&gt;
			&lt;td&gt;Rudyard&lt;/td&gt;
			&lt;td&gt;Kipling&lt;/td&gt;
			&lt;td&gt;(512)121-1280&lt;/td&gt;
			&lt;td&gt;London&lt;/td&gt;
			&lt;td&gt;r@r.com&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;</pre></div>
<p><br></span>js文件</p>
<div class="cnblogs_code"><pre><img id="Code_Closed_Image_905611" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_905611').style.display='none'; document.getElementById('Code_Open_Image_905611').style.display='inline'; document.getElementById('Code_Open_Text_905611').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" height="16"><img style="display: none" id="Code_Open_Image_905611" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_905611').style.display='none'; getElementById('Code_Closed_Image_905611').style.display='inline'; getElementById('Code_Closed_Text_905611').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" height="16"><span id="Code_Closed_Text_905611" class="cnblogs_code_Collapse">js</span><span style="display: none" id="Code_Open_Text_905611">&lt;script type="<span style="color: #8b0000">text/javascript</span>"&gt;
$().ready(<span style="color: #0000ff">function</span>() {	
	$("<span style="color: #8b0000">#editableTable</span>").tableSorter({ 
		sortClassAsc: 'headerSortUp', 		<span style="color: #008000">// class name for ascending sorting action to header</span>
		sortClassDesc: 'headerSortDown',	<span style="color: #008000">// class name for descending sorting action to header</span>
		headerClass: 'header', 				<span style="color: #008000">// class name for headers (th's)</span>
		disableHeader: 'ID' 	<span style="color: #008000">// DISABLE Sorting on ID</span>
	}).tableEditor({
		EDIT_HTML: 'edit',
		SAVE_HTML: 'save',
		EVENT_LINK_SELECTOR: 'button.eventLink',
		FUNC_UPDATE: 'updateTable'
	});
	
	<span style="color: #0000ff">document</span>.counter = 0;
});

<span style="color: #0000ff">function</span> updateTable(o) {
	<span style="color: #0000ff">document</span>.counter++;
	
	<span style="color: #0000ff">if</span> ((<span style="color: #0000ff">document</span>.counter%2) == 0) {
		<span style="color: #008000">// restore row</span>
		<span style="color: #0000ff">alert</span>('Update failed. Row restore.');
		$.tableEditor.lib.restoreRow(o.row,o.original);
	}
	<span style="color: #0000ff">else</span>
		<span style="color: #0000ff">alert</span>('Update Success');
		
	<span style="color: #0000ff">return</span> <span style="color: #0000ff">true</span>;
}
&lt;/script&gt;</pre></div><br></span><img src ="http://www.blogjava.net/apl330/aggbug/347925.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/apl330/" target="_blank">jack zhai</a> 2011-04-09 06:27 <a href="http://www.blogjava.net/apl330/archive/2011/04/09/347925.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用于Request的工具类   from DLOG4J</title><link>http://www.blogjava.net/apl330/archive/2011/03/31/347341.html</link><dc:creator>jack zhai</dc:creator><author>jack zhai</author><pubDate>Thu, 31 Mar 2011 00:33:00 GMT</pubDate><guid>http://www.blogjava.net/apl330/archive/2011/03/31/347341.html</guid><wfw:comment>http://www.blogjava.net/apl330/comments/347341.html</wfw:comment><comments>http://www.blogjava.net/apl330/archive/2011/03/31/347341.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/apl330/comments/commentRss/347341.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/apl330/services/trackbacks/347341.html</trackback:ping><description><![CDATA[<p>从DLOG4J读到的Request的工具类：</p> <p>&nbsp;</p> <div class="cnblogs_code"><pre><img id="Code_Closed_Image_769480" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_769480').style.display='none'; document.getElementById('Code_Open_Image_769480').style.display='inline'; document.getElementById('Code_Open_Text_769480').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" height="16"><img style="display: none" id="Code_Open_Image_769480" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_769480').style.display='none'; getElementById('Code_Closed_Image_769480').style.display='inline'; getElementById('Code_Closed_Text_769480').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" height="16"><span id="Code_Closed_Text_769480" class="cnblogs_code_Collapse">java</span><span style="display: none" id="Code_Open_Text_769480"><span style="color: #008000">/*
 *  RequestUtils.java
 *  
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU Library General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 *  
 *  Author: Winter Lau (javayou@gmail.com)
 *  http://dlog4j.sourceforge.net
 */</span>
<span style="color: #0000ff">package</span> com.liusoft.dlog4j.util;

<span style="color: #0000ff">import</span> java.io.IOException;
<span style="color: #0000ff">import</span> java.io.InputStream;
<span style="color: #0000ff">import</span> java.io.PrintStream;
<span style="color: #0000ff">import</span> java.text.MessageFormat;
<span style="color: #0000ff">import</span> java.util.Enumeration;
<span style="color: #0000ff">import</span> java.util.Iterator;
<span style="color: #0000ff">import</span> java.util.Properties;

<span style="color: #0000ff">import</span> javax.servlet.http.Cookie;
<span style="color: #0000ff">import</span> javax.servlet.http.HttpServletRequest;
<span style="color: #0000ff">import</span> javax.servlet.http.HttpServletResponse;
<span style="color: #0000ff">import</span> javax.servlet.http.HttpSession;

<span style="color: #0000ff">import</span> org.apache.commons.logging.Log;
<span style="color: #0000ff">import</span> org.apache.commons.logging.LogFactory;

<span style="color: #0000ff">import</span> com.liusoft.dlog4j.Globals;

<span style="color: #008000">/**
 * 用于Request的工具类
 * @author Winter Lau
 */</span>
<span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> RequestUtils <span style="color: #0000ff">extends</span> org.apache.struts.util.RequestUtils{

	<span style="color: #0000ff">final</span> <span style="color: #0000ff">static</span> Log log = LogFactory.getLog(RequestUtils.<span style="color: #0000ff">class</span>);
	
	<span style="color: #0000ff">private</span> <span style="color: #0000ff">static</span> Properties header_map;
	<span style="color: #0000ff">private</span> <span style="color: #0000ff">static</span> String default_mobile; 
	<span style="color: #0000ff">static</span>{
		InputStream in = RequestUtils.<span style="color: #0000ff">class</span>.getResourceAsStream("<span style="color: #8b0000">/com/liusoft/dlog4j/util/mobile_match.properties</span>");
		header_map = <span style="color: #0000ff">new</span> Properties();
		<span style="color: #0000ff">try</span>{
			header_map.load(in);
			default_mobile = header_map.getProperty("<span style="color: #8b0000">empty</span>");
		}<span style="color: #0000ff">catch</span>(IOException e){
			log.error("<span style="color: #8b0000">加载手机号码匹配策略文件/mobile_match.conf失败</span>",e);
		}
	}

	<span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">boolean</span> isMultipart(HttpServletRequest req) {
		<span style="color: #0000ff">return</span> ((req.getContentType() != <span style="color: #0000ff">null</span>) &amp;&amp; (req.getContentType()
				.toLowerCase().startsWith("<span style="color: #8b0000">multipart</span>")));
	}

	<span style="color: #008000">/**
	 * 获取FCKUpload过程中生成的会话ID
	 * @return
	 */</span>
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> String getDlogSessionId(HttpServletRequest req){
		<span style="color: #008000">//优先从Cookie中获取ssn_id值</span>
		String ssn_id = <span style="color: #0000ff">null</span>;
		Cookie cok = RequestUtils.getCookie(req, Globals.SESSION_ID_KEY_IN_COOKIE);
		<span style="color: #0000ff">if</span>(cok != <span style="color: #0000ff">null</span>){
			ssn_id = cok.getValue();
		}
		<span style="color: #0000ff">if</span>(StringUtils.isEmpty(ssn_id)){
			<span style="color: #008000">//如果Cookie得不到则从服务器的会话中读取</span>
			HttpSession ssn = req.getSession(<span style="color: #0000ff">false</span>);
			<span style="color: #0000ff">if</span> (ssn != <span style="color: #0000ff">null</span>)
				ssn_id = ssn.getId();
		}
		<span style="color: #0000ff">return</span> ssn_id;
	}
	
	<span style="color: #008000">/**
	 * 清除FCKUpload过程中生成的Cookie
	 * @param req
	 * @param res
	 */</span>
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">void</span> clearDlogSessionId(HttpServletRequest req, HttpServletResponse res){
		Cookie cok = RequestUtils.getCookie(req, Globals.SESSION_ID_KEY_IN_COOKIE);
		<span style="color: #0000ff">if</span>(cok != <span style="color: #0000ff">null</span>){
			cok.setMaxAge(0);
			res.addCookie(cok);
		}
	}
	
	<span style="color: #008000">/**
	 * 获取COOKIE
	 * 
	 * @param name
	 */</span>
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> Cookie getCookie(HttpServletRequest request, String name) {
		Cookie[] cookies = request.getCookies();
		<span style="color: #0000ff">if</span>(cookies == <span style="color: #0000ff">null</span>)
			<span style="color: #0000ff">return</span> <span style="color: #0000ff">null</span>;
		<span style="color: #0000ff">for</span> (<span style="color: #0000ff">int</span> i = 0; i &lt; cookies.length; i++) {
			<span style="color: #0000ff">if</span> (name.equals(cookies[i].getName())) {
				<span style="color: #0000ff">return</span> cookies[i];
			}
		}
		<span style="color: #0000ff">return</span> <span style="color: #0000ff">null</span>;
	}

	<span style="color: #008000">/**
	 * 设置COOKIE
	 * 
	 * @param name
	 * @param value
	 * @param maxAge
	 */</span>
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">void</span> setCookie(HttpServletRequest request, HttpServletResponse response, String name,
			String value, <span style="color: #0000ff">int</span> maxAge) {
		Cookie cookie = <span style="color: #0000ff">new</span> Cookie(name, value);
		cookie.setMaxAge(maxAge);
		String serverName = request.getServerName();
		String domain = getDomainOfServerName(serverName);
		<span style="color: #0000ff">if</span>(domain!=<span style="color: #0000ff">null</span> &amp;&amp; domain.indexOf('.')!=-1){
			cookie.setDomain('.' + domain);
		}
		cookie.setPath("<span style="color: #8b0000">/</span>");
		response.addCookie(cookie);
	}
	
	<span style="color: #008000">/**
	 * 获取用户访问URL中的根域名
	 * 例如: www.dlog.cn -&gt; dlog.cn
	 * @param req
	 * @return
	 */</span>
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> String getDomainOfServerName(String host){
		<span style="color: #0000ff">if</span>(StringUtils.isIPAddr(host))
			<span style="color: #0000ff">return</span> <span style="color: #0000ff">null</span>;
		String[] names = StringUtils.split(host, '.');
		<span style="color: #0000ff">int</span> len = names.length;
		<span style="color: #0000ff">if</span>(len&gt;=2)
			<span style="color: #0000ff">return</span> names[len-2]+'.'+names[len-1];
		<span style="color: #0000ff">return</span> host;
	}
	
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">void</span> main(String[] args){
		String host = "<span style="color: #8b0000">127.0.0.1</span>";
		System.out.println("<span style="color: #8b0000">DOMAIN: </span>" + getDomainOfServerName(host));		
		host = "<span style="color: #8b0000">dlog.cn</span>";
		System.out.println("<span style="color: #8b0000">DOMAIN: </span>" + getDomainOfServerName(host));		
		host = "<span style="color: #8b0000">abc.mail.dlog.cn</span>";
		System.out.println("<span style="color: #8b0000">DOMAIN: </span>" + getDomainOfServerName(host));		
	}

	<span style="color: #008000">/**
	 * 从URL地址中解析出URL前缀，例如
	 * http://wap.mo168.com:8081/index.jsp -&gt; http://wap.mo168.com:8081
	 * @param req
	 * @return
	 */</span>
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> String getUrlPrefix(HttpServletRequest req){
		StringBuffer url = <span style="color: #0000ff">new</span> StringBuffer(req.getScheme());
		url.append("<span style="color: #8b0000">://</span>");
		url.append(req.getServerName());
		<span style="color: #0000ff">int</span> port = req.getServerPort();
		<span style="color: #0000ff">if</span>(port!=80){
			url.append("<span style="color: #8b0000">:</span>");
			url.append(port);
		}
		<span style="color: #0000ff">return</span> url.toString();
	}
	
	<span style="color: #008000">/**
	 * 获取访问的URL全路径
	 * @param req
	 * @return
	 */</span>
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> String getRequestURL(HttpServletRequest req){
		StringBuffer url = <span style="color: #0000ff">new</span> StringBuffer(req.getRequestURI());
		String param = req.getQueryString();
		<span style="color: #0000ff">if</span>(param!=<span style="color: #0000ff">null</span>){
			url.append('?');
			url.append(param);
		}
		String path = url.toString();
		<span style="color: #0000ff">return</span> path.substring(req.getContextPath().length());
	}

	
	<span style="color: #008000">/**
	 * 打印所有的头信息
	 * @param out
	 * @param req
	 */</span>
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">void</span> dumpHeaders(PrintStream out, HttpServletRequest req){
		Enumeration names = req.getHeaderNames();
		<span style="color: #0000ff">while</span>(names.hasMoreElements()){
			String name = (String)names.nextElement();
			out.println(name+"<span style="color: #8b0000">=</span>"+req.getHeader(name));
		}
	}
	<span style="color: #008000">/**
	 * 从请求中解析手机号码
	 * @param req
	 * @return
	 */</span>
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> String getRequestMobile(HttpServletRequest req){
		String mobile = default_mobile;
		Iterator keys = header_map.keySet().iterator();
		<span style="color: #0000ff">while</span>(keys.hasNext()){
			String header = (String)keys.next();
			String value = getHeader(req,header);
			<span style="color: #0000ff">if</span>(value!=<span style="color: #0000ff">null</span>){
				String pattern = (String)header_map.get(header);
				MessageFormat mf = <span style="color: #0000ff">new</span> MessageFormat(pattern);
				<span style="color: #0000ff">try</span>{
					Object[] vs = mf.parse(value);
					mobile = (String)vs[0];
					<span style="color: #0000ff">if</span>(mobile.startsWith("<span style="color: #8b0000">86</span>"))
						mobile = mobile.substring(2);
					<span style="color: #0000ff">break</span>;
				}<span style="color: #0000ff">catch</span>(Exception e){
					log.warn("<span style="color: #8b0000">解析header失败</span>",e);
					dumpHeaders(req, System.err);
					<span style="color: #0000ff">continue</span>;
				}
			}
		}
		<span style="color: #0000ff">return</span> mobile;
	}
	
	<span style="color: #008000">/**
	 * 获取header信息，名字大小写无关
	 * @param req
	 * @param name
	 * @return
	 */</span>
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> String getHeader(HttpServletRequest req, String name){
		String value = req.getHeader(name);
		<span style="color: #0000ff">if</span>(value!=<span style="color: #0000ff">null</span>)
			<span style="color: #0000ff">return</span> value;
		Enumeration names = req.getHeaderNames();
		<span style="color: #0000ff">while</span>(names.hasMoreElements()){
			String n = (String)names.nextElement();
			<span style="color: #0000ff">if</span>(n.equalsIgnoreCase(name)){
				<span style="color: #0000ff">return</span> req.getHeader(n);
			}
		}
		<span style="color: #0000ff">return</span> <span style="color: #0000ff">null</span>;
	}
	
	<span style="color: #008000">/**
	 * 打印所有头信息
	 * @param req
	 * @param out
	 */</span>
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">void</span> dumpHeaders(HttpServletRequest req, PrintStream out){
		Enumeration hds = req.getHeaderNames();
		out.println("<span style="color: #8b0000">=============== HEADERS ===============</span>");
		<span style="color: #0000ff">while</span>(hds.hasMoreElements()){
			String name = (String)hds.nextElement();
			out.println(name+"<span style="color: #8b0000">=</span>"+req.getHeader(name));
		}
	}

	<span style="color: #008000">/**
	 * 判断手机是否支持某种类型的格式
	 * @param req
	 * @param contentType
	 * @return
	 */</span>
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">boolean</span> support(HttpServletRequest req, String contentType){
		String accept = getHeader(req, "<span style="color: #8b0000">accept</span>");
		<span style="color: #0000ff">if</span>(accept!=<span style="color: #0000ff">null</span>){
			accept = accept.toLowerCase();
			<span style="color: #0000ff">return</span> accept.indexOf(contentType.toLowerCase())!=-1;
		}
		<span style="color: #0000ff">return</span> <span style="color: #0000ff">false</span>;
	}
	
	<span style="color: #008000">/**
	 * 判断浏览器是否与Mozilla兼容
	 * @param req
	 * @return
	 */</span>
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">boolean</span> isMozillaCompatible(HttpServletRequest req){
		String user_agent = req.getHeader("<span style="color: #8b0000">user-agent</span>");
		<span style="color: #0000ff">return</span> user_agent==<span style="color: #0000ff">null</span> || user_agent.indexOf("<span style="color: #8b0000">Mozilla</span>")!=-1;
	}

	<span style="color: #008000">/**
	 * 获取浏览器提交的整形参数
	 * @param param
	 * @param defaultValue
	 * @return
	 */</span>
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">int</span> getParam(HttpServletRequest req, String param, <span style="color: #0000ff">int</span> defaultValue){
		<span style="color: #0000ff">try</span>{
			String value = req.getParameter(param);
			<span style="color: #0000ff">int</span> idx = value.indexOf('#');
			<span style="color: #0000ff">if</span>(idx!=-1)
				value = value.substring(0,idx);
			<span style="color: #0000ff">return</span> Integer.parseInt(value);
		}<span style="color: #0000ff">catch</span>(Exception e){}
		<span style="color: #0000ff">return</span> defaultValue;
	}
	<span style="color: #008000">/**
	 * 获取浏览器提交的字符串参数
	 * @param param
	 * @param defaultValue
	 * @return
	 */</span>
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> String getParam(HttpServletRequest req, String param, String defaultValue){
		String value = req.getParameter(param);
		<span style="color: #0000ff">return</span> (StringUtils.isEmpty(value))?defaultValue:value;
	}

}</pre></div><br></span><img src ="http://www.blogjava.net/apl330/aggbug/347341.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/apl330/" target="_blank">jack zhai</a> 2011-03-31 08:33 <a href="http://www.blogjava.net/apl330/archive/2011/03/31/347341.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>过滤敏感词汇类</title><link>http://www.blogjava.net/apl330/archive/2011/03/31/347339.html</link><dc:creator>jack zhai</dc:creator><author>jack zhai</author><pubDate>Thu, 31 Mar 2011 00:16:00 GMT</pubDate><guid>http://www.blogjava.net/apl330/archive/2011/03/31/347339.html</guid><wfw:comment>http://www.blogjava.net/apl330/comments/347339.html</wfw:comment><comments>http://www.blogjava.net/apl330/archive/2011/03/31/347339.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/apl330/comments/commentRss/347339.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/apl330/services/trackbacks/347339.html</trackback:ping><description><![CDATA[<div class="cnblogs_code"><pre><img id="Code_Closed_Image_200867" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_200867').style.display='none'; document.getElementById('Code_Open_Image_200867').style.display='inline'; document.getElementById('Code_Open_Text_200867').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" height="16"><img style="display: none" id="Code_Open_Image_200867" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_200867').style.display='none'; getElementById('Code_Closed_Image_200867').style.display='inline'; getElementById('Code_Closed_Text_200867').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" height="16"><span id="Code_Closed_Text_200867" class="cnblogs_code_Collapse">java</span><span style="display: none" id="Code_Open_Text_200867"><span style="color: #008000">/*
 *  SiteAction.java
 *  
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU Library General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 *  
 *  Author: Winter Lau
 *  http://dlog4j.sourceforge.net
 */</span>
package com.liusoft.dlog4j;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletContext;

import org.apache.commons.lang.StringUtils;

<span style="color: #008000">/**
 * DLOG在安全方面的一些处理方法 
 * 敏感词汇表：/WEB-INF/conf/illegal_glossary.dat
 * 
 * @author Winter Lau
 */</span>
<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=public&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">public</a> class DLOGSecurityManager {

	<span style="color: #008000">/**
	 * 初始化
	 * @param sc
	 * @throws IOException
	 * 
	 * @see com.liusoft.dlog4j.servlet.DLOG_ActionServlet#init()
	 */</span>
	<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=public&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">public</a> static void init(ServletContext sc) throws IOException {
		IllegalGlossary.init(sc);
	}
	
	<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=public&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">public</a> static void destroy(){
		IllegalGlossary.destroy();
	}
	
	<span style="color: #008000">/**
	 * 敏感字汇
	 * @author Winter Lau
	 */</span>
	<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=public&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">public</a> static class IllegalGlossary {

		private final static String file_glossary = "<span style="color: #8b0000">/WEB-INF/conf/illegal_glossary.dat</span>";
		
		private static List glossary = <a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=null&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">null</a>;
		
		<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=public&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">public</a> static void init(ServletContext sc) throws IOException {
			glossary = new ArrayList(1000);
			<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=if&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">if</a>(sc!=<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=null&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">null</a>)
				loadIllegalGlossary(sc);
		}

		<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=public&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">public</a> static void destroy(){
			<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=if&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">if</a>(glossary!=<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=null&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">null</a>)
				glossary.clear();
		}
		
		<span style="color: #008000">/**
		 * 加载敏感词汇表
		 * @param sc
		 * @throws IOException 
		 */</span>
		private synchronized static void loadIllegalGlossary(ServletContext sc) throws IOException {
			InputStream <a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=in&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">in</a> = sc.getResourceAsStream(file_glossary);
			BufferedReader reader = <a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=null&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">null</a>;
			try{
				reader = new BufferedReader(new InputStreamReader(<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=in&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">in</a>));
				do{
					String line = reader.readLine();
					<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=if&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">if</a>(line==<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=null&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">null</a>)
						<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=break&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">break</a>;
					glossary.<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=add&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">add</a>(line.<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=trim&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">trim</a>());
				}<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=while&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">while</a>(<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=true&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">true</a>);
			}finally{
				<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=in&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">in</a>.<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=close&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">close</a>();
			}
		}

		<span style="color: #008000">/**
		 * 自动将敏感词汇用XXX替换
		 * 
		 * @param content
		 * @return
		 */</span>
		<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=public&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">public</a> static String autoGlossaryFiltrate(String content) {
			<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=if&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">if</a>(StringUtils.isEmpty(content))
				<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=return&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">return</a> content;
			<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=for&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">for</a> (<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=int&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">int</a> i = 0; i &lt; glossary.<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=size&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">size</a>(); i++) {
				String word = (String)glossary.<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=get&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">get</a>(i);
				content = StringUtils.replace(content, word, StringUtils
						.repeat("<span style="color: #8b0000">X</span>", word.length()));
			}
			<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=return&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">return</a> content;
		}
		
		<span style="color: #008000">/**
		 * 判断是否存在非法内容
		 * @param content
		 * @return
		 */</span>
		<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=public&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">public</a> static boolean existIllegalWord(String content){
			<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=if&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">if</a>(StringUtils.isEmpty(content))
				<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=return&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">return</a> <a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=false&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">false</a>;
			<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=for&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">for</a> (<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=int&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">int</a> i = 0; i &lt; glossary.<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=size&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">size</a>(); i++) {
				String word = (String) glossary.<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=get&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">get</a>(i);
				<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=if&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">if</a>(content.indexOf(word)&gt;=0)
					<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=return&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">return</a> <a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=true&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">true</a>;
			}
			<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=return&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">return</a> <a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=false&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">false</a>;
		}
		
		<span style="color: #008000">/**
		 * 删除内容中存在的关键字
		 * @param content
		 * @return
		 */</span>
		<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=public&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">public</a> static String deleteIllegalWord(String content){
			<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=if&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">if</a>(StringUtils.isEmpty(content))
				<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=return&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">return</a> content;
			<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=for&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">for</a> (<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=int&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">int</a> i = 0; i &lt; glossary.<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=size&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">size</a>(); i++) {
				String word = (String) glossary.<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=get&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">get</a>(i);
				content = StringUtils.remove(content, word);
			}
			<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=return&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">return</a> content;
		}
		
	}

	<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=public&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">public</a> static void main(String[] args) throws IOException{
		init(<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=null&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">null</a>);
		String <a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=text&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">text</a> = "<span style="color: #8b0000">中华人民共和国国家主席毛泽东，我们叫他毛主席</span>";
		System.out.println(IllegalGlossary.autoGlossaryFiltrate(<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=text&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">text</a>));
	}
}
</pre></div><br></span>
<p>这个类，是从DLOG4J上学到的。</p><img src ="http://www.blogjava.net/apl330/aggbug/347339.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/apl330/" target="_blank">jack zhai</a> 2011-03-31 08:16 <a href="http://www.blogjava.net/apl330/archive/2011/03/31/347339.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>commons-FileUpload上传过程</title><link>http://www.blogjava.net/apl330/archive/2011/03/23/346849.html</link><dc:creator>jack zhai</dc:creator><author>jack zhai</author><pubDate>Wed, 23 Mar 2011 05:01:00 GMT</pubDate><guid>http://www.blogjava.net/apl330/archive/2011/03/23/346849.html</guid><wfw:comment>http://www.blogjava.net/apl330/comments/346849.html</wfw:comment><comments>http://www.blogjava.net/apl330/archive/2011/03/23/346849.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/apl330/comments/commentRss/346849.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/apl330/services/trackbacks/346849.html</trackback:ping><description><![CDATA[<p>1、</p> <blockquote> <p>ServletFileUpload.isMultipartContent(request) </p></blockquote> <p>检测request中是否包含有multipart内容</p> <p>2、如果有，生成DiskFileItemFactory工厂将进行相关的设置</p> <blockquote> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DiskFileItemFactory factory = new DiskFileItemFactory();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // maximum size that will be stored in memory<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; factory.setSizeThreshold(maxMemSize);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Location to save data that is larger than maxMemSize.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; factory.setRepository(new File("d:/"));</p></blockquote> <p>3、生成上传ServletFileUpload类，并将DiskFileFactory工厂传给它，并对ServletFileUpload进行配置</p> <blockquote> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Create a new file upload handler<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ServletFileUpload upload = new ServletFileUpload(factory);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // maximum file size to be uploaded.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; upload.setSizeMax(maxFileSize);</p></blockquote> <p>4、从request得到上传的文件列表</p> <blockquote> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Parse the request to get file items.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; List fileItems = upload.parseRequest(request);  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Process the uploaded file items<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Iterator i = fileItems.iterator();</p></blockquote> <p>5、处理文件：写入或者其他操作</p> <blockquote> <p>while (i.hasNext()) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileItem fi = (FileItem) i.next();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!fi.isFormField()) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Get the uploaded file parameters<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String fieldName = fi.getFieldName();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String fileName = fi.getName();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String contentType = fi.getContentType();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; boolean isInMemory = fi.isInMemory();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; long sizeInBytes = fi.getSize();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Write the file<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (fileName.lastIndexOf("\\") &gt;= 0) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file = new File(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; filePath<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + fileName.substring(fileName<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .lastIndexOf("\\")));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file = new File(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; filePath<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + fileName.substring(fileName<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .lastIndexOf("\\") + 1));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fi.write(file);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println("Uploaded Filename: " + fileName + "&lt;br&gt;");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p> <p>}</p></blockquote> <p>&nbsp; <p><font color="#ff0000">说明：</font></p> <p><font color="#ff0000">FileItem接口是对用户上传文件的封装</font></p> <p><font color="#ff0000">DiskFileItemFactory实现了FileItemFactory接口，主要方法有public FileItem createItem(String fieldName, String contentType, boolean isFormField, String fileName)</font></p> <p><font color="#ff0000">ServletFileUpload从FileUpload继承，而FileUpload又从FileUploadBase继承，功能：分析传入的request对象、得到文件列表FileItemIterator……</font></p><img src ="http://www.blogjava.net/apl330/aggbug/346849.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/apl330/" target="_blank">jack zhai</a> 2011-03-23 13:01 <a href="http://www.blogjava.net/apl330/archive/2011/03/23/346849.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>