﻿<?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/apl330/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 10 May 2026 02:36:24 GMT</lastBuildDate><pubDate>Sun, 10 May 2026 02:36:24 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>spring的一般配置</title><link>http://www.blogjava.net/apl330/archive/2011/05/01/349340.html</link><dc:creator>jack zhai</dc:creator><author>jack zhai</author><pubDate>Sun, 01 May 2011 06:26:00 GMT</pubDate><guid>http://www.blogjava.net/apl330/archive/2011/05/01/349340.html</guid><wfw:comment>http://www.blogjava.net/apl330/comments/349340.html</wfw:comment><comments>http://www.blogjava.net/apl330/archive/2011/05/01/349340.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/apl330/comments/commentRss/349340.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/apl330/services/trackbacks/349340.html</trackback:ping><description><![CDATA[<p>beans.xml</p> <div class="cnblogs_code"><pre><img id="Code_Closed_Image_190882" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_190882').style.display='none'; document.getElementById('Code_Open_Image_190882').style.display='inline'; document.getElementById('Code_Open_Text_190882').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_190882" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_190882').style.display='none'; getElementById('Code_Closed_Image_190882').style.display='inline'; getElementById('Code_Closed_Text_190882').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" height="16"><span id="Code_Closed_Text_190882" class="cnblogs_code_Collapse">beans</span><span style="display: none" id="Code_Open_Text_190882">&lt;?xml version="<span style="color: #8b0000">1.0</span>" encoding="<span style="color: #8b0000">UTF-8</span>"?&gt;

&lt;beans xmlns="<span style="color: #8b0000">http://www.springframework.org/schema/beans</span>"
	xmlns:xsi="<span style="color: #8b0000">http://www.w3.org/2001/XMLSchema-instance</span>" xmlns:context="<span style="color: #8b0000">http://www.springframework.org/schema/context</span>"
	xmlns:aop="<span style="color: #8b0000">http://www.springframework.org/schema/aop</span>" xmlns:tx="<span style="color: #8b0000">http://www.springframework.org/schema/tx</span>"
	xsi:schemaLocation="<span style="color: #8b0000">http://www.springframework.org/schema/beans</span>
           http:<span style="color: #008000">//www.springframework.org/schema/beans/spring-beans-2.5.xsd</span>
           http:<span style="color: #008000">//www.springframework.org/schema/context</span>
           http:<span style="color: #008000">//www.springframework.org/schema/context/spring-context-2.5.xsd</span>
           http:<span style="color: #008000">//www.springframework.org/schema/aop</span>
           http:<span style="color: #008000">//www.springframework.org/schema/aop/spring-aop-2.5.xsd</span>
           http:<span style="color: #008000">//www.springframework.org/schema/tx </span>
           http:<span style="color: #008000">//www.springframework.org/schema/tx/spring-tx-2.5.xsd"&gt;</span>
	&lt;context:annotation-config /&gt;
	&lt;context:component-scan base-<span style="color: #0000ff">package</span>="<span style="color: #8b0000">cc.rm</span>" /&gt;
	&lt;bean
		<span style="color: #0000ff">class</span>="<span style="color: #8b0000">org.springframework.beans.factory.config.PropertyPlaceholderConfigurer</span>"&gt;
		&lt;property name="<span style="color: #8b0000">locations</span>"&gt;
			&lt;value&gt;classpath:jdbc.properties&lt;/value&gt;
		&lt;/property&gt;
	&lt;/bean&gt;

	&lt;bean id="<span style="color: #8b0000">dataSource</span>" destroy-method="<span style="color: #8b0000">close</span>"
		<span style="color: #0000ff">class</span>="<span style="color: #8b0000">org.apache.commons.dbcp.BasicDataSource</span>"&gt;
		&lt;property name="<span style="color: #8b0000">driverClassName</span>"
			value="<span style="color: #8b0000">${jdbc.driverClassName}</span>" /&gt;
		&lt;property name="<span style="color: #8b0000">url</span>" value="<span style="color: #8b0000">${jdbc.url}</span>" /&gt;
		&lt;property name="<span style="color: #8b0000">username</span>" value="<span style="color: #8b0000">${jdbc.username}</span>" /&gt;
		&lt;property name="<span style="color: #8b0000">password</span>" value="<span style="color: #8b0000">${jdbc.password}</span>" /&gt;
	&lt;/bean&gt;

	&lt;!--DataSource --&gt;
	&lt;bean id="<span style="color: #8b0000">sf</span>"
		<span style="color: #0000ff">class</span>="<span style="color: #8b0000">org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean</span>"&gt;
		&lt;property name="<span style="color: #8b0000">dataSource</span>" ref="<span style="color: #8b0000">dataSource</span>" /&gt;
		 &lt;property name="<span style="color: #8b0000">packagesToScan</span>"&gt;
			&lt;list&gt;
				&lt;value&gt;cc.rm.vo&lt;/value&gt;
				
			&lt;/list&gt;
		&lt;/property&gt;
		&lt;property name="<span style="color: #8b0000">hibernateProperties</span>"&gt;
			&lt;props&gt;
				&lt;prop key="<span style="color: #8b0000">hibernate.dialect</span>"&gt;
					org.hibernate.dialect.MySQLDialect
				&lt;/prop&gt;
				&lt;prop key="<span style="color: #8b0000">hibernate.show_sql</span>"&gt;<span style="color: #0000ff">true</span>&lt;/prop&gt;
			&lt;/props&gt;
		&lt;/property&gt;
	&lt;/bean&gt;
	
	&lt;bean id="<span style="color: #8b0000">hibernateTemplate</span>" <span style="color: #0000ff">class</span>="<span style="color: #8b0000">org.springframework.orm.hibernate3.HibernateTemplate</span>"&gt;
		&lt;property name="<span style="color: #8b0000">sessionFactory</span>" ref="<span style="color: #8b0000">sf</span>"&gt;&lt;/property&gt;
	&lt;/bean&gt;
	
	&lt;bean id="<span style="color: #8b0000">txManager</span>"
		<span style="color: #0000ff">class</span>="<span style="color: #8b0000">org.springframework.orm.hibernate3.HibernateTransactionManager</span>"&gt;
		&lt;property name="<span style="color: #8b0000">sessionFactory</span>" ref="<span style="color: #8b0000">sf</span>" /&gt;
	&lt;/bean&gt;

	&lt;aop:config&gt;
		&lt;aop:pointcut id="<span style="color: #8b0000">bussinessService</span>"
			expression="<span style="color: #8b0000">execution(public * cc.rm.*.*(..))</span>" /&gt;
		&lt;aop:advisor pointcut-ref="<span style="color: #8b0000">bussinessService</span>"
			advice-ref="<span style="color: #8b0000">txAdvice</span>" /&gt;
	&lt;/aop:config&gt;

	&lt;tx:advice id="<span style="color: #8b0000">txAdvice</span>" transaction-manager="<span style="color: #8b0000">txManager</span>"&gt;
		&lt;tx:attributes&gt;
			&lt;tx:method name="<span style="color: #8b0000">*</span>" propagation="<span style="color: #8b0000">REQUIRED</span>"/&gt;
		&lt;/tx:attributes&gt;
	&lt;/tx:advice&gt;
	
