﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-JAVA开门</title><link>http://www.blogjava.net/youlq/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 03 May 2026 04:35:25 GMT</lastBuildDate><pubDate>Sun, 03 May 2026 04:35:25 GMT</pubDate><ttl>60</ttl><item><title>[推荐]开发者眼中的Silverlight和Flash</title><link>http://www.blogjava.net/youlq/archive/2007/05/08/115834.html</link><dc:creator>一餐三碗</dc:creator><author>一餐三碗</author><pubDate>Tue, 08 May 2007 00:49:00 GMT</pubDate><guid>http://www.blogjava.net/youlq/archive/2007/05/08/115834.html</guid><wfw:comment>http://www.blogjava.net/youlq/comments/115834.html</wfw:comment><comments>http://www.blogjava.net/youlq/archive/2007/05/08/115834.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youlq/comments/commentRss/115834.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youlq/services/trackbacks/115834.html</trackback:ping><description><![CDATA[<p>文章从一名资深flash开发者的角度，全方位深入的对比评论了Silverlight和Flash两种技术，点评非常全面、深入，推荐大家一看。</p>
<p>&nbsp;</p>
<p><a href="http://weblogs.asp.net/jezell/archive/2007/05/03/silverlight-vs-flash-the-developer-story.aspx">Silverlight vs. Flash: The Developer Story</a></p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/youlq/aggbug/115834.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youlq/" target="_blank">一餐三碗</a> 2007-05-08 08:49 <a href="http://www.blogjava.net/youlq/archive/2007/05/08/115834.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>InfoQ中文网站发布！</title><link>http://www.blogjava.net/youlq/archive/2007/04/02/108012.html</link><dc:creator>一餐三碗</dc:creator><author>一餐三碗</author><pubDate>Mon, 02 Apr 2007 09:08:00 GMT</pubDate><guid>http://www.blogjava.net/youlq/archive/2007/04/02/108012.html</guid><wfw:comment>http://www.blogjava.net/youlq/comments/108012.html</wfw:comment><comments>http://www.blogjava.net/youlq/archive/2007/04/02/108012.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/youlq/comments/commentRss/108012.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youlq/services/trackbacks/108012.html</trackback:ping><description><![CDATA[<p>4.1InfoQ发布消息：<a title=http://www.infoq.com/news/2007/04/infoq-china href="http://www.blogjava.net/youlq/admin/InfoQ%20China%20Unlaunches">InfoQ China Unlaunches</a>&nbsp;还以为是愚人节报道～<br><br>到<a href="http://www.infoq.com/cn/">这里</a>一看，是真的！</p>
<p>InfoQ 的<a href="http://www.infoq.com/cn/about.jsp">http://www.infoq.com/cn/about.jsp</a><br><br>InfoQ 网站的与众不同之处及创新点包括： </p>
<ul>
    <li><strong>个性化。</strong>InfoQ 的内容涵盖多个社区，用户可以根据个人喜好自由定制感兴趣的社区内容，并且可以通过过滤话题/标签来进行进一步的网站内容定制。用户的个性化设置将决定网站首页显示的内容，以及他们的个性化 RSS Feed 和每周新闻邮件获取的内容。
    <li><strong>独家内容。</strong>InfoQ 发布的内容包括由领域专家撰写的每日新闻、技术文章、视频访谈、选自权威会议的视频讲座、技术案例分析和迷你书。
    <li><strong>国际化。</strong>InfoQ 中国提供全球站的英文技术文章、每日新闻和迷你书的中文翻译，并将在今后逐步实现全站内容的国际化。此外，InfoQ 计划发布包括日语和葡萄牙语（巴西）等多个子站点，以支持母语非英语的国家的技术社区。
    <li><strong>本地化。</strong>InfoQ 在今后将支持更多地区的本地新闻发布，比如 InfoQ 英国和 InfoQ 印度等。
    <li><strong>创新的技术，友好的体验。</strong>InfoQ 在设计时深切考虑到了用户的需求，通过大量应用 AJAX 技术，比如用户注册、评论、定制等，用户可以在最短的时间内得到最丰富的体验。InfoQ 不仅是一个讨论软件开发技术的站点，还是一个展示 Web 开发前景的最佳案例。 </li>
