﻿<?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-daixj110</title><link>http://www.blogjava.net/daixj110/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 03 May 2026 07:42:12 GMT</lastBuildDate><pubDate>Sun, 03 May 2026 07:42:12 GMT</pubDate><ttl>60</ttl><item><title>学习知识转载</title><link>http://www.blogjava.net/daixj110/archive/2010/10/30/336572.html</link><dc:creator>游龙!</dc:creator><author>游龙!</author><pubDate>Sat, 30 Oct 2010 11:37:00 GMT</pubDate><guid>http://www.blogjava.net/daixj110/archive/2010/10/30/336572.html</guid><wfw:comment>http://www.blogjava.net/daixj110/comments/336572.html</wfw:comment><comments>http://www.blogjava.net/daixj110/archive/2010/10/30/336572.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/daixj110/comments/commentRss/336572.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/daixj110/services/trackbacks/336572.html</trackback:ping><description><![CDATA[用RMI实现基于Java的分布式计算<br />
<a href="http://developer.51cto.com/art/200906/130417.htm">http://developer.51cto.com/art/200906/130417.htm</a><a></a> <br />
java内存分配<br />
<a href="http://developer.51cto.com/art/201009/225071.htm">http://developer.51cto.com/art/201009/225071.htm</a><br />
内存溢出解决办法<br />
<a href="http://developer.51cto.com/art/200906/129346.htm">http://developer.51cto.com/art/200906/129346.htm</a><br />
<br />
java引用<br />
<a href="http://developer.51cto.com/art/200906/130447.htm ">http://developer.51cto.com/art/200906/130447.htm </a><br />
linux上java环境搭建<br />
<a href="http://developer.51cto.com/art/200511/10736.htm ">http://developer.51cto.com/art/200511/10736.htm </a><br />
<br />
设计模式<br />
<a href="http://lavasoft.blog.51cto.com/62575/d-11">http://lavasoft.blog.51cto.com/62575/d-11</a> <br />
Java内存模型中的三个代<br />
<a href="http://developer.51cto.com/art/200909/153154.htm">http://developer.51cto.com/art/200909/153154.htm</a><br />
<br />
Java垃圾回收机制浅析<br />
<a href="http://developer.51cto.com/art/200906/130855.htm">http://developer.51cto.com/art/200906/130855.htm</a> <br />
<br />
20个开发人员非常有用的Java功能代码<br />
<a href="http://developer.51cto.com/art/200905/124291.htm">http://developer.51cto.com/art/200905/124291.htm</a>
<img src ="http://www.blogjava.net/daixj110/aggbug/336572.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/daixj110/" target="_blank">游龙!</a> 2010-10-30 19:37 <a href="http://www.blogjava.net/daixj110/archive/2010/10/30/336572.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>详解Listener监听Http Session</title><link>http://www.blogjava.net/daixj110/archive/2010/10/30/336565.html</link><dc:creator>游龙!</dc:creator><author>游龙!</author><pubDate>Sat, 30 Oct 2010 10:12:00 GMT</pubDate><guid>http://www.blogjava.net/daixj110/archive/2010/10/30/336565.html</guid><wfw:comment>http://www.blogjava.net/daixj110/comments/336565.html</wfw:comment><comments>http://www.blogjava.net/daixj110/archive/2010/10/30/336565.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/daixj110/comments/commentRss/336565.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/daixj110/services/trackbacks/336565.html</trackback:ping><description><![CDATA[<p>Listener 是Servlet 的监听器，它可以监听客户端的请求、服务端的操作等。通过监听器，可以自动激发一些操作，比如监听在线的用户的数量。当增加一个 Http Session时，就激发session Created(Http Session Event se)方法，这样就可以给在线人数加1。常用的监听接口有以下几个：</p>
<p>Servlet Context Attribute Listener监听对Servlet Context 属性的操作，比如增加、删除、修改属性。</p>
<p>Servlet Context Listener监听Servlet Context 。当创建Servlet Context 时，激发Context Initialized (Servlet Context Event sce)方法;当销毁Servlet Context 时，激发Context Destroyed(Servlet Context Event sce)方法。</p>
<p>Http Session Listener监听Http Session的操作。当创建一个Session时，激发session Created(Http Session Event se)方法;当销毁一个Session时，激发session Destroyed (Http Session Event se)方法。</p>
<p>Http Session Attribute Listener监听Http Session中的属性的操作。当在Session增加一个属性时，激发attribute Added (Http Session Binding Event se) 方法;当在Session删除一个属性时，激发attribute Removed(Http Session Binding Event se)方法;当在Session属性被重新设置时，激发attribute Replaced(Http Session Binding Event se) 方法。</p>
<p>下面我们开发一个具体的例子，这个监听器能够统计在线的人数。在Servlet Context 初始化和销毁时，在服务器控制台打印对应的信息。当Servlet Context 里的属性增加、改变、删除时，在服务器控制台打印对应的信息。</p>
<p>要获得以上的功能，监听器必须实现以下3个接口：<br />
◆HttpSessionListener<br />
◆Servlet Context Listener<br />
◆Servlet Context AttributeListener</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.http.</span><span style="color: #000000">*</span><span style="color: #000000">;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.</span><span style="color: #000000">*</span><span style="color: #000000">;&nbsp;<br />
<img id="Codehighlighter1_179_1043_Open_Image" onclick="this.style.display='none'; Codehighlighter1_179_1043_Open_Text.style.display='none'; Codehighlighter1_179_1043_Closed_Image.style.display='inline'; Codehighlighter1_179_1043_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_179_1043_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_179_1043_Closed_Text.style.display='none'; Codehighlighter1_179_1043_Open_Image.style.display='inline'; Codehighlighter1_179_1043_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;OnLineCountListener&nbsp;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&nbsp;HttpSessionListener,&nbsp;&nbsp;ServletContextListener,ServletContextAttributeListener&nbsp;&nbsp;</span><span id="Codehighlighter1_179_1043_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_179_1043_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;count;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;ServletContext&nbsp;context&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_275_306_Open_Image" onclick="this.style.display='none'; Codehighlighter1_275_306_Open_Text.style.display='none'; Codehighlighter1_275_306_Closed_Image.style.display='inline'; Codehighlighter1_275_306_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_275_306_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_275_306_Closed_Text.style.display='none'; Codehighlighter1_275_306_Open_Image.style.display='inline'; Codehighlighter1_275_306_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;OnLineCountListener()&nbsp;&nbsp;</span><span id="Codehighlighter1_275_306_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_275_306_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;count</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">setContext();&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" /></span><span style="color: #000000">}</span></span><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">创建一个session时激发&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_377_409_Open_Image" onclick="this.style.display='none'; Codehighlighter1_377_409_Open_Text.style.display='none'; Codehighlighter1_377_409_Closed_Image.style.display='inline'; Codehighlighter1_377_409_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_377_409_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_377_409_Closed_Text.style.display='none'; Codehighlighter1_377_409_Open_Image.style.display='inline'; Codehighlighter1_377_409_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;sessionCreated(HttpSessionEvent&nbsp;se)&nbsp;&nbsp;</span><span id="Codehighlighter1_377_409_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_377_409_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />count</span><span style="color: #000000">++</span><span style="color: #000000">;&nbsp;&nbsp;setContext(se);&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">当一个session失效时激发&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_483_516_Open_Image" onclick="this.style.display='none'; Codehighlighter1_483_516_Open_Text.style.display='none'; Codehighlighter1_483_516_Closed_Image.style.display='inline'; Codehighlighter1_483_516_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_483_516_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_483_516_Closed_Text.style.display='none'; Codehighlighter1_483_516_Open_Image.style.display='inline'; Codehighlighter1_483_516_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;sessionDestroyed(HttpSessionEvent&nbsp;se)&nbsp;&nbsp;</span><span id="Codehighlighter1_483_516_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_483_516_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />count</span><span style="color: #000000">--</span><span style="color: #000000">;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />setContext(se);&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">设置context的属性，它将激发attributeReplaced或attributeAdded方法&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_620_707_Open_Image" onclick="this.style.display='none'; Codehighlighter1_620_707_Open_Text.style.display='none'; Codehighlighter1_620_707_Closed_Image.style.display='inline'; Codehighlighter1_620_707_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_620_707_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_620_707_Closed_Text.style.display='none'; Codehighlighter1_620_707_Open_Image.style.display='inline'; Codehighlighter1_620_707_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setContext(HttpSessionEvent&nbsp;se)&nbsp;&nbsp;</span><span id="Codehighlighter1_620_707_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_620_707_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />se.getSession().getServletContext().&nbsp;&nbsp;setAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">onLine</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Integer(count));&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">增加一个新的属性时激发&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_789_874_Open_Image" onclick="this.style.display='none'; Codehighlighter1_789_874_Open_Text.style.display='none'; Codehighlighter1_789_874_Closed_Image.style.display='inline'; Codehighlighter1_789_874_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_789_874_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_789_874_Closed_Text.style.display='none'; Codehighlighter1_789_874_Open_Image.style.display='inline'; Codehighlighter1_789_874_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;attributeAdded(ServletContextAttributeEvent&nbsp;event)&nbsp;</span><span id="Codehighlighter1_789_874_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_789_874_Open_Text"><span style="color: #000000">{&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;log(</span><span style="color: #000000">"</span><span style="color: #000000">attributeAdded('</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;event.getName()&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">',&nbsp;'</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;&nbsp;event.getValue()&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">')</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">删除一个新的属性时激发&nbsp;&nbsp;public&nbsp;void&nbsp;attributeRemoved(ServletContextAttributeEvent&nbsp;event)&nbsp;{&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" /></span><span style="color: #000000">log(</span><span style="color: #000000">"</span><span style="color: #000000">attributeRemoved('</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;event.getName()&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">',&nbsp;'</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;&nbsp;event.getValue()&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">')</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">属性被替代时激发&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_1125_1213_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1125_1213_Open_Text.style.display='none'; Codehighlighter1_1125_1213_Closed_Image.style.display='inline'; Codehighlighter1_1125_1213_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1125_1213_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1125_1213_Closed_Text.style.display='none'; Codehighlighter1_1125_1213_Open_Image.style.display='inline'; Codehighlighter1_1125_1213_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;attributeReplaced(ServletContextAttributeEvent&nbsp;event)&nbsp;</span><span id="Codehighlighter1_1125_1213_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1125_1213_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />log(</span><span style="color: #000000">"</span><span style="color: #000000">attributeReplaced('</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;event.getName()&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">',&nbsp;'</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;&nbsp;event.getValue()&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">')</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">context删除时激发&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_1289_1343_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1289_1343_Open_Text.style.display='none'; Codehighlighter1_1289_1343_Closed_Image.style.display='inline'; Codehighlighter1_1289_1343_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1289_1343_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1289_1343_Closed_Text.style.display='none'; Codehighlighter1_1289_1343_Open_Image.style.display='inline'; Codehighlighter1_1289_1343_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;contextDestroyed(ServletContextEvent&nbsp;event)&nbsp;</span><span id="Codehighlighter1_1289_1343_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1289_1343_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />log(</span><span style="color: #000000">"</span><span style="color: #000000">contextDestroyed()</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.context&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">context初始化时激发&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_1422_1500_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1422_1500_Open_Text.style.display='none'; Codehighlighter1_1422_1500_Closed_Image.style.display='inline'; Codehighlighter1_1422_1500_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1422_1500_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1422_1500_Closed_Text.style.display='none'; Codehighlighter1_1422_1500_Open_Image.style.display='inline'; Codehighlighter1_1422_1500_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;contextInitialized(ServletContextEvent&nbsp;event)&nbsp;</span><span id="Codehighlighter1_1422_1500_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1422_1500_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">this</span><span style="color: #000000">.context&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;event.getServletContext();&nbsp;&nbsp;log(</span><span style="color: #000000">"</span><span style="color: #000000">contextInitialized()</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000">&nbsp;&nbsp;<br />
<img id="Codehighlighter1_1537_1593_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1537_1593_Open_Text.style.display='none'; Codehighlighter1_1537_1593_Closed_Image.style.display='inline'; Codehighlighter1_1537_1593_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1537_1593_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1537_1593_Closed_Text.style.display='none'; Codehighlighter1_1537_1593_Open_Image.style.display='inline'; Codehighlighter1_1537_1593_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;log(String&nbsp;message)&nbsp;</span><span id="Codehighlighter1_1537_1593_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1537_1593_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">ContextListener:&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;message);&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000">&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />}&nbsp;</span></div>
<br />
<p>在OnLine Count Listener 里，用count代表当前在线的人数，OnLine Count Listener将在Web服务器启动时自动执行。当 OnLine Count Listener构造好后，把count设置为0。每增加一个Session，OnLine Count Listener会自动调用 session Created(Http Session Event se)方法;每销毁一个Session，OnLine Count Listener会自动调用session Destroyed (Http Session Event se)方法。当调用session Created(Http Session Event se)方法时，说明又有一个客户在请求，此时使在线的人数(count)加1，并且把count写到Servlet Context 中。 Servlet Context 的信息是所有客户端共享的，这样，每个客户端都可以读取到当前在线的人数。</p>
<p>从作用域范围来说,Servlet 的作用域有Servlet Context ,Http Session,Servlet Request.以上是Listener监听Http Session</p>
转自：<a href="http://developer.51cto.com/art/200907/134756.htm">http://developer.51cto.com/art/200907/134756.htm</a>
<img src ="http://www.blogjava.net/daixj110/aggbug/336565.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/daixj110/" target="_blank">游龙!</a> 2010-10-30 18:12 <a href="http://www.blogjava.net/daixj110/archive/2010/10/30/336565.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>脏数据</title><link>http://www.blogjava.net/daixj110/archive/2010/10/29/336527.html</link><dc:creator>游龙!</dc:creator><author>游龙!</author><pubDate>Fri, 29 Oct 2010 15:01:00 GMT</pubDate><guid>http://www.blogjava.net/daixj110/archive/2010/10/29/336527.html</guid><wfw:comment>http://www.blogjava.net/daixj110/comments/336527.html</wfw:comment><comments>http://www.blogjava.net/daixj110/archive/2010/10/29/336527.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/daixj110/comments/commentRss/336527.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/daixj110/services/trackbacks/336527.html</trackback:ping><description><![CDATA[丢失修改：当一个事务修改了数据，并且这种修改还没有还没有提交到数据库中时，另外一个事务又对同样的数据进行了修改，并且把这种修改提交到了数据库中。这样，数据库中没有出现第一个事务修改数据的结果，好像这种数据修改丢失了一样。<br />
&nbsp; 脏读：当一个事务正在访问数据，并对数据进行了修改，而这种修改还没有提交到数据库中，这时，另一个事务也访问这个数据，然后使用了这个数据。因为这个数据是还没有提交的数据，那么另一个事务读到的这个数据是脏数据，依据脏数据所做的操作可能是不正确的。<br />
&nbsp; 不可重复读：在一个事务内，多次读同一数据。在这个事务还没有结束时，另一个事务也访问该同一数据，那么，在第一个事务中的两次读数据之间，由于第二个事务的修改，第一个事务两次读到的数据可能是不一样的。<br />
<br />
<br />
hibernate中的脏数据<br />
<a href="http://developer.51cto.com/art/200906/129861.htm">http://developer.51cto.com/art/200906/129861.htm</a>
<img src ="http://www.blogjava.net/daixj110/aggbug/336527.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/daixj110/" target="_blank">游龙!</a> 2010-10-29 23:01 <a href="http://www.blogjava.net/daixj110/archive/2010/10/29/336527.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一些很好的技术博客、网站</title><link>http://www.blogjava.net/daixj110/archive/2010/10/20/335722.html</link><dc:creator>游龙!</dc:creator><author>游龙!</author><pubDate>Wed, 20 Oct 2010 14:12:00 GMT</pubDate><guid>http://www.blogjava.net/daixj110/archive/2010/10/20/335722.html</guid><wfw:comment>http://www.blogjava.net/daixj110/comments/335722.html</wfw:comment><comments>http://www.blogjava.net/daixj110/archive/2010/10/20/335722.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/daixj110/comments/commentRss/335722.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/daixj110/services/trackbacks/335722.html</trackback:ping><description><![CDATA[<a href="http://www.blogjava.net/shiliqiang/">http://www.blogjava.net/shiliqiang/</a><br />
<br />
java网站<br />
<a href="http://wiki.huihoo.com/wiki/Java">http://wiki.huihoo.com/wiki/Java</a><br />
<br />
linux学习博客<br />
<a href="http://blog.csdn.net/eroswang/archive/2008/10/02/3008146.aspx">http://blog.csdn.net/eroswang/archive/2008/10/02/3008146.aspx</a><br />
<br />
<br />
更新中 
<img src ="http://www.blogjava.net/daixj110/aggbug/335722.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/daixj110/" target="_blank">游龙!</a> 2010-10-20 22:12 <a href="http://www.blogjava.net/daixj110/archive/2010/10/20/335722.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>以SQL Server配置Middlegen和extensions</title><link>http://www.blogjava.net/daixj110/archive/2010/10/19/335547.html</link><dc:creator>游龙!</dc:creator><author>游龙!</author><pubDate>Tue, 19 Oct 2010 04:34:00 GMT</pubDate><guid>http://www.blogjava.net/daixj110/archive/2010/10/19/335547.html</guid><wfw:comment>http://www.blogjava.net/daixj110/comments/335547.html</wfw:comment><comments>http://www.blogjava.net/daixj110/archive/2010/10/19/335547.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/daixj110/comments/commentRss/335547.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/daixj110/services/trackbacks/335547.html</trackback:ping><description><![CDATA[<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">以SQL&nbsp;Server配置Middlegen和extensions&nbsp;&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">、所使用的软件及其版本如下：ant</span><span style="color: #000000">-</span><span style="color: #000000">1.6</span><span style="color: #000000">.</span><span style="color: #000000">5</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Middlegen</span><span style="color: #000000">-</span><span style="color: #000000">Hibernate</span><span style="color: #000000">-</span><span style="color: #000000">r5<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />hibernate</span><span style="color: #000000">-</span><span style="color: #000000">extensions</span><span style="color: #000000">-</span><span style="color: #000000">2.1</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />hibernate</span><span style="color: #000000">-</span><span style="color: #000000">2.1</span><span style="color: #000000">.</span><span style="color: #000000">6</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />以上均解压到D盘&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Www.Svn8.Com<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">2</span><span style="color: #000000">、配置ant<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />将ant考到D:根目录<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />环境变量里加上ANT_HOME</span><span style="color: #000000">=</span><span style="color: #000000">D:\\ant<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />PATH</span><span style="color: #000000">=</span><span style="color: #000000">D:\\ant\\bin;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />在DOS命令行下输入ant,&nbsp;如果出现如下提示，就说明ant已配置成功了：<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Buildfile:&nbsp;build.xml&nbsp;does&nbsp;not&nbsp;exist</span><span style="color: #000000">!</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Build&nbsp;failed&nbsp;参考资料:www.svn8.com&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">3</span><span style="color: #000000">、配置Middlegen</span><span style="color: #000000">-</span><span style="color: #000000">Hibernate:<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">3.1</span><span style="color: #000000">&nbsp;配置mssql.xml文件，此文件用来配置SQL&nbsp;Server数据库连接<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />将SQL&nbsp;Server三个jar文件(mssqlserver.jar;&nbsp;msbase.jar;&nbsp;msutil.jar)copy到Middlegen</span><span style="color: #000000">-</span><span style="color: #000000">Hibernate</span><span style="color: #000000">-</span><span style="color: #000000">r5\lib目录中。&nbsp;Svn中文网&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />在Middlegen</span><span style="color: #000000">-</span><span style="color: #000000">Hibernate</span><span style="color: #000000">-</span><span style="color: #000000">r5\config\database目录中有一个mssql.xml文件，是用来配置SQL&nbsp;Server数据库的连接的。内容修改如下（红色为修改部分）为：&nbsp;Svn8.Com&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">3.2</span><span style="color: #000000">&nbsp;配置Middlegen</span><span style="color: #000000">-</span><span style="color: #000000">Hibernate</span><span style="color: #000000">-</span><span style="color: #000000">r5的ant运行文件build.xml&nbsp;Www.Svn8.Com&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />指出使用的数据库配置文件。&nbsp;Bbs.Svn8.Com&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">project&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">Middlegen&nbsp;Hibernate</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">default</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">all</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;basedir</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">.</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">property&nbsp;file</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">${basedir}/build.properties</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">property&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">name</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">sample</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Svn中文网<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />指出生成的</span><span style="color: #000000">*</span><span style="color: #000000">.hbm.xml输出的路径：<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Svn中文网<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">property&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">build.gen-src.dir</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">C:/sample</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;</span><span style="color: #000000">&nbsp;参考资料:www.svn8.com&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />配置hibernate：&nbsp;参考资料:www.svn8.com&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">hibernate&nbsp;destination</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">${build.gen-src.dir}</span><span style="color: #000000">"</span><span style="color: #0000ff">package</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">org.hibernate.sample</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;——————指出hbm所在的包的位置。&nbsp;genXDocletTags</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">true</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;——————指出hbm.xml中是否需要XDoclet&nbsp;Tags。&nbsp;genIntergratedCompositeKeys</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">false</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;javaTypeMapper</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">middlegen.plugins.hibernate.HibernateJavaTypeMapper</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/&gt;</span><span style="color: #000000">&nbsp;参考资料:www.svn8.com&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />配置Middlegen：&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Www.Svn8.Com<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">middlegen&nbsp;appname</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">${name}</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;prefsdir</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">${src.dir}</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;gui</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">${gui}</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;databaseurl</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">${database.url}</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;initialContextFactory</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">${java.naming.factory.initial}</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;providerURL</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">${java.naming.provider.url}</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;datasourceJNDIName</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">${datasource.jndi.name}</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;driver</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">${database.driver}</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;username</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">${database.userid}</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;password</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">${database.password}</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;schema</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">${database.schema}</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;catalog</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">${database.catalog}</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;includeViews</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">true</span><span style="color: #000000">"</span><span style="color: #000000">——————指出包括视图。&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />参考资料:www.svn8.com<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">4</span><span style="color: #000000">、运行Middlegen</span><span style="color: #000000">-</span><span style="color: #000000">Hibernate:<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />在Middlegen</span><span style="color: #000000">-</span><span style="color: #000000">Hibernate目录下运行ant，进入Middlegen</span><span style="color: #000000">-</span><span style="color: #000000">Hibernate的图形界面。可以设置表，和字段的特性。然后按Genarate，产生hbm.xml文件。&nbsp;Svn中文网&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">5</span><span style="color: #000000">、配置hibernate</span><span style="color: #000000">-</span><span style="color: #000000">extensions<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">5.1</span><span style="color: #000000">&nbsp;在hibernate</span><span style="color: #000000">-</span><span style="color: #000000">extensions\tools\bin目录下有3个工具，他们的功能如下：<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">5.1</span><span style="color: #000000">.</span><span style="color: #000000">1</span><span style="color: #000000">&nbsp;class2hbm.bat<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />根据POJO&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;生成映射文件<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />也就是根据你自己对应表所写的java文件，生成相应的</span><span style="color: #000000">*</span><span style="color: #000000">.hbm.xml文件；&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Bbs.Svn8.Com<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">5.1</span><span style="color: #000000">.</span><span style="color: #000000">2</span><span style="color: #000000">&nbsp;ddl2hbm.bat<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />由数据库导出库表结构，并生成映射文件以及POJO。这个功能与MiddleGen&nbsp;的功能重叠，也不够成熟（实际上已经被废弃，不再维护）；&nbsp;Svn中文网&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">5.1</span><span style="color: #000000">.</span><span style="color: #000000">3</span><span style="color: #000000">&nbsp;hbm2java.bat<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />根据映射文件生成对应的POJO，即根据Middlegen生成的</span><span style="color: #000000">*</span><span style="color: #000000">.hbm.xml文件再生成相应的</span><span style="color: #000000">*</span><span style="color: #000000">.java文件&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Svn中文网<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">5.2</span><span style="color: #000000">&nbsp;在hibernate</span><span style="color: #000000">-</span><span style="color: #000000">extensions</span><span style="color: #000000">-</span><span style="color: #000000">2.1</span><span style="color: #000000">.</span><span style="color: #000000">2</span><span style="color: #000000">\tools\bin目录有一个setenv.bat文件，改变其内容为：<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />本文来自Svn中文网[www.svn8.com]转发请保留本站地址：http:</span><span style="color: #008000">//</span><span style="color: #008000">www.svn8.com/java/hexin/20100821/51383.html<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<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"  alt="" /><span style="color: #000000">set&nbsp;JDBC_DRIVER</span><span style="color: #000000">=</span><span style="color: #000000">D:\Middlegen</span><span style="color: #000000">-</span><span style="color: #000000">Hibernate</span><span style="color: #000000">-</span><span style="color: #000000">r5\lib\mssqlserver.jar<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />set&nbsp;HIBERNATE_HOME</span><span style="color: #000000">=</span><span style="color: #000000">..\..\hibernate</span><span style="color: #000000">-</span><span style="color: #000000">2.1</span><span style="color: #000000">.</span><span style="color: #000000">6</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />set&nbsp;CORELIB</span><span style="color: #000000">=%</span><span style="color: #000000">HIBERNATE_HOME</span><span style="color: #000000">%</span><span style="color: #000000">\lib<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />set&nbsp;LIB</span><span style="color: #000000">=</span><span style="color: #000000">..\lib<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />set&nbsp;PROPS</span><span style="color: #000000">=%</span><span style="color: #000000">HIBERNATE_HOME</span><span style="color: #000000">%</span><span style="color: #000000">\src<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />set&nbsp;CP</span><span style="color: #000000">=%</span><span style="color: #000000">JDBC_DRIVER</span><span style="color: #000000">%</span><span style="color: #000000">;</span><span style="color: #000000">%</span><span style="color: #000000">PROPS</span><span style="color: #000000">%</span><span style="color: #000000">;</span><span style="color: #000000">%</span><span style="color: #000000">HIBERNATE_HOME</span><span style="color: #000000">%</span><span style="color: #000000">\hibernate2.jar;</span><span style="color: #000000">%</span><span style="color: #000000">CORELIB</span><span style="color: #000000">%</span><span style="color: #000000">\commons</span><span style="color: #000000">-</span><span style="color: #000000">logging</span><span style="color: #000000">-</span><span style="color: #000000">1.0</span><span style="color: #000000">.</span><span style="color: #000000">4</span><span style="color: #000000">.jar;</span><span style="color: #000000">%</span><span style="color: #000000">CORELIB</span><span style="color: #000000">%</span><span style="color: #000000">\commons</span><span style="color: #000000">-</span><span style="color: #000000">collections</span><span style="color: #000000">-</span><span style="color: #000000">2.1</span><span style="color: #000000">.</span><span style="color: #000000">1</span><span style="color: #000000">.jar;</span><span style="color: #000000">%</span><span style="color: #000000">CORELIB</span><span style="color: #000000">%</span><span style="color: #000000">\commons</span><span style="color: #000000">-</span><span style="color: #000000">lang</span><span style="color: #000000">-</span><span style="color: #000000">1.0</span><span style="color: #000000">.</span><span style="color: #000000">1</span><span style="color: #000000">.jar;</span><span style="color: #000000">%</span><span style="color: #000000">CORELIB</span><span style="color: #000000">%</span><span style="color: #000000">\cglib</span><span style="color: #000000">-</span><span style="color: #000000">full</span><span style="color: #000000">-</span><span style="color: #000000">2.0</span><span style="color: #000000">.</span><span style="color: #000000">2</span><span style="color: #000000">.jar;</span><span style="color: #000000">%</span><span style="color: #000000">CORELIB</span><span style="color: #000000">%</span><span style="color: #000000">\dom4j</span><span style="color: #000000">-</span><span style="color: #000000">1.4</span><span style="color: #000000">.jar;</span><span style="color: #000000">%</span><span style="color: #000000">CORELIB</span><span style="color: #000000">%</span><span style="color: #000000">\odmg</span><span style="color: #000000">-</span><span style="color: #000000">3.0</span><span style="color: #000000">.jar;</span><span style="color: #000000">%</span><span style="color: #000000">CORELIB</span><span style="color: #000000">%</span><span style="color: #000000">\xml</span><span style="color: #000000">-</span><span style="color: #000000">apis.jar;</span><span style="color: #000000">%</span><span style="color: #000000">CORELIB</span><span style="color: #000000">%</span><span style="color: #000000">\xerces</span><span style="color: #000000">-</span><span style="color: #000000">2.4</span><span style="color: #000000">.</span><span style="color: #000000">0</span><span style="color: #000000">.jar;</span><span style="color: #000000">%</span><span style="color: #000000">CORELIB</span><span style="color: #000000">%</span><span style="color: #000000">\xalan</span><span style="color: #000000">-</span><span style="color: #000000">2.4</span><span style="color: #000000">.</span><span style="color: #000000">0</span><span style="color: #000000">.jar;</span><span style="color: #000000">%</span><span style="color: #000000">LIB</span><span style="color: #000000">%</span><span style="color: #000000">\jdom.jar;</span><span style="color: #000000">%</span><span style="color: #000000">LIB</span><span style="color: #000000">%</span><span style="color: #000000">\..\hibernate</span><span style="color: #000000">-</span><span style="color: #000000">tools.jar&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Svn中文网<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">6</span><span style="color: #000000">、&nbsp;运行hibernate</span><span style="color: #000000">-</span><span style="color: #000000">extensions，根据hbm.xml产生POJO文件<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />在DOS中运行hbm2java&nbsp;c:\sample\org\hibernate\sample\</span><span style="color: #000000">*</span><span style="color: #000000">.xml&nbsp;</span><span style="color: #000000">--</span><span style="color: #000000">output</span><span style="color: #000000">=</span><span style="color: #000000">c:\sample\&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
<br />
<br />
<a href="http://hi.baidu.com/wenjp/blog/item/8d593ffaf24f129658ee904d.html">另一篇http://hi.baidu.com/wenjp/blog/item/8d593ffaf24f129658ee904d.html</a>
 <img src ="http://www.blogjava.net/daixj110/aggbug/335547.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/daixj110/" target="_blank">游龙!</a> 2010-10-19 12:34 <a href="http://www.blogjava.net/daixj110/archive/2010/10/19/335547.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>