&lt;/beans&gt;

</pre></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><font color="#ff0000">jdbc.properties</font></p>
<div class="cnblogs_code"><pre><img id="Code_Closed_Image_621809" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_621809').style.display='none'; document.getElementById('Code_Open_Image_621809').style.display='inline'; document.getElementById('Code_Open_Text_621809').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_621809" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_621809').style.display='none'; getElementById('Code_Closed_Image_621809').style.display='inline'; getElementById('Code_Closed_Text_621809').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" height="16"><span id="Code_Closed_Text_621809" class="cnblogs_code_Collapse">properties</span><span style="display: none" id="Code_Open_Text_621809">jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/ll
jdbc.username=root
jdbc.password=1244

</pre></div><br></span>
<p>在web.xml里加入</p>
<div class="cnblogs_code"><pre><img id="Code_Closed_Image_394757" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_394757').style.display='none'; document.getElementById('Code_Open_Image_394757').style.display='inline'; document.getElementById('Code_Open_Text_394757').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_394757" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_394757').style.display='none'; getElementById('Code_Closed_Image_394757').style.display='inline'; getElementById('Code_Closed_Text_394757').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" height="16"><span id="Code_Closed_Text_394757" class="cnblogs_code_Collapse">web.xml</span><span style="display: none" id="Code_Open_Text_394757"><span style="color: #0000ff">&lt;</span><span style="color: #800000">context</span>-<span style="color: #ff0000">param</span><span style="color: #0000ff">&gt;</span>
<span style="color: #0000ff">&lt;</span><span style="color: #800000">param</span>-<span style="color: #ff0000">name</span><span style="color: #0000ff">&gt;</span>contextConfigLocation<span style="color: #0000ff">&lt;/</span><span style="color: #800000">param</span>-name<span style="color: #0000ff">&gt;</span>
<span style="color: #0000ff">&lt;</span><span style="color: #800000">param</span>-<span style="color: #ff0000">value</span><span style="color: #0000ff">&gt;</span>WEB-INF/:beans.xml,<span style="color: #0000ff">&lt;/</span><span style="color: #800000">param</span>-value<span style="color: #0000ff">&gt;</span>
<span style="color: #0000ff">&lt;/</span><span style="color: #800000">context</span>-param<span style="color: #0000ff">&gt;</span>