</ul>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/youlq/aggbug/108012.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youlq/" target="_blank">一餐三碗</a> 2007-04-02 17:08 <a href="http://www.blogjava.net/youlq/archive/2007/04/02/108012.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle 开放Toplink的全部源代码！</title><link>http://www.blogjava.net/youlq/archive/2007/03/07/102373.html</link><dc:creator>一餐三碗</dc:creator><author>一餐三碗</author><pubDate>Wed, 07 Mar 2007 05:09:00 GMT</pubDate><guid>http://www.blogjava.net/youlq/archive/2007/03/07/102373.html</guid><wfw:comment>http://www.blogjava.net/youlq/comments/102373.html</wfw:comment><comments>http://www.blogjava.net/youlq/archive/2007/03/07/102373.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/youlq/comments/commentRss/102373.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youlq/services/trackbacks/102373.html</trackback:ping><description><![CDATA[Toplink是业界领先的企业级商业ORM平台，早些年被Oracle收购。<br /><br />消息来源：<br /><br /><a href="http://www.prnewswire.com/cgi-bin/stories.pl?ACCT=109&amp;STORY=/www/story/03-06-2007/0004540774&amp;EDATE=">Oracle Proposes Open Source Persistence Project at Eclipse Foundation <br /></a><br />Today, at the EclipseCon Conference, Oracle (Nasdaq: <a onclick="var s=s_gi(s_account); var hd1 = document.getElementById('headline'); s.tl(this,'o',getLinkName('Company Sanpshot'));" href="http://studio.financialcontent.com/Engine?Account=prnewswire&amp;PageName=QUOTE&amp;Ticker=ORCL">ORCL</a>), a newly<br />appointed Eclipse Board Member and Strategic Developer, announced it will<br />donate its award winning Java persistence framework, Oracle(R) TopLink, to<br />the open source community. In addition, Oracle announced the proposal of a<br />new Eclipse project to deliver a comprehensive persistence platform based<br />on the contribution of Oracle TopLink, a component of Oracle Fusion<br />Middleware, source code and test cases.<br /><br /><br />Oracle官方网页：<br /><br /><a href="http://oss.oracle.com/oracle-eclipse-projects.html">http://oss.oracle.com/oracle-eclipse-projects.html</a><br />注意里面的FAQ: <a class="bodylink" href="http://www.oracle.com/technology/tech/eclipse/pdf/eclipselink-faq.pdf" s_oidt="0" s_oid="http://www.oracle.com/technology/tech/eclipse/pdf/eclipselink-faq.pdf">Eclipse Persistence Platform</a><br /><br />评论：<br /><br /><a href="http://www.it-eye.nl/weblog/2007/03/06/oracle-open-sources-toplink/">http://www.it-eye.nl/weblog/2007/03/06/oracle-open-sources-toplink/</a><br /><br /><img src ="http://www.blogjava.net/youlq/aggbug/102373.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youlq/" target="_blank">一餐三碗</a> 2007-03-07 13:09 <a href="http://www.blogjava.net/youlq/archive/2007/03/07/102373.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转贴]禁止windows自动更新后自动重启</title><link>http://www.blogjava.net/youlq/archive/2006/09/15/prevent_windows_automatic_updates_reboot.html</link><dc:creator>一餐三碗</dc:creator><author>一餐三碗</author><pubDate>Fri, 15 Sep 2006 01:14:00 GMT</pubDate><guid>http://www.blogjava.net/youlq/archive/2006/09/15/prevent_windows_automatic_updates_reboot.html</guid><wfw:comment>http://www.blogjava.net/youlq/comments/69795.html</wfw:comment><comments>http://www.blogjava.net/youlq/archive/2006/09/15/prevent_windows_automatic_updates_reboot.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/youlq/comments/commentRss/69795.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youlq/services/trackbacks/69795.html</trackback:ping><description><![CDATA[
		<p>注：windows自动更新后每次都会自动重启，真的很傻，没什么不加一个确认选项呢？还好，看到这篇文章。<br /><br /><br />原文链接：<a href="http://jroller.com/page/dschneller?entry=prevent_windows_automatic_updates_reboot">Prevent Windows automatic updates reboot</a><br /><br /></p>
		<p>Another one of those reminder posts: How to prevent the reboot triggered by the Windows automatic update feature.</p>
		<ul>
				<li>
						<p>Disable automatic updates completely. Not recommended.</p>
				</li>
				<li>
						<p>Change the policy. Recommended.</p>
						<ol>
								<li>
										<p>Start - Run - gpedit.msc</p>
								</li>
								<li>
										<p>Local Group Policy - Computer Configuration - Administrative Templates - Windows - Components - Windows Updates</p>
										<p>If you do not see the last element, use the context menu on Administrative Templates to add a new template. Pick the wuau.adm template and close the dialogs. Windows Updates should now show up.</p>
								</li>
								<li>
										<p>Activatge "No auto-restart for scheduled Automatic Updates Installations" and/or use a different warning interval.</p>
								</li>
						</ol>
				</li>
		</ul>
		<p>On XP Home go to or create the following registry key/value <code>HKEY_LOCAL_MACHINE \Software\Policies \Microsoft\Windows \WindowsUpdate\AU\NoAutoRebootWithLoggedOnUsers (Dword)</code> and set it to either 0 (allow reboots) or 1 (disallow reboots).</p>
<img src ="http://www.blogjava.net/youlq/aggbug/69795.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youlq/" target="_blank">一餐三碗</a> 2006-09-15 09:14 <a href="http://www.blogjava.net/youlq/archive/2006/09/15/prevent_windows_automatic_updates_reboot.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转载]Ajax based login using Acegi </title><link>http://www.blogjava.net/youlq/archive/2006/08/23/65226.html</link><dc:creator>一餐三碗</dc:creator><author>一餐三碗</author><pubDate>Wed, 23 Aug 2006 03:00:00 GMT</pubDate><guid>http://www.blogjava.net/youlq/archive/2006/08/23/65226.html</guid><wfw:comment>http://www.blogjava.net/youlq/comments/65226.html</wfw:comment><comments>http://www.blogjava.net/youlq/archive/2006/08/23/65226.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youlq/comments/commentRss/65226.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youlq/services/trackbacks/65226.html</trackback:ping><description><![CDATA[原文链接:<br /><br /><a title="http://www.jroller.com/page/sjivan?entry=ajax_based_login_using_aceci" href="http://www.jroller.com/page/sjivan?entry=ajax_based_login_using_aceci">http://www.jroller.com/page/sjivan?entry=ajax_based_login_using_aceci<br /></a><br /><p><a id="ajax_based_login_using_aceci" name="ajax_based_login_using_aceci"></a><b>Ajax based login using Acegi<br /></b><br /><a href="http://www.acegisecurity.org/">Acegi</a> is an extremely powerful Spring module for Authentication and Authorization and has almost become a defacto for web based applications built using Spring. Ajax based applications are getting hotter by the day and having a nice inplace Ajax based login page can improve coolness of your app and make it more Web 2.0'ish. </p><p>However implementing an Ajax-Acegi based login does require a little extra work because based on the J2EE spec, when a user tries to login, they are <b>redirected</b> back to the login page if the credentials are invalid or redirected to the success page on successful authentication. </p><img src ="http://www.blogjava.net/youlq/aggbug/65226.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youlq/" target="_blank">一餐三碗</a> 2006-08-23 11:00 <a href="http://www.blogjava.net/youlq/archive/2006/08/23/65226.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解决 Hibernate Annotation 的 "no persistent classes found for query class" 问题</title><link>http://www.blogjava.net/youlq/archive/2006/06/30/55892.html</link><dc:creator>一餐三碗</dc:creator><author>一餐三碗</author><pubDate>Fri, 30 Jun 2006 03:04:00 GMT</pubDate><guid>http://www.blogjava.net/youlq/archive/2006/06/30/55892.html</guid><wfw:comment>http://www.blogjava.net/youlq/comments/55892.html</wfw:comment><comments>http://www.blogjava.net/youlq/archive/2006/06/30/55892.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youlq/comments/commentRss/55892.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youlq/services/trackbacks/55892.html</trackback:ping><description><![CDATA[软件版本:<br />hibernate-3.2.0.cr2<br />hibernate-annotations-3.2.0.CR1<br /><br />IDE:<br />idea 5.1<br /><br />以前都是用XDoclet来实现类似Annotation的功能,但是xdoclet的版本更新实在太慢,永远跟不上hibernate的更新速度,导致很多hibernate新的功能xdoclet都没办法支持.还好,jdk5.0有了Annotation,而且hibernate也开始支持Annotation了.<br /><br />原来以为从xdoclet转到Annotation很简单,没想到还是遇到了问题,先看代码:<br /><br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"> 1</span><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> test;<br /></span><span style="COLOR: #008080"> 2</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /></span><span style="COLOR: #008080"> 3</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> org.hibernate.annotations.Entity;<br /></span><span style="COLOR: #008080"> 4</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /></span><span style="COLOR: #008080"> 5</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> javax.persistence.Id;<br /></span><span style="COLOR: #008080"> 6</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.io.Serializable;<br /></span><span style="COLOR: #008080"> 7</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /></span><span style="COLOR: #008080"> 8</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />@Entity<br /></span><span style="COLOR: #008080"> 9</span><span style="COLOR: #000000"><img id="Codehighlighter1_167_888_Open_Image" onclick="this.style.display='none'; Codehighlighter1_167_888_Open_Text.style.display='none'; Codehighlighter1_167_888_Closed_Image.style.display='inline'; Codehighlighter1_167_888_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_167_888_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_167_888_Closed_Text.style.display='none'; Codehighlighter1_167_888_Open_Image.style.display='inline'; Codehighlighter1_167_888_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> Flight </span><span style="COLOR: #0000ff">implements</span><span style="COLOR: #000000"> Serializable</span><span id="Codehighlighter1_167_888_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_167_888_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  Long id;<br /></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  String name;<br /></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  @Id<br /></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img id="Codehighlighter1_223_242_Open_Image" onclick="this.style.display='none'; Codehighlighter1_223_242_Open_Text.style.display='none'; Codehighlighter1_223_242_Closed_Image.style.display='inline'; Codehighlighter1_223_242_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_223_242_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_223_242_Closed_Text.style.display='none'; Codehighlighter1_223_242_Open_Image.style.display='inline'; Codehighlighter1_223_242_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> Long getId()</span><span id="Codehighlighter1_223_242_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_223_242_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> id;<br /></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />  }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img id="Codehighlighter1_273_293_Open_Image" onclick="this.style.display='none'; Codehighlighter1_273_293_Open_Text.style.display='none'; Codehighlighter1_273_293_Closed_Image.style.display='inline'; Codehighlighter1_273_293_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_273_293_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_273_293_Closed_Text.style.display='none'; Codehighlighter1_273_293_Open_Image.style.display='inline'; Codehighlighter1_273_293_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> setId(Long id)</span><span id="Codehighlighter1_273_293_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_273_293_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">id;<br /></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />  }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">21</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /></span><span style="COLOR: #008080">22</span><span style="COLOR: #000000"><img id="Codehighlighter1_321_342_Open_Image" onclick="this.style.display='none'; Codehighlighter1_321_342_Open_Text.style.display='none'; Codehighlighter1_321_342_Closed_Image.style.display='inline'; Codehighlighter1_321_342_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_321_342_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_321_342_Closed_Text.style.display='none'; Codehighlighter1_321_342_Open_Image.style.display='inline'; Codehighlighter1_321_342_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> String getName()</span><span id="Codehighlighter1_321_342_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_321_342_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">23</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> name;<br /></span><span style="COLOR: #008080">24</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />  }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">25</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /></span><span style="COLOR: #008080">26</span><span style="COLOR: #000000"><img id="Codehighlighter1_379_403_Open_Image" onclick="this.style.display='none'; Codehighlighter1_379_403_Open_Text.style.display='none'; Codehighlighter1_379_403_Closed_Image.style.display='inline'; Codehighlighter1_379_403_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_379_403_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_379_403_Closed_Text.style.display='none'; Codehighlighter1_379_403_Open_Image.style.display='inline'; Codehighlighter1_379_403_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> setName(String name)</span><span id="Codehighlighter1_379_403_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_379_403_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">27</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">name;<br /></span><span style="COLOR: #008080">28</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />  }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">29</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /></span><span style="COLOR: #008080">30</span><span style="COLOR: #000000"><img id="Codehighlighter1_439_729_Open_Image" onclick="this.style.display='none'; Codehighlighter1_439_729_Open_Text.style.display='none'; Codehighlighter1_439_729_Closed_Image.style.display='inline'; Codehighlighter1_439_729_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_439_729_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_439_729_Closed_Text.style.display='none'; Codehighlighter1_439_729_Open_Image.style.display='inline'; Codehighlighter1_439_729_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">boolean</span><span style="COLOR: #000000"> equals(Object o)</span><span id="Codehighlighter1_439_729_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_439_729_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">31</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">o) </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">32</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(o</span><span style="COLOR: #000000">==</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">getClass()</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">o.getClass()) </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">33</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /></span><span style="COLOR: #008080">34</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">final</span><span style="COLOR: #000000"> Flight flight</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(Flight)o;<br /></span><span style="COLOR: #008080">35</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /></span><span style="COLOR: #008080">36</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(id</span><span style="COLOR: #000000">!=</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">?!</span><span style="COLOR: #000000">id.equals(flight.id):flight.id</span><span style="COLOR: #000000">!=</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">) </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">37</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(name</span><span style="COLOR: #000000">!=</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">?!</span><span style="COLOR: #000000">name.equals(flight.name):flight.name</span><span style="COLOR: #000000">!=</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">) </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">38</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /></span><span style="COLOR: #008080">39</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">40</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />  }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">41</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /></span><span style="COLOR: #008080">42</span><span style="COLOR: #000000"><img id="Codehighlighter1_755_886_Open_Image" onclick="this.style.display='none'; Codehighlighter1_755_886_Open_Text.style.display='none'; Codehighlighter1_755_886_Closed_Image.style.display='inline'; Codehighlighter1_755_886_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_755_886_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_755_886_Closed_Text.style.display='none'; Codehighlighter1_755_886_Open_Image.style.display='inline'; Codehighlighter1_755_886_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> hashCode()</span><span id="Codehighlighter1_755_886_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_755_886_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">43</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> result;<br /></span><span style="COLOR: #008080">44</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    result</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(id</span><span style="COLOR: #000000">!=</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">id.hashCode():</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">45</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    result</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">29</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">result</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">(name</span><span style="COLOR: #000000">!=</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">name.hashCode():</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">46</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> result;<br /></span><span style="COLOR: #008080">47</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />  }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">48</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">49</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div><br /><br />看上去没什么问题吧?没想到运行的时候根本跑不起来,老是提示:<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">     [java] </span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">54</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">55</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">842</span><span style="COLOR: #000000">  INFO SessionFactoryObjectFactory:</span><span style="COLOR: #000000">82</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000"> Not binding factory to JNDI, no JNDI name configured<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />     [java] org.hibernate.hql.ast.QuerySyntaxException: Flight is not mapped [from Flight]<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />     [java]     at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:</span><span style="COLOR: #000000">180</span><span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />     [java]     at org.apache.tools.ant.taskdefs.Java.run(Java.java:</span><span style="COLOR: #000000">710</span><span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />     [java]     at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:</span><span style="COLOR: #000000">178</span><span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />     [java]     at org.apache.tools.ant.taskdefs.Java.execute(Java.java:</span><span style="COLOR: #000000">84</span><span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />     [java]     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:</span><span style="COLOR: #000000">275</span><span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />     [java]     at org.apache.tools.ant.Task.perform(Task.java:</span><span style="COLOR: #000000">364</span><span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />     [java]     at org.apache.tools.ant.Target.execute(Target.java:</span><span style="COLOR: #000000">341</span><span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />     [java]     at org.apache.tools.ant.Target.performTasks(Target.java:</span><span style="COLOR: #000000">369</span><span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />     [java]     at org.apache.tools.ant.Project.executeSortedTargets(Project.java:</span><span style="COLOR: #000000">1216</span><span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />     [java]     at org.apache.tools.ant.Project.executeTarget(Project.java:</span><span style="COLOR: #000000">1185</span><span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />     [java]     at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:</span><span style="COLOR: #000000">40</span><span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />     [java]     at org.apache.tools.ant.Project.executeTargets(Project.java:</span><span style="COLOR: #000000">1068</span><span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />     [java]     at org.apache.tools.ant.Main.runBuild(Main.java:</span><span style="COLOR: #000000">668</span><span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />     [java]     at org.apache.tools.ant.Main.startAnt(Main.java:</span><span style="COLOR: #000000">187</span><span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />     [java]     at org.apache.tools.ant.launch.Launcher.run(Launcher.java:</span><span style="COLOR: #000000">246</span><span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />     [java]     at org.apache.tools.ant.launch.Launcher.main(Launcher.java:</span><span style="COLOR: #000000">67</span><span style="COLOR: #000000">)</span></div><br />看了半天看不出有什么问题,最后终于参考hibernate-annotations-3.2.0.CR1里面单元测试的代码才发现是这段代码有问题:<br /><br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">1</span><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> org.hibernate.annotations.Entity;<br /></span><span style="COLOR: #008080">2</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /></span><span style="COLOR: #008080">3</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> javax.persistence.Id;<br /></span><span style="COLOR: #008080">4</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.io.Serializable;<br /></span><span style="COLOR: #008080">5</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div><br /><br />要改成:<br /><br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">1</span><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> javax.persistence.Id;<br /></span><span style="COLOR: #008080">2</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> javax.persistence.Entity;<br /></span><span style="COLOR: #008080">3</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.io.Serializable;</span></div><br /><br />原来我用idea开发时,在自动完成的时候想当然地选用了org.hibernate.annotations包下面的annotation,而实际上应该使用javax.persistence包下面的annotation.想想看也很有道理:这样一来我们的JAVA bean就不用import hibernate的包了,用的都是标准的java包.<img src ="http://www.blogjava.net/youlq/aggbug/55892.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youlq/" target="_blank">一餐三碗</a> 2006-06-30 11:04 <a href="http://www.blogjava.net/youlq/archive/2006/06/30/55892.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[原创]使用Acegi时获取用户信息的几个函数</title><link>http://www.blogjava.net/youlq/archive/2006/03/03/33487.html</link><dc:creator>一餐三碗</dc:creator><author>一餐三碗</author><pubDate>Fri, 03 Mar 2006 08:17:00 GMT</pubDate><guid>http://www.blogjava.net/youlq/archive/2006/03/03/33487.html</guid><wfw:comment>http://www.blogjava.net/youlq/comments/33487.html</wfw:comment><comments>http://www.blogjava.net/youlq/archive/2006/03/03/33487.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/youlq/comments/commentRss/33487.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youlq/services/trackbacks/33487.html</trackback:ping><description><![CDATA[Acegi框架通过ThreadLocal存放用户信息，因此可以通过以下函数获取相关信息：<BR><BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG id=Codehighlighter1_2_36_Open_Image onclick="this.style.display='none'; Codehighlighter1_2_36_Open_Text.style.display='none'; Codehighlighter1_2_36_Closed_Image.style.display='inline'; Codehighlighter1_2_36_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_2_36_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2_36_Closed_Text.style.display='none'; Codehighlighter1_2_36_Open_Image.style.display='inline'; Codehighlighter1_2_36_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top><SPAN style="COLOR: #000000">&nbsp;&nbsp;</SPAN><SPAN id=Codehighlighter1_2_36_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**&nbsp;*/</SPAN><SPAN id=Codehighlighter1_2_36_Open_Text><SPAN style="COLOR: #008000">/**</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;*&nbsp;取得当前用户名<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;*&nbsp;</SPAN><SPAN style="COLOR: #808080">@return</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">*/</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG id=Codehighlighter1_74_585_Open_Image onclick="this.style.display='none'; Codehighlighter1_74_585_Open_Text.style.display='none'; Codehighlighter1_74_585_Closed_Image.style.display='inline'; Codehighlighter1_74_585_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_74_585_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_74_585_Closed_Text.style.display='none'; Codehighlighter1_74_585_Open_Image.style.display='inline'; Codehighlighter1_74_585_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">static</SPAN><SPAN style="COLOR: #000000">&nbsp;String&nbsp;getUsername()</SPAN><SPAN id=Codehighlighter1_74_585_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_74_585_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Context&nbsp;context</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">ContextHolder.getContext();<BR><IMG id=Codehighlighter1_145_564_Open_Image onclick="this.style.display='none'; Codehighlighter1_145_564_Open_Text.style.display='none'; Codehighlighter1_145_564_Closed_Image.style.display='inline'; Codehighlighter1_145_564_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_145_564_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_145_564_Closed_Text.style.display='none'; Codehighlighter1_145_564_Open_Image.style.display='inline'; Codehighlighter1_145_564_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(context</SPAN><SPAN style="COLOR: #000000">!=</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN id=Codehighlighter1_145_564_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_145_564_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG id=Codehighlighter1_189_558_Open_Image onclick="this.style.display='none'; Codehighlighter1_189_558_Open_Text.style.display='none'; Codehighlighter1_189_558_Closed_Image.style.display='inline'; Codehighlighter1_189_558_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_189_558_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_189_558_Closed_Text.style.display='none'; Codehighlighter1_189_558_Open_Image.style.display='inline'; Codehighlighter1_189_558_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(context&nbsp;</SPAN><SPAN style="COLOR: #0000ff">instanceof</SPAN><SPAN style="COLOR: #000000">&nbsp;SecureContext)</SPAN><SPAN id=Codehighlighter1_189_558_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_189_558_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SecureContext&nbsp;sc</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">(SecureContext)context;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Authentication&nbsp;auth</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">sc.getAuthentication();<BR><IMG id=Codehighlighter1_314_550_Open_Image onclick="this.style.display='none'; Codehighlighter1_314_550_Open_Text.style.display='none'; Codehighlighter1_314_550_Closed_Image.style.display='inline'; Codehighlighter1_314_550_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_314_550_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_314_550_Closed_Text.style.display='none'; Codehighlighter1_314_550_Open_Image.style.display='inline'; Codehighlighter1_314_550_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(auth</SPAN><SPAN style="COLOR: #000000">!=</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN id=Codehighlighter1_314_550_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_314_550_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;principal</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">auth.getPrincipal();<BR><IMG id=Codehighlighter1_411_482_Open_Image onclick="this.style.display='none'; Codehighlighter1_411_482_Open_Text.style.display='none'; Codehighlighter1_411_482_Closed_Image.style.display='inline'; Codehighlighter1_411_482_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_411_482_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_411_482_Closed_Text.style.display='none'; Codehighlighter1_411_482_Open_Image.style.display='inline'; Codehighlighter1_411_482_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(principal&nbsp;</SPAN><SPAN style="COLOR: #0000ff">instanceof</SPAN><SPAN style="COLOR: #000000">&nbsp;UserDetails)&nbsp;</SPAN><SPAN id=Codehighlighter1_411_482_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_411_482_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">&nbsp;((UserDetails)principal).getUsername();<BR><IMG id=Codehighlighter1_487_540_Open_Image onclick="this.style.display='none'; Codehighlighter1_487_540_Open_Text.style.display='none'; Codehighlighter1_487_540_Closed_Image.style.display='inline'; Codehighlighter1_487_540_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_487_540_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_487_540_Closed_Text.style.display='none'; Codehighlighter1_487_540_Open_Image.style.display='inline'; Codehighlighter1_487_540_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #0000ff">else</SPAN><SPAN id=Codehighlighter1_487_540_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_487_540_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">&nbsp;principal.toString();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG id=Codehighlighter1_589_624_Open_Image onclick="this.style.display='none'; Codehighlighter1_589_624_Open_Text.style.display='none'; Codehighlighter1_589_624_Closed_Image.style.display='inline'; Codehighlighter1_589_624_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_589_624_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_589_624_Closed_Text.style.display='none'; Codehighlighter1_589_624_Open_Image.style.display='inline'; Codehighlighter1_589_624_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN id=Codehighlighter1_589_624_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**&nbsp;*/</SPAN><SPAN id=Codehighlighter1_589_624_Open_Text><SPAN style="COLOR: #008000">/**</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;*&nbsp;取得当前用户密码<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;*&nbsp;</SPAN><SPAN style="COLOR: #808080">@return</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">*/</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG id=Codehighlighter1_662_1157_Open_Image onclick="this.style.display='none'; Codehighlighter1_662_1157_Open_Text.style.display='none'; Codehighlighter1_662_1157_Closed_Image.style.display='inline'; Codehighlighter1_662_1157_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_662_1157_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_662_1157_Closed_Text.style.display='none'; Codehighlighter1_662_1157_Open_Image.style.display='inline'; Codehighlighter1_662_1157_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">static</SPAN><SPAN style="COLOR: #000000">&nbsp;String&nbsp;getPassword()</SPAN><SPAN id=Codehighlighter1_662_1157_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_662_1157_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Context&nbsp;context</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">ContextHolder.getContext();<BR><IMG id=Codehighlighter1_733_1136_Open_Image onclick="this.style.display='none'; Codehighlighter1_733_1136_Open_Text.style.display='none'; Codehighlighter1_733_1136_Closed_Image.style.display='inline'; Codehighlighter1_733_1136_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_733_1136_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_733_1136_Closed_Text.style.display='none'; Codehighlighter1_733_1136_Open_Image.style.display='inline'; Codehighlighter1_733_1136_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(context</SPAN><SPAN style="COLOR: #000000">!=</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN id=Codehighlighter1_733_1136_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_733_1136_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG id=Codehighlighter1_777_1130_Open_Image onclick="this.style.display='none'; Codehighlighter1_777_1130_Open_Text.style.display='none'; Codehighlighter1_777_1130_Closed_Image.style.display='inline'; Codehighlighter1_777_1130_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_777_1130_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_777_1130_Closed_Text.style.display='none'; Codehighlighter1_777_1130_Open_Image.style.display='inline'; Codehighlighter1_777_1130_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(context&nbsp;</SPAN><SPAN style="COLOR: #0000ff">instanceof</SPAN><SPAN style="COLOR: #000000">&nbsp;SecureContext)</SPAN><SPAN id=Codehighlighter1_777_1130_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_777_1130_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SecureContext&nbsp;sc</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">(SecureContext)context;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Authentication&nbsp;auth</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">sc.getAuthentication();<BR><IMG id=Codehighlighter1_902_1122_Open_Image onclick="this.style.display='none'; Codehighlighter1_902_1122_Open_Text.style.display='none'; Codehighlighter1_902_1122_Closed_Image.style.display='inline'; Codehighlighter1_902_1122_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_902_1122_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_902_1122_Closed_Text.style.display='none'; Codehighlighter1_902_1122_Open_Image.style.display='inline'; Codehighlighter1_902_1122_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(auth</SPAN><SPAN style="COLOR: #000000">!=</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN id=Codehighlighter1_902_1122_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_902_1122_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;principal</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">auth.getPrincipal();<BR><IMG id=Codehighlighter1_999_1070_Open_Image onclick="this.style.display='none'; Codehighlighter1_999_1070_Open_Text.style.display='none'; Codehighlighter1_999_1070_Closed_Image.style.display='inline'; Codehighlighter1_999_1070_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_999_1070_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_999_1070_Closed_Text.style.display='none'; Codehighlighter1_999_1070_Open_Image.style.display='inline'; Codehighlighter1_999_1070_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(principal&nbsp;</SPAN><SPAN style="COLOR: #0000ff">instanceof</SPAN><SPAN style="COLOR: #000000">&nbsp;UserDetails)&nbsp;</SPAN><SPAN id=Codehighlighter1_999_1070_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_999_1070_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">&nbsp;((UserDetails)principal).getPassword();<BR><IMG id=Codehighlighter1_1075_1112_Open_Image onclick="this.style.display='none'; Codehighlighter1_1075_1112_Open_Text.style.display='none'; Codehighlighter1_1075_1112_Closed_Image.style.display='inline'; Codehighlighter1_1075_1112_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1075_1112_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1075_1112_Closed_Text.style.display='none'; Codehighlighter1_1075_1112_Open_Image.style.display='inline'; Codehighlighter1_1075_1112_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #0000ff">else</SPAN><SPAN id=Codehighlighter1_1075_1112_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1075_1112_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG id=Codehighlighter1_1161_1222_Open_Image onclick="this.style.display='none'; Codehighlighter1_1161_1222_Open_Text.style.display='none'; Codehighlighter1_1161_1222_Closed_Image.style.display='inline'; Codehighlighter1_1161_1222_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_1161_1222_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1161_1222_Closed_Text.style.display='none'; Codehighlighter1_1161_1222_Open_Image.style.display='inline'; Codehighlighter1_1161_1222_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN id=Codehighlighter1_1161_1222_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**&nbsp;*/</SPAN><SPAN id=Codehighlighter1_1161_1222_Open_Text><SPAN style="COLOR: #008000">/**</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;*&nbsp;取得当前用户ｓｅｓｓｉｏｎ　ｉｄ<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;*&nbsp;</SPAN><SPAN style="COLOR: #808080">@return</SPAN><SPAN style="COLOR: #008000">&nbsp;sessionid&nbsp;or&nbsp;null<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">*/</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG id=Codehighlighter1_1261_1775_Open_Image onclick="this.style.display='none'; Codehighlighter1_1261_1775_Open_Text.style.display='none'; Codehighlighter1_1261_1775_Closed_Image.style.display='inline'; Codehighlighter1_1261_1775_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_1261_1775_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1261_1775_Closed_Text.style.display='none'; Codehighlighter1_1261_1775_Open_Image.style.display='inline'; Codehighlighter1_1261_1775_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">static</SPAN><SPAN style="COLOR: #000000">&nbsp;String&nbsp;getSessionID()</SPAN><SPAN id=Codehighlighter1_1261_1775_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1261_1775_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Context&nbsp;context</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">ContextHolder.getContext();<BR><IMG id=Codehighlighter1_1332_1754_Open_Image onclick="this.style.display='none'; Codehighlighter1_1332_1754_Open_Text.style.display='none'; Codehighlighter1_1332_1754_Closed_Image.style.display='inline'; Codehighlighter1_1332_1754_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1332_1754_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1332_1754_Closed_Text.style.display='none'; Codehighlighter1_1332_1754_Open_Image.style.display='inline'; Codehighlighter1_1332_1754_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(context</SPAN><SPAN style="COLOR: #000000">!=</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN id=Codehighlighter1_1332_1754_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1332_1754_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG id=Codehighlighter1_1376_1748_Open_Image onclick="this.style.display='none'; Codehighlighter1_1376_1748_Open_Text.style.display='none'; Codehighlighter1_1376_1748_Closed_Image.style.display='inline'; Codehighlighter1_1376_1748_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1376_1748_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1376_1748_Closed_Text.style.display='none'; Codehighlighter1_1376_1748_Open_Image.style.display='inline'; Codehighlighter1_1376_1748_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(context&nbsp;</SPAN><SPAN style="COLOR: #0000ff">instanceof</SPAN><SPAN style="COLOR: #000000">&nbsp;SecureContext)</SPAN><SPAN id=Codehighlighter1_1376_1748_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1376_1748_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SecureContext&nbsp;sc</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">(SecureContext)context;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Authentication&nbsp;auth</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">sc.getAuthentication();<BR><IMG id=Codehighlighter1_1501_1740_Open_Image onclick="this.style.display='none'; Codehighlighter1_1501_1740_Open_Text.style.display='none'; Codehighlighter1_1501_1740_Closed_Image.style.display='inline'; Codehighlighter1_1501_1740_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1501_1740_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1501_1740_Closed_Text.style.display='none'; Codehighlighter1_1501_1740_Open_Image.style.display='inline'; Codehighlighter1_1501_1740_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(auth</SPAN><SPAN style="COLOR: #000000">!=</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN id=Codehighlighter1_1501_1740_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1501_1740_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;details</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">auth.getDetails();<BR><IMG id=Codehighlighter1_1605_1688_Open_Image onclick="this.style.display='none'; Codehighlighter1_1605_1688_Open_Text.style.display='none'; Codehighlighter1_1605_1688_Closed_Image.style.display='inline'; Codehighlighter1_1605_1688_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1605_1688_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1605_1688_Closed_Text.style.display='none'; Codehighlighter1_1605_1688_Open_Image.style.display='inline'; Codehighlighter1_1605_1688_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(details&nbsp;</SPAN><SPAN style="COLOR: #0000ff">instanceof</SPAN><SPAN style="COLOR: #000000">&nbsp;WebAuthenticationDetails)&nbsp;</SPAN><SPAN id=Codehighlighter1_1605_1688_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1605_1688_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">&nbsp;((WebAuthenticationDetails)details).getSessionId();<BR><IMG id=Codehighlighter1_1693_1730_Open_Image onclick="this.style.display='none'; Codehighlighter1_1693_1730_Open_Text.style.display='none'; Codehighlighter1_1693_1730_Closed_Image.style.display='inline'; Codehighlighter1_1693_1730_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1693_1730_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1693_1730_Closed_Text.style.display='none'; Codehighlighter1_1693_1730_Open_Image.style.display='inline'; Codehighlighter1_1693_1730_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #0000ff">else</SPAN><SPAN id=Codehighlighter1_1693_1730_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1693_1730_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV><img src ="http://www.blogjava.net/youlq/aggbug/33487.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youlq/" target="_blank">一餐三碗</a> 2006-03-03 16:17 <a href="http://www.blogjava.net/youlq/archive/2006/03/03/33487.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转载]可重用的AJAX 控件（AJAX Widgets）列表</title><link>http://www.blogjava.net/youlq/archive/2006/02/09/29995.html</link><dc:creator>一餐三碗</dc:creator><author>一餐三碗</author><pubDate>Thu, 09 Feb 2006 01:24:00 GMT</pubDate><guid>http://www.blogjava.net/youlq/archive/2006/02/09/29995.html</guid><wfw:comment>http://www.blogjava.net/youlq/comments/29995.html</wfw:comment><comments>http://www.blogjava.net/youlq/archive/2006/02/09/29995.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youlq/comments/commentRss/29995.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youlq/services/trackbacks/29995.html</trackback:ping><description><![CDATA[出处：<BR><BR><A href="http://www.maxkiesler.com/index.php/weblog/comments/downloadable_web_20_and_ajax_widgets1/">http://www.maxkiesler.com/index.php/weblog/comments/downloadable_web_20_and_ajax_widgets1/</A><BR><BR>
<H3>Downloadable Web 2.0 and AJAX Widgets</H3>
<P><IMG height=50 alt=image src="http://www.maxkiesler.com/images/uploads/ideacodes-max.png" width=170 border=0 name=image> It seems as though every other day a new web 2.0 or AJAX widget comes to the attention of del.icio.us or Google. Many user interface elements lend themselves to being "ajaxified". Calendars, image galleries, contact forms and auto-complete search functions are currently very popular. The problem is how to find working and downloadable examples. This post is an attempt to provide a list of the current best of the best web 2.0 and AJAX widgets that can be downloaded and integrated into your website.<BR></P><BR>I've been looking at AJAX widgets for about six months now through my own site <A title=mHub href="http://www.maxkiesler.com/index.php/mhub/"><FONT color=#ff0000>mHub</FONT></A> so these are ones 've downloaded and installed so I've made sure they are understandable by the average designer or developer.<BR><BR>Before you use the following widgets, it would be a good idea to read the following articles. These articles will guide you on what to do and what not to do with AJAX. Have fun. : )<BR><A title="<br />&#10;Jeffrey Veen posts: Designing for the subtlety of Ajax" href="http://www.veen.com/jeff/archives/000739.html"><BR><FONT color=#ff0000>Jeffrey Veen posts: Designing for the subtlety of Ajax</FONT></A><BR><A title="Increasing the Strength of Ajax" href="http://meyerweb.com/eric/thoughts/2005/06/19/increasing-the-strength-of-ajax/"><FONT color=#ff0000>Increasing the Strength of Ajax</FONT></A><BR><A title="Alex Bosworth posts Ajax Mistakes" href="http://sourcelabs.com/ajb/archives/2005/05/ajax_mistakes.html"><FONT color=#ff0000>Alex Bosworth posts Ajax Mistakes</FONT></A><BR><BR><B>AJAX: Image Galleries</B><BR><A title="Zen Photo" href="http://www.zenphoto.org/"><FONT color=#ff0000>Zen Photo</FONT></A><BR>One of the nicest and most complete image gallery with AJAX functions. Features include uploading, comments, AJAX-powered edit-while-you-browse, and a theme engine. <BR><BR><A title="AJAX Image Gallery Example - Alpha Release" href="http://www.maxkiesler.com/index.php/weblog/comments/147/"><FONT color=#ff0000>AJAX Image Gallery Example - Alpha Release</FONT></A><BR>Both of these are extreme alpha developer releases. These two examples are really mash-ups of existing code to show what is possible.<BR><BR><B>AJAX Calendars</B><BR><A title="Monket Calendar" href="http://www.monket.net/wiki/monket-calendar"><FONT color=#ff0000>Monket Calendar</FONT></A><BR>An Ajax enabled online calendar. Drag and drop events to change dates, drag the start/end of an event to create multi-day events, create and edit events without refreshing the page, all with an iCal style interface.The current release works in all major browsers (Firefox, Opera, Safari, and Internet Explorer). IE support still has a few bugs, namely the previous/next month links not working, and the need to click on a multi-day event before you can resize it.<BR><BR><B>AJAX Contact Forms</B><BR><A title="Dustin's Ajax Contact Form" href="http://www.dustindiaz.com/ajax-contact-form/"><FONT color=#ff0000>Dustin's Ajax Contact Form</FONT></A><BR>At this point this is probably the most used AJAX contact form on the web. I first found it right after he first made one for himself and announced it but had no download or documentation. Now he has a nice page devoted to his easy to use AJAX contact form with a download and documentation. <BR><BR><A title="AJAX and PHP Form Processing" href="http://jeffpipas.com/blog/archives/2005/07/ajax_and_php_fo.html#"><FONT color=#ff0000>AJAX and PHP Form Processing</FONT></A><BR>This is a nice tutorial, with example file that shows you how to make a php contact form with some easy to understand AJAX effects from Scriptaculous.<BR><BR><A title="The Zapatec AJAX Forms" href="http://www.zapatec.com/website/main/products/forms/"><FONT color=#ff0000>The Zapatec AJAX Forms</FONT></A> <BR>Very nicely executed forms with a stripped down free download. These forms, "perform validation, provide feedback, and display error messages that enrich the user's experience while reducing the communications with the server behind the scenes." The paid versions have some amazing functionality.<BR><BR><B>Ajax Keyword Suggest</B><BR><A title=" Ajax Keyword Suggest Demo" href="http://www.ajaxed.com/"><FONT color=#ff0000>Ajax Keyword Suggest Demo</FONT></A><BR>Want to add Keyword Suggest functionality into your site without installing new software? No Problem. Simply Login to ajaxed.com and create and customize your own Keyword Suggest List. All you have to do is copy and paste a small piece of code into your html page and you'll have the feature running instantly.<BR><BR><A title="Ajax Suggest box for HTML Forms" href="http://www.crackajax.net/suggest.php"><FONT color=#ff0000>Ajax Suggest box for HTML Forms</FONT></A><BR>Tutorial explaining how to use Ajax (Asynchronous Javascript and XML) to create a drop-down 'suggest' box for form fields which updates as you type by querying the server in the background. Similar to the 'Google Suggest' application. Full tutorial, code snippets and further reources. <BR><BR><B>AJAX Login Systems</B><BR><A title="Creating a secure login system using XMLHttpRequest" href="http://www.jamesdam.com/ajax_login/login.html"><FONT color=#ff0000>Creating a secure login system using XMLHttpRequest</FONT></A><BR>This is an example of a login system that does not require page refreshes, but is still very secure.<BR><BR><B>AJAX Slideshows</B><BR><A title="AJAX Slideshow" href="http://www.maxkiesler.com/index.php/weblog/comments/ajax_slideshow/"><FONT color=#ff0000>AJAX Slideshow</FONT></A><BR>It resizes, it transitions, it fades in and out and it's not flash! The new AJAX slideshow on the homepage of my site comes to you courtesy of Scott Upton at Uptonic.<BR><BR><B>AJAX Surveys</B><BR><A title="Asynchronous Polling" href="http://javanet1-staging.locaweb.com/ajax-refreshing-data/"><FONT color=#ff0000>Asynchronous Polling</FONT></A><BR>This example shows how you can use AJAX to do server-side polling without to update page data without a page refresh.<BR><BR><B>Tabbed AJAX Websites</B><BR><A title="Make an AJAX Website in Less than 10 Minutes" href="http://www.maxkiesler.com/index.php/weblog/comments/make_an_ajax_website_in_less_than_10_minutes/"><FONT color=#ff0000>Make an AJAX Website in Less than 10 Minutes</FONT></A><BR>I've been toying around with AJAX apps and XMLHttpRequest but have wanted to put up a site that loads all of its content asynchronously. If you're like me and you learn best from working with examples you're only 10 minutes away from your first AJAX website.<BR><A title="<br />&#10;Ajax Project - Tabbed Page Interface" href="http://www.crackajax.net/tabs.php"><BR><FONT color=#ff0000>Ajax Project - Tabbed Page Interface</FONT></A><BR>There are quite a few Javascript implementations of tabbed interfaces out there on the web. How much better, though, to be able to change from pagetab to pagetab without a page refresh? Here's an example of a tabbed interface using Ajax to load the new pages.<BR><BR><img src ="http://www.blogjava.net/youlq/aggbug/29995.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youlq/" target="_blank">一餐三碗</a> 2006-02-09 09:24 <a href="http://www.blogjava.net/youlq/archive/2006/02/09/29995.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转载]How to get (almost) 3 GB heap on Windows!</title><link>http://www.blogjava.net/youlq/archive/2005/12/08/22956.html</link><dc:creator>一餐三碗</dc:creator><author>一餐三碗</author><pubDate>Thu, 08 Dec 2005 03:38:00 GMT</pubDate><guid>http://www.blogjava.net/youlq/archive/2005/12/08/22956.html</guid><wfw:comment>http://www.blogjava.net/youlq/comments/22956.html</wfw:comment><comments>http://www.blogjava.net/youlq/archive/2005/12/08/22956.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youlq/comments/commentRss/22956.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youlq/services/trackbacks/22956.html</trackback:ping><description><![CDATA[介绍如何使用JRockit 5.0 R26突破2G的单进程应用程序应用内存限制(最大能扩大到3.85 GB )<BR><BR>原文:<A href="http://dev2dev.bea.com/blog/hstahl/archive/2005/12/how_to_get_almo.html">http://dev2dev.bea.com/blog/hstahl/archive/2005/12/how_to_get_almo.html</A><img src ="http://www.blogjava.net/youlq/aggbug/22956.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youlq/" target="_blank">一餐三碗</a> 2005-12-08 11:38 <a href="http://www.blogjava.net/youlq/archive/2005/12/08/22956.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[原创]实战Acegi：使用Acegi作为基于Spring框架的WEB应用的安全框架</title><link>http://www.blogjava.net/youlq/archive/2005/12/06/22678.html</link><dc:creator>一餐三碗</dc:creator><author>一餐三碗</author><pubDate>Tue, 06 Dec 2005 02:49:00 GMT</pubDate><guid>http://www.blogjava.net/youlq/archive/2005/12/06/22678.html</guid><wfw:comment>http://www.blogjava.net/youlq/comments/22678.html</wfw:comment><comments>http://www.blogjava.net/youlq/archive/2005/12/06/22678.html#Feedback</comments><slash:comments>72</slash:comments><wfw:commentRss>http://www.blogjava.net/youlq/comments/commentRss/22678.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youlq/services/trackbacks/22678.html</trackback:ping><description><![CDATA[<H2>实战Acegi：使用Acegi作为基于Spring框架的WEB应用的安全框架</H2>
<P>最近项目使用Acegi作为安全框架的实现,效果不错,就写了这篇文章作为总结.<BR><BR>对于任何一个完整的应用系统，完善的认证和授权机制是必不可少的。在基于SpringFramework的WEB应用中，<BR>我们可以使用Acegi作为安全架构的实现。本文将介绍如何在基于Spring构架的Web应用中使用Acegi，并且详细介<BR>绍如何配置和扩展Acegi框架以适应实际需要。<BR></P>
<P>文章和代码下载:<BR><BR><A href="/Files/youlq/Acegi.zip">http://www.blogjava.net/Files/youlq/Acegi.zip</A><BR><BR><BR><STRONG><FONT color=#ff0000>注意：许多朋友在部署上遇到一些麻烦，所以我将可以部署的完整的war文件传上来，注意：java代码在acegi-sample.war\WEB-INF 目录下，例子需要Mysql，建库脚本在acegi-sample.war\db目录下。</FONT></STRONG><BR><BR><A href="/Files/youlq/acegi-sample.part1.rar"><FONT color=#002c99>acegi-sample.part1.rar</FONT></A><BR><A href="/Files/youlq/acegi-sample.part2.rar"><FONT color=#002c99>acegi-sample.part2.rar</FONT></A><BR><A href="/Files/youlq/acegi-sample.part3.rar"><FONT color=#002c99>acegi-sample.part3.rar</FONT></A><BR><A href="/Files/youlq/acegi-sample.part4.rar"><FONT color=#002c99>acegi-sample.part4.rar</FONT></A><BR><BR>附注：<BR><BR>有些朋友询问我如何部署文中的例子，在此再次说明一下（文章中已经有提到）：<BR><BR>Mysql的建表脚本在db目录下<BR>为了减小体积，已经将WEB-INF\lib下的依赖包删除，请自行下载以下包，并拷贝至WEB-INF\lib下：<BR>spring-1.2.4.jar<BR>acegi-security-0.8.3.jar<BR>aopalliance-1.0.jar<BR>c3p0-0.9.0.jar<BR>commons-logging-1.0.4.jar<BR>ehcache-1.1.jar<BR>log4j-1.2.8.jar<BR>mysql-connector-java-3.1.10-bin.jar<BR>oro-2.0.8.jar<BR><BR>提示：<BR>acegi-security-0.8.3.jar<BR>aopalliance-1.0.jar<BR>c3p0-0.9.0.jar<BR>commons-logging-1.0.4.jar<BR>ehcache-1.1.jar<BR>log4j-1.2.8.jar<BR>oro-2.0.8.jar<BR>可以在acegi-security-0.8.3.zip所带的acegi-security-sample-contacts-filter.war中找到。<BR>spring-1.2.4.jar<BR>mysql-connector-java-3.1.10-bin.jar<BR>要分别到springframework和mysql网站下载。</P><BR><BR><img src ="http://www.blogjava.net/youlq/aggbug/22678.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youlq/" target="_blank">一餐三碗</a> 2005-12-06 10:49 <a href="http://www.blogjava.net/youlq/archive/2005/12/06/22678.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>