<span style="color: #0000ff">&lt;</span><span style="color: #800000">listener</span><span style="color: #0000ff">&gt;</span>
<span style="color: #0000ff">&lt;</span><span style="color: #800000">listener</span>-<span style="color: #ff0000">class</span><span style="color: #0000ff">&gt;</span>org.springframework.web.context.ContextLoaderListener<span style="color: #0000ff">&lt;/</span><span style="color: #800000">listener</span>-class<span style="color: #0000ff">&gt;</span>
<span style="color: #0000ff">&lt;/</span><span style="color: #800000">listener</span><span style="color: #0000ff">&gt;</span></pre></div><br></span>
<p><br>&nbsp;</p></span><img src ="http://www.blogjava.net/apl330/aggbug/349340.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-01 14:26 <a href="http://www.blogjava.net/apl330/archive/2011/05/01/349340.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>powerdesigner反向生成物理模型</title><link>http://www.blogjava.net/apl330/archive/2011/04/29/349270.html</link><dc:creator>jack zhai</dc:creator><author>jack zhai</author><pubDate>Fri, 29 Apr 2011 05:13:00 GMT</pubDate><guid>http://www.blogjava.net/apl330/archive/2011/04/29/349270.html</guid><wfw:comment>http://www.blogjava.net/apl330/comments/349270.html</wfw:comment><comments>http://www.blogjava.net/apl330/archive/2011/04/29/349270.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/apl330/comments/commentRss/349270.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/apl330/services/trackbacks/349270.html</trackback:ping><description><![CDATA[<p>需要先安装ODBC，才可以使用ODBC连接方式连接数据库</p> <p>下载地址：mysql-connector-odbc-5.1.8-win32.msi</p> <p>1</p> <p><a href="http://www.blogjava.net/images/blogjava_net/apl330/WindowsLiveWriter/powerdesigner_9502/1_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="1" border="0" alt="1" src="http://www.blogjava.net/images/blogjava_net/apl330/WindowsLiveWriter/powerdesigner_9502/1_thumb.png" width="195" height="244"></a> </p> <p>2</p> <p><a href="http://www.blogjava.net/images/blogjava_net/apl330/WindowsLiveWriter/powerdesigner_9502/2_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="2" border="0" alt="2" src="http://www.blogjava.net/images/blogjava_net/apl330/WindowsLiveWriter/powerdesigner_9502/2_thumb.png" width="244" height="134"></a> </p> <p>3</p> <p><a href="http://www.blogjava.net/images/blogjava_net/apl330/WindowsLiveWriter/powerdesigner_9502/3_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="3" border="0" alt="3" src="http://www.blogjava.net/images/blogjava_net/apl330/WindowsLiveWriter/powerdesigner_9502/3_thumb.png" width="244" height="233"></a> </p> <p>4</p> <p><a href="http://www.blogjava.net/images/blogjava_net/apl330/WindowsLiveWriter/powerdesigner_9502/4_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="4" border="0" alt="4" src="http://www.blogjava.net/images/blogjava_net/apl330/WindowsLiveWriter/powerdesigner_9502/4_thumb.png" width="244" height="176"></a> </p> <p>&nbsp;</p> <p>5</p> <p><a href="http://www.blogjava.net/images/blogjava_net/apl330/WindowsLiveWriter/powerdesigner_9502/5_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="5" border="0" alt="5" src="http://www.blogjava.net/images/blogjava_net/apl330/WindowsLiveWriter/powerdesigner_9502/5_thumb.png" width="244" height="100"></a></p><img src ="http://www.blogjava.net/apl330/aggbug/349270.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-29 13:13 <a href="http://www.blogjava.net/apl330/archive/2011/04/29/349270.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用SchemaExport自动生成表结构</title><link>http://www.blogjava.net/apl330/archive/2011/04/29/349246.html</link><dc:creator>jack zhai</dc:creator><author>jack zhai</author><pubDate>Fri, 29 Apr 2011 00:09:00 GMT</pubDate><guid>http://www.blogjava.net/apl330/archive/2011/04/29/349246.html</guid><wfw:comment>http://www.blogjava.net/apl330/comments/349246.html</wfw:comment><comments>http://www.blogjava.net/apl330/archive/2011/04/29/349246.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/apl330/comments/commentRss/349246.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/apl330/services/trackbacks/349246.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);<br />
<img src ="http://www.blogjava.net/apl330/aggbug/349246.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-29 08:09 <a href="http://www.blogjava.net/apl330/archive/2011/04/29/349246.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hibernate配置模板</title><link>http://www.blogjava.net/apl330/archive/2011/04/28/349220.html</link><dc:creator>jack zhai</dc:creator><author>jack zhai</author><pubDate>Thu, 28 Apr 2011 10:25:00 GMT</pubDate><guid>http://www.blogjava.net/apl330/archive/2011/04/28/349220.html</guid><wfw:comment>http://www.blogjava.net/apl330/comments/349220.html</wfw:comment><comments>http://www.blogjava.net/apl330/archive/2011/04/28/349220.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/apl330/comments/commentRss/349220.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/apl330/services/trackbacks/349220.html</trackback:ping><description><![CDATA[<p>&lt;?xml version='1.0' encoding='gb2312'?&gt;&nbsp;&nbsp; <br />
&lt;!DOCTYPE hibernate-configuration PUBLIC&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "-//Hibernate/Hibernate Configuration DTD 3.0//EN"&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"&gt;&nbsp;&nbsp; <br />
&lt;hibernate-configuration&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;session-factory&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--显示执行的SQL语句--&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="show_sql"&gt;true&lt;/property&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--连接字符串--&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="connection.url"&gt;jdbc:mysql://localhost:3306/Test&lt;/property&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--连接数据库的用户名--&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="connection.username"&gt;sa&lt;/property&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--数据库用户密码--&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="connection.password"&gt;sa&lt;/property&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--数据库驱动--&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="connection.driver_class"&gt;com.mysql.jdbc.Driver&lt;/property&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--JDBC连接池（使用内置的连接池）--&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="connection.pool_size"&gt;1&lt;/property&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--设置Hibernate自动管理上下文的策略--&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="current_session_context_class"&gt;thread&lt;/property&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--选择使用的方言--&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="dialect"&gt;org.hibernate.dialect.MySQLDialect&lt;/property&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--在启动时删除并重新创建数据库--&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="hbm2ddl.auto"&gt;create&lt;/property&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;mapping resource="events/User.hbm.xml"/&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;mapping resource="events/Student.hbm.xml"/&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;/session-factory&gt;&nbsp;&nbsp; <br />
&lt;/hibernate-configuration&gt;&nbsp; </p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/apl330/aggbug/349220.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-28 18:25 <a href="http://www.blogjava.net/apl330/archive/2011/04/28/349220.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>链表-java实现</title><link>http://www.blogjava.net/apl330/archive/2011/04/26/349004.html</link><dc:creator>jack zhai</dc:creator><author>jack zhai</author><pubDate>Mon, 25 Apr 2011 21:57:00 GMT</pubDate><guid>http://www.blogjava.net/apl330/archive/2011/04/26/349004.html</guid><wfw:comment>http://www.blogjava.net/apl330/comments/349004.html</wfw:comment><comments>http://www.blogjava.net/apl330/archive/2011/04/26/349004.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/apl330/comments/commentRss/349004.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/apl330/services/trackbacks/349004.html</trackback:ping><description><![CDATA[<div class="cnblogs_code"><pre><img id="Code_Closed_Image_801487" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_801487').style.display='none'; document.getElementById('Code_Open_Image_801487').style.display='inline'; document.getElementById('Code_Open_Text_801487').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_801487" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_801487').style.display='none'; getElementById('Code_Closed_Image_801487').style.display='inline'; getElementById('Code_Closed_Text_801487').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" height="16"><span id="Code_Closed_Text_801487" class="cnblogs_code_Collapse">interface</span><span style="display: none" id="Code_Open_Text_801487"><span style="color: #0000ff">package</span> List;

<span style="color: #0000ff">public</span> <span style="color: #0000ff">interface</span> IList {
	<span style="color: #0000ff">boolean</span> isEmpty();
	<span style="color: #0000ff">int</span> size();
	<span style="color: #0000ff">void</span> add(ZNode newNode);
	<span style="color: #0000ff">void</span> insert(<span style="color: #0000ff">int</span> index , ZNode newNode) <span style="color: #0000ff">throws</span> Exception;
	<span style="color: #0000ff">void</span> <span style="color: #0000ff">delete</span>(<span style="color: #0000ff">int</span> index) <span style="color: #0000ff">throws</span> Exception ;
	<span style="color: #0000ff">void</span> replace(<span style="color: #0000ff">int</span> index,Object obj) <span style="color: #0000ff">throws</span> Exception;
	ZNode getByIndx(<span style="color: #0000ff">int</span> index) <span style="color: #0000ff">throws</span> Exception;
	<span style="color: #0000ff">int</span> getIndex(ZNode node) <span style="color: #0000ff">throws</span> Exception;
	<span style="color: #0000ff">void</span> display() <span style="color: #0000ff">throws</span> Exception;
}
</pre></div><br></span>
<p></p>
<div class="cnblogs_code"><pre><img id="Code_Closed_Image_109284" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_109284').style.display='none'; document.getElementById('Code_Open_Image_109284').style.display='inline'; document.getElementById('Code_Open_Text_109284').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_109284" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_109284').style.display='none'; getElementById('Code_Closed_Image_109284').style.display='inline'; getElementById('Code_Closed_Text_109284').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" height="16"><span id="Code_Closed_Text_109284" class="cnblogs_code_Collapse">implement</span><span style="display: none" id="Code_Open_Text_109284"><span style="color: #0000ff">package</span> List;

<span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> ZList <span style="color: #0000ff">implements</span> IList {

	<span style="color: #0000ff">private</span> ZNode head = <span style="color: #0000ff">null</span>;
	
	<span style="color: #0000ff">public</span> ZList(){
		
	}
	
	@SuppressWarnings("<span style="color: #8b0000">null</span>")
	@Override
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> add(ZNode newNode) {
		<span style="color: #008000">// TODO Auto-generated method stub</span>
		ZNode z = head ;
		<span style="color: #0000ff">if</span>(!isEmpty()){
			<span style="color: #0000ff">while</span>(z.getNext()!=<span style="color: #0000ff">null</span>){
				z = z.getNext();
			}
			z.setNext(newNode);
		}<span style="color: #0000ff">else</span>{
			head = newNode ;
		}
		
	}

	@Override
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> insert(<span style="color: #0000ff">int</span> index, ZNode newNode) <span style="color: #0000ff">throws</span> Exception {
		<span style="color: #008000">// TODO Auto-generated method stub</span>
		ZNode frontNode = getByIndx(index-1) ;
		ZNode afterNode = getByIndx(index);
		frontNode.setNext(newNode);
		newNode.setNext(afterNode);
		
	}

	@Override
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> delete(<span style="color: #0000ff">int</span> index) <span style="color: #0000ff">throws</span> Exception {
		<span style="color: #008000">// TODO Auto-generated method stub</span>
		ZNode frontNode = getByIndx(index-1) ;
		ZNode currentNode = getByIndx(index) ;
		ZNode afterNode = currentNode.getNext() ;
		
		frontNode.setNext(afterNode) ;
		currentNode = <span style="color: #0000ff">null</span> ;
		
	}

	@Override
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> replace(<span style="color: #0000ff">int</span> index,Object obj) <span style="color: #0000ff">throws</span> Exception {
		<span style="color: #008000">// TODO Auto-generated method stub</span>
		ZNode current = getByIndx(index);
		current.setData(obj);
	}

	<span style="color: #008000">/**
	 * index &gt;= 0
	 */</span>
	@Override
	<span style="color: #0000ff">public</span> ZNode getByIndx(<span style="color: #0000ff">int</span> index) <span style="color: #0000ff">throws</span> Exception {
		<span style="color: #008000">// TODO Auto-generated method stub</span>
		<span style="color: #0000ff">if</span>(isEmpty()) <span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span> Exception("<span style="color: #8b0000">The List is null!</span>");
		ZNode z = head ;
		<span style="color: #0000ff">while</span>(index&gt;0 ){
			<span style="color: #0000ff">if</span>(z==<span style="color: #0000ff">null</span>) <span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span> Exception("<span style="color: #8b0000">the index is out of index</span>");
			z = z.getNext();
			index--;
		}
		
		<span style="color: #0000ff">return</span> z;
	}

	@Override
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">int</span> getIndex(ZNode node) <span style="color: #0000ff">throws</span> Exception {
		<span style="color: #008000">// TODO Auto-generated method stub</span>
		<span style="color: #0000ff">if</span>(isEmpty()) <span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span> Exception("<span style="color: #8b0000">The List is null!</span>");
		ZNode z = head ;
		
		<span style="color: #0000ff">int</span> index = 0 ;
		
		<span style="color: #0000ff">do</span>{
			<span style="color: #0000ff">if</span>(z.equals(node)) <span style="color: #0000ff">break</span>; 
			index ++ ;
			z = z.getNext();
		}<span style="color: #0000ff">while</span>(z!=<span style="color: #0000ff">null</span>);
		
		<span style="color: #0000ff">return</span> index;
	}

	@Override
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">boolean</span> isEmpty() {
		<span style="color: #008000">// TODO Auto-generated method stub</span>
		<span style="color: #0000ff">return</span> (<span style="color: #0000ff">null</span> == <span style="color: #0000ff">this</span>.head) ? <span style="color: #0000ff">true</span>:<span style="color: #0000ff">false</span>;
	}

	@Override
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">int</span> size() {
		<span style="color: #008000">// TODO Auto-generated method stub</span>
		ZNode z = head;
		<span style="color: #0000ff">int</span> sz = 0;
		<span style="color: #0000ff">if</span>(<span style="color: #0000ff">null</span> != z) {
			<span style="color: #0000ff">do</span>{
				sz++;
			}<span style="color: #0000ff">while</span>((z = z.getNext())!=<span style="color: #0000ff">null</span>);
		}
		<span style="color: #0000ff">return</span> sz;
	}

	@Override
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> display() <span style="color: #0000ff">throws</span> Exception {
		<span style="color: #008000">// TODO Auto-generated method stub</span>
		<span style="color: #0000ff">if</span>(isEmpty()) <span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span> Exception("<span style="color: #8b0000">The List is null!</span>");
		
		ZNode z = head ;
		<span style="color: #0000ff">int</span> index = 0 ;
		<span style="color: #0000ff">do</span>{
			System.out
					.println("<span style="color: #8b0000">index:</span>" + index + "<span style="color: #8b0000"> </span>" + z.getData().toString());
			index++ ;
			z = z.getNext() ;
		}<span style="color: #0000ff">while</span>(z!= <span style="color: #0000ff">null</span>) ;
	}
	
}
</pre></div><br></span>
<p></p>
<div class="cnblogs_code"><pre><img id="Code_Closed_Image_388662" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_388662').style.display='none'; document.getElementById('Code_Open_Image_388662').style.display='inline'; document.getElementById('Code_Open_Text_388662').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_388662" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_388662').style.display='none'; getElementById('Code_Closed_Image_388662').style.display='inline'; getElementById('Code_Closed_Text_388662').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" height="16"><span id="Code_Closed_Text_388662" class="cnblogs_code_Collapse">node</span><span style="display: none" id="Code_Open_Text_388662"><span style="color: #0000ff">package</span> List;

<span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> ZNode {
	<span style="color: #0000ff">private</span> Object data ;
	<span style="color: #0000ff">private</span> ZNode next ;
	
	<span style="color: #0000ff">public</span> ZNode(Object data, ZNode next) {
		<span style="color: #0000ff">super</span>();
		<span style="color: #0000ff">this</span>.data = data;
		<span style="color: #0000ff">this</span>.next = next;
	}
	<span style="color: #0000ff">public</span> ZNode() {
		<span style="color: #0000ff">this</span>.data = <span style="color: #0000ff">null</span> ;
		<span style="color: #0000ff">this</span>.next = <span style="color: #0000ff">null</span> ;
	}
	<span style="color: #0000ff">public</span> Object getData() {
		<span style="color: #0000ff">return</span> data;
	}
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> setData(Object data) {
		<span style="color: #0000ff">this</span>.data = data;
	}
	<span style="color: #0000ff">public</span> ZNode getNext() {
		<span style="color: #0000ff">return</span> next;
	}
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> setNext(ZNode next) {
		<span style="color: #0000ff">this</span>.next = next;
	}
	@Override
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">int</span> hashCode() {
		<span style="color: #0000ff">final</span> <span style="color: #0000ff">int</span> prime = 31;
		<span style="color: #0000ff">int</span> result = 1;
		result = prime * result + ((data == <span style="color: #0000ff">null</span>) ? 0 : data.hashCode());
		<span style="color: #0000ff">return</span> result;
	}
	@Override
	<span style="color: #0000ff">public</span> <span style="color: #0000ff">boolean</span> equals(Object obj) {
		<span style="color: #0000ff">if</span> (<span style="color: #0000ff">this</span> == obj)
			<span style="color: #0000ff">return</span> <span style="color: #0000ff">true</span>;
		<span style="color: #0000ff">if</span> (obj == <span style="color: #0000ff">null</span>)
			<span style="color: #0000ff">return</span> <span style="color: #0000ff">false</span>;
		<span style="color: #0000ff">if</span> (getClass() != obj.getClass())
			<span style="color: #0000ff">return</span> <span style="color: #0000ff">false</span>;
		ZNode other = (ZNode) obj;
		<span style="color: #0000ff">if</span> (data == <span style="color: #0000ff">null</span>) {
			<span style="color: #0000ff">if</span> (other.data != <span style="color: #0000ff">null</span>)
				<span style="color: #0000ff">return</span> <span style="color: #0000ff">false</span>;
		} <span style="color: #0000ff">else</span> <span style="color: #0000ff">if</span> (!data.equals(other.data))
			<span style="color: #0000ff">return</span> <span style="color: #0000ff">false</span>;
		<span style="color: #0000ff">return</span> <span style="color: #0000ff">true</span>;
	}
	@Override
	<span style="color: #0000ff">public</span> String toString() {
		<span style="color: #008000">// TODO Auto-generated method stub</span>
		<span style="color: #0000ff">return</span> "<span style="color: #8b0000">data are : </span>" + data.toString() ;
	}
	
}
</pre></div><br></span><img src ="http://www.blogjava.net/apl330/aggbug/349004.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-26 05:57 <a href="http://www.blogjava.net/apl330/archive/2011/04/26/349004.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Velocity配置</title><link>http://www.blogjava.net/apl330/archive/2011/04/14/348267.html</link><dc:creator>jack zhai</dc:creator><author>jack zhai</author><pubDate>Thu, 14 Apr 2011 00:45:00 GMT</pubDate><guid>http://www.blogjava.net/apl330/archive/2011/04/14/348267.html</guid><wfw:comment>http://www.blogjava.net/apl330/comments/348267.html</wfw:comment><comments>http://www.blogjava.net/apl330/archive/2011/04/14/348267.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/apl330/comments/commentRss/348267.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/apl330/services/trackbacks/348267.html</trackback:ping><description><![CDATA[<p>一、web.xml中的配置<br />
<br />
</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"><span style="color: #008080">&nbsp;1</span><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">web-app</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">velocity</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">org.apache.velocity.tools.view.VelocityViewServlet</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">velocity</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</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 src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">*.vm</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">url-pattern</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 src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">welcome-file-list</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">welcome-file</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">index.vm</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">welcome-file</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">welcome-file-list</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">web-app</span><span style="color: #0000ff">&gt;</span></div>
<p><br />
二、可选配置tools.xml<br />
</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: #0000ff">&lt;</span><span style="color: #800000">tools</span><span style="color: #0000ff">&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: #0000ff">&lt;</span><span style="color: #800000">data&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="boolean"</span><span style="color: #ff0000">&nbsp;key</span><span style="color: #0000ff">="xhtml"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="true"</span><span style="color: #0000ff">/&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: #0000ff">&lt;</span><span style="color: #800000">data&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="boolean"</span><span style="color: #ff0000">&nbsp;key</span><span style="color: #0000ff">="isSimple"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="true"</span><span style="color: #0000ff">/&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: #0000ff">&lt;</span><span style="color: #800000">data&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="number"</span><span style="color: #ff0000">&nbsp;key</span><span style="color: #0000ff">="version"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="3.3.0"</span><span style="color: #0000ff">/&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: #0000ff">&lt;</span><span style="color: #800000">data&nbsp;</span><span style="color: #ff0000">key</span><span style="color: #0000ff">="foo"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">this&nbsp;is&nbsp;foo</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">data</span><span style="color: #0000ff">&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: #0000ff">&lt;</span><span style="color: #800000">data&nbsp;</span><span style="color: #ff0000">key</span><span style="color: #0000ff">="bar"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">this&nbsp;is&nbsp;bar.</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">data</span><span style="color: #0000ff">&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: #0000ff">&lt;</span><span style="color: #800000">toolbox&nbsp;</span><span style="color: #ff0000">scope</span><span style="color: #0000ff">="request"</span><span style="color: #0000ff">&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: #0000ff">&lt;</span><span style="color: #800000">tool&nbsp;</span><span style="color: #ff0000">key</span><span style="color: #0000ff">="toytool"</span><span style="color: #ff0000">&nbsp;class</span><span style="color: #0000ff">="ToyTool"</span><span style="color: #ff0000">&nbsp;restrictTo</span><span style="color: #0000ff">="index*"</span><span style="color: #0000ff">/&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: #0000ff">&lt;/</span><span style="color: #800000">toolbox</span><span style="color: #0000ff">&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: #0000ff">&lt;</span><span style="color: #800000">toolbox&nbsp;</span><span style="color: #ff0000">scope</span><span style="color: #0000ff">="session"</span><span style="color: #0000ff">&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: #0000ff">&lt;</span><span style="color: #800000">tool&nbsp;</span><span style="color: #ff0000">key</span><span style="color: #0000ff">="map"</span><span style="color: #ff0000">&nbsp;class</span><span style="color: #0000ff">="java.util.HashMap"</span><span style="color: #0000ff">/&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: #0000ff">&lt;/</span><span style="color: #800000">toolbox</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">tools</span><span style="color: #0000ff">&gt;</span></div>
<p><br />
<br />
<br />
&nbsp;</p>
<img src ="http://www.blogjava.net/apl330/aggbug/348267.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-14 08:45 <a href="http://www.blogjava.net/apl330/archive/2011/04/14/348267.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据库设计学习笔记</title><link>http://www.blogjava.net/apl330/archive/2011/04/11/348030.html</link><dc:creator>jack zhai</dc:creator><author>jack zhai</author><pubDate>Mon, 11 Apr 2011 00:44:00 GMT</pubDate><guid>http://www.blogjava.net/apl330/archive/2011/04/11/348030.html</guid><wfw:comment>http://www.blogjava.net/apl330/comments/348030.html</wfw:comment><comments>http://www.blogjava.net/apl330/archive/2011/04/11/348030.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/apl330/comments/commentRss/348030.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/apl330/services/trackbacks/348030.html</trackback:ping><description><![CDATA[<p>一、设计过程包含五个主要步骤。</p>
<p>第 1 步：确定实体和关系</p>
<p>第 2 步：确定所需数据</p>
<p>第 3 步：规范化数据</p>
<p>第 4 步：解析关系</p>
<p>第 5 步：验证设计<br />
<br />
二、阅读别人的概念模型图：<br />
不管是从左到右读取还是从右到左读取，下面的规则都会使读取这些图示变得容易：读取 (1) 第一个实体的名称，(2) <em>第一个实体</em> 旁边的角色，(3) 到<em>第二个实体</em> 的连接的基数，(4) 第二个实体的名称。<br />
<br />
三、确定所需数据（实体属性的设计）需要注意的：<br />
</p>
<li>
<p class="list">确定支持数据时，一定要参考前面确定的活动以了解将如何访问这些数据。</p>
<p class="list">例如，在某些情况下可能需要按雇员的名字列出雇员，而在另一些情况下可能需要按姓氏列出。要满足这两种需要，应创建一个 First Name 属性和一个 Last Name 属性，而不应创建一个既包含名字又包含姓氏的属性。将姓氏和名字分开后，以后可以创建两个索引，分别适用于这两项任务。</p>
<li>
<p class="list">请选择一致的名称。使用一致的名称可以使数据库便于维护，并且便于阅读报告和输出窗口。</p>
<p class="list">例如，如果一个属性使用了缩略名称，如 Emp_status，则另一个属性不应使用完整名称，如 Employee_ID。应使名称保持一致，如 Emp_status 和 Emp_ID。</p>
<li>
<p class="list">在这个阶段，数据是否与正确的实体相关联并不十分重要。您可以根据自己的判断进行设计。在下一节中，将对设计进行测试，检查您的判断是否正确。</p>
<p><br />
四、规范化是指一系列测试，通过这些测试可以消除冗余的数据，并确保数据与正确的实体或关系相关联。共有五项测试。本节介绍其中前三项测试。这三项测试最重要，因此也最常使用。<br />
<br />
五、范式：</p>
<p>数据规范化包括几项测试。数据在通过了第一项测试后，我们认为它满足第一范式；通过了第二项测试后，它满足第二范式；通过了第三项测试后，则满足第三范式。<br />
<br />
六、标识符是唯一地标识实体中各行的一组属性，至少由一个属性组成。<br />
<br />
七、解析关系：<br />
执行完规范化过程后，设计几乎就完成了。唯一还需要做的事情就是生成与概念数据模型相对应的<strong>物理数据模型</strong>。这个过程也称作解析关系，因为其中涉及的大量工作就是将概念模型中的关系转换为相应的表和外键关系。</p>
<br />
八、概念数据模型可以简化设计过程，因为它将大量细节隐藏起来。例如，多对多关系总会生成一个额外的表和两个外键引用。在概念数据模型中，通常可以用一个连接来标识这类结构。
<p>九、域（用户定义的数据类型）</p>
<p>十、数据库对象的定义构成了数据库模式：您可以将模式看做一个空数据库。（<span style="color: red">是否可以理解成C#的命名空间或java里的包概念</span>）</p>
<p>&nbsp;</p>
</li>
<p>十一、<br />
</p>
<p>&nbsp;</p>
 <img src ="http://www.blogjava.net/apl330/aggbug/348030.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-11 08:44 <a href="http://www.blogjava.net/apl330/archive/2011/04/11/348030.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>1</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></channel></rss>