﻿<?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-期待更好更稳定的开源FrameWork的出现,让我们一起努力吧!-随笔分类-Java 相关</title><link>http://www.blogjava.net/itwangxinli/category/26381.html</link><description>Happy study,Happy work ,Happy living.........</description><language>zh-cn</language><lastBuildDate>Wed, 19 Dec 2007 13:12:24 GMT</lastBuildDate><pubDate>Wed, 19 Dec 2007 13:12:24 GMT</pubDate><ttl>60</ttl><item><title>一个炒股老公写的年终总结</title><link>http://www.blogjava.net/itwangxinli/archive/2007/12/18/168505.html</link><dc:creator>BlueSky_itwangxinli</dc:creator><author>BlueSky_itwangxinli</author><pubDate>Tue, 18 Dec 2007 07:35:00 GMT</pubDate><guid>http://www.blogjava.net/itwangxinli/archive/2007/12/18/168505.html</guid><wfw:comment>http://www.blogjava.net/itwangxinli/comments/168505.html</wfw:comment><comments>http://www.blogjava.net/itwangxinli/archive/2007/12/18/168505.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/itwangxinli/comments/commentRss/168505.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/itwangxinli/services/trackbacks/168505.html</trackback:ping><description><![CDATA[<span style="font-size: 12pt; font-family: 新宋体">
<p><span style="font-size: 16pt; color: black; font-family: 宋体"><span style="font-size: 12pt"><span style="color: black; font-family: 宋体">最敬爱的夫人</span><font face="Times New Roman"><span style="color: black">:&nbsp;</span></font></span></span><font face="Times New Roman"><span style="font-size: 16pt; color: black"><br />
<br />
</span><span style="font-size: 16pt; color: #335683"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-size: 12pt"><font face="Times New Roman"></font><span style="color: black; font-family: 宋体">过去的一年中，我在您的直接领导下，在岳父岳母的英明指导下，在大小姨子的集体关怀下，遵照您的指示，按照您的部署，兢兢业业、恪尽职守，摸爬滚打、积极进取，各项家庭工作均取得显著成效。据统计，至去年底，咱家的银行存款、股票市值、固定资产三项指标分别比前年增长了</span><span style="color: black"><font face="Times New Roman">18</font></span><span style="color: black; font-family: 宋体">％、</span><span style="color: black"><font face="Times New Roman">19</font></span><span style="color: black; font-family: 宋体">％、</span><span style="color: black"><font face="Times New Roman">20</font></span><span style="color: black; font-family: 宋体">％。超额完成了去年初制定的</span><span style="color: black"><font face="Times New Roman">&#8220;</font></span><span style="color: black; font-family: 宋体">三项指标增幅要达到</span><span style="color: black"><font face="Times New Roman">12</font></span><span style="color: black; font-family: 宋体">％</span><span style="color: black"><font face="Times New Roman">&#8221;</font></span><span style="color: black; font-family: 宋体">的任务，同时咱家还被本胡同评为</span><span style="color: black"><font face="Times New Roman">&#8220;</font></span><span style="color: black; font-family: 宋体">五好家庭</span><span style="color: black"><font face="Times New Roman">&#8221;</font></span><span style="color: black; font-family: 宋体">，我被本楼道评为</span><span style="color: black"><font face="Times New Roman">&#8220;</font></span><span style="color: black; font-family: 宋体">最称职老公</span><span style="color: black"><font face="Times New Roman">&#8221;</font></span><span style="color: black; font-family: 宋体">，您则光荣当选</span><span style="color: black"><font face="Times New Roman">&#8220;</font></span><span style="color: black; font-family: 宋体">最幸福太太</span><span style="color: black"><font face="Times New Roman">&#8221;</font></span><span style="color: black; font-family: 宋体">，实现了物质文明、精神文明的双丰收。</span></span></span></span></font><span style="font-size: 16pt; color: black; font-family: 宋体"><span style="font-size: 12pt"><span style="color: black; font-family: 宋体">现将本人一</span></span><span style="font-size: 12pt"><span style="color: black; font-family: 宋体">年来的工作情况总结如下</span><span style="color: black"><font face="Times New Roman">: <br />
</font></span><span style="color: black; font-family: 宋体">一、以</span><span style="color: black"><font face="Times New Roman">&#8220;</font></span><span style="color: black; font-family: 宋体">服务夫人</span><span style="color: black"><font face="Times New Roman">&#8221;</font></span><span style="color: black; font-family: 宋体">为工作重心，抓好家庭日常工作</span><span style="color: black"><br />
</span><span style="color: black; font-family: 宋体">二、以</span><span style="color: black"><font face="Times New Roman">&#8220;</font></span><span style="color: black; font-family: 宋体">夫人旨意</span><span style="color: black"><font face="Times New Roman">&#8221;</font></span><span style="color: black; font-family: 宋体">为工作重点，抓好家庭经济建设。过去的一年中，我认真贯彻夫人去年初作出</span><span style="color: black"><font face="Times New Roman">&#8220;</font></span><span style="color: black; font-family: 宋体">要把家庭经济搞上去</span><span style="color: black"><font face="Times New Roman">&#8221;</font></span><span style="color: black; font-family: 宋体">的重要指示，采取得力措施，加大工作力度，狠抓经济建设，终有所成，家庭三项经济指标均比前年大幅度增长。</span></span></span><span style="font-size: 16pt; color: black; font-family: 宋体"><span style="font-size: 12pt"><span style="color: black; font-family: 宋体">我的主要做法是</span><span style="color: black"><font face="Times New Roman">:<br />
</font></span></span></span><span style="font-size: 16pt; color: black"><span><font face="Times New Roman"><span style="font-size: 12pt"><span style="color: black"><font face="Times New Roman">1、<span style="font-weight: normal; line-height: normal; font-style: normal; font-family: 'Times New Roman'; font-variant: normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span></span><span style="color: black; font-family: 宋体">严格遵守财经纪律。去年，我不折不扣地执行了工资、奖金等主营收入悉数上交，再由夫人回拨零用钱的收支两条线政策，其余副业收入纳入预算资金管理，向夫人打报告审批使用，在过去的一年中，由于我财经纪律做到了不截留挪用，不挤占乱花，不隐瞒收入，不设小金库，使夫人总揽大权的地位得到了进一步巩固，家庭收入管理规范，资金专项使用。</span></span></font></span></span></p>
<p style="text-indent: -18pt"><span style="font-size: 16pt; color: black"><span><font face="Times New Roman">2、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-size: 12pt"><span style="color: black"><font face="Times New Roman"><span style="font-weight: normal; line-height: normal; font-style: normal; font-family: 'Times New Roman'; font-variant: normal"></font></span></span><span style="color: black; font-family: 宋体">厉行个人节约，注重自我节流。过去的一年中，我戒烟、戒酒、戒茶、戒零食、戒请客，总之，将个人吃穿用度费用降至最底，每月零用钱均有剩余，积蓄一定时日，购买首饰、衣物若干赠于夫人，既增加家庭固定资产，又给夫人带来惊喜，一举两得。<br />
</span></span></span></font></span></span><span style="font-size: 16pt; color: #335683"><span><font face="Times New Roman"><span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-size: 12pt"><span style="color: #335683"><font face="Times New Roman"><span style="font-weight: normal; line-height: normal; font-style: normal; font-family: 'Times New Roman'; font-variant: normal"></font></span></span><span style="color: black; font-family: 宋体">　</span><span style="color: black"><font face="Times New Roman">3</font></span><span style="color: black; font-family: 宋体">、积极探索，广开财路。一是充分发挥自身所长，笔耕不辍，投稿报刊、杂志赚取稿费。二是深入领会《麻将致胜大全》要点，掌握致胜技艺，与同事亲友小赌怡情，胜多负少，小有收获。三是苦心钻研炒股方法，向夫人申请专项资金投身股海，一级市场守株待兔，二级市场低买高卖，一年下来赢利颇多。</span></span></span></font></span></span></p>
<p><span style="font-size: 16pt; color: black"><br />
</span><span style="font-size: 16pt; color: black; font-family: 宋体">　<span style="font-size: 12pt"><span style="color: black; font-family: 宋体">三、以</span><span style="color: black"><font face="Times New Roman">&#8220;</font></span><span style="color: black; font-family: 宋体">夫人喜好</span><span style="color: black"><font face="Times New Roman">&#8221;</font></span><span style="color: black; font-family: 宋体">为出发点，抓好家庭安定团结。过去的一年，我始终以</span><span style="color: black"><font face="Times New Roman">&#8220;</font></span><span style="color: black; font-family: 宋体">夫人喜好</span><span style="color: black"><font face="Times New Roman">&#8221;</font></span><span style="color: black; font-family: 宋体">为标准，一切听从夫人，听从夫人一切，不断规范自身行为，搞好家庭安定团结，主要有</span><span style="color: black"><font face="Times New Roman">: <br />
</font></span></span></span><span style="font-size: 16pt; color: black"><font face="Times New Roman"><span style="font-size: 12pt"><span style="color: black"><font face="Times New Roman"><br />
</font></span><span style="color: black; font-family: 宋体">　　</span><span style="color: black"><font face="Times New Roman">1</font></span><span style="color: black; font-family: 宋体">、婚前死党小黄、小李、小谢、小军、小杨诸人一向好吃懒做，行事全无章法，经常来家骗吃骗喝，以夫人不喜，我遂将彼等列入损友名单，遂一割袍断义，中断往来（注：小李因欠我债务的缘故，暂还保持联系）。</span></span></font></span><span style="font-size: 16pt; color: black"><font face="Times New Roman"> <br />
<br />
</font></span><span style="font-size: 16pt; color: black; font-family: 宋体">　　</span><span style="font-size: 16pt; color: black"><font face="Times New Roman"><span style="font-size: 12pt"><span style="color: black"><font face="Times New Roman">2</font></span><span style="color: black; font-family: 宋体">、过去我好吸烟，一天两包不在话下，夫人恶之，去年伊始，我便痛下决心，誓与烟绝。如今，瘾来时，我至多点蚊香一支嗅其味以解馋。</span></span></font></span><span style="font-size: 16pt; color: black"><font face="Times New Roman"> <br />
<br />
</font></span><span style="font-size: 16pt; color: black; font-family: 宋体">　　</span><span style="font-size: 16pt; color: black"><font face="Times New Roman"><span style="font-size: 12pt"><span style="color: black"><font face="Times New Roman">3</font></span><span style="color: black; font-family: 宋体">、前年我看望父母次数多于看望岳父岳母一次，夫人不悦，去年我遂积极整改，以实际行动纠正偏差，据统计，至去年底</span><span style="color: black"><font face="Times New Roman">'</font></span><span style="color: black; font-family: 宋体">我看望岳父岳母次数超出看望父母次数两次，在时间总量上超出</span><span style="color: black"><font face="Times New Roman">45</font></span><span style="color: black; font-family: 宋体">分钟，在孝敬财物总额上超出</span><span style="color: black"><font face="Times New Roman">21</font></span><span style="color: black; font-family: 宋体">元人民币。</span><span style="color: black"><font face="Times New Roman"> <br />
</font></span></span></font></span><span style="font-size: 16pt; color: black"><font face="Times New Roman"><br />
</font></span><span style="font-size: 16pt; color: black; font-family: 宋体">　　</span><span style="font-size: 16pt; color: black"><font face="Times New Roman"><span style="font-size: 12pt"><span style="color: black"><font face="Times New Roman">4</font></span><span style="color: black; font-family: 宋体">、央视主持人刘仪伟，风格清新，厨艺一绝</span><span style="color: black"><font face="Times New Roman">'</font></span><span style="color: black; font-family: 宋体">夫人爱甚，视为新好男人，我遂理一板寸头，学一口鸟腔普通话，苦研《天天厨艺》菜谱，每日推出一样特色小菜。</span><span style="color: black"><font face="Times New Roman"> <br />
</font></span></span></font></span><span style="font-size: 16pt; color: black"><font face="Times New Roman"><br />
</font></span><span style="font-size: 16pt; color: black; font-family: 宋体"><span style="font-size: 12pt"><span style="color: black; font-family: 宋体">　　由于我紧紧把握</span><span style="color: black"><font face="Times New Roman">&#8220;</font></span><span style="color: black; font-family: 宋体">夫人永远是对的</span><span style="color: black"><font face="Times New Roman">'</font></span><span style="color: black; font-family: 宋体">如果夫人错了，我请参照上句执行</span><span style="color: black"><font face="Times New Roman">&#8221;</font></span><span style="color: black; font-family: 宋体">的方针，认真贯彻</span><span style="color: black"><font face="Times New Roman">&#8220;</font></span><span style="color: black; font-family: 宋体">打不还手，骂不还口，夫人一脚踹过来，我就躲着走</span><span style="color: black"><font face="Times New Roman">&#8221;</font></span><span style="color: black; font-family: 宋体">的基本原则，家庭安定团结局面一派大好，夫妻相敬如宾，居家气氛温馨。在过去的一年里，我主持家庭日常工作虽取得一定成绩，但离夫人的要求仍存在大小差距，如：工作主观能动性还有待加强，工作前瞻性不足；工作尚存在畏难情绪等，在新的一年中，我将克服缺点、发扬优点，在巩固去年成绩的基础上，百尺竿头更进一步，使咱家的生活水准芝麻开花节节高，夫妻恩爱此情绵绵无绝期。</span><span style="color: black"><font face="Times New Roman"> <br />
</font></span></span></span><span style="font-size: 16pt; color: black"><font face="Times New Roman"><br />
</font></span><span style="font-size: 16pt; color: black; font-family: 宋体">　　<span style="font-size: 12pt"><span style="color: black; font-family: 宋体">抄报：岳父、岳母</span><span style="color: black"><font face="Times New Roman"> <br />
<br />
</font></span><span style="color: black; font-family: 宋体">　</span><span style="color: black; font-family: 宋体">抄送：大姨子、大舅子、小姨子、小舅子、各位连</span></span></span></p>
</span>
<img src ="http://www.blogjava.net/itwangxinli/aggbug/168505.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/itwangxinli/" target="_blank">BlueSky_itwangxinli</a> 2007-12-18 15:35 <a href="http://www.blogjava.net/itwangxinli/archive/2007/12/18/168505.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>随机数字验证码的生成 </title><link>http://www.blogjava.net/itwangxinli/archive/2007/09/21/147200.html</link><dc:creator>BlueSky_itwangxinli</dc:creator><author>BlueSky_itwangxinli</author><pubDate>Fri, 21 Sep 2007 12:01:00 GMT</pubDate><guid>http://www.blogjava.net/itwangxinli/archive/2007/09/21/147200.html</guid><wfw:comment>http://www.blogjava.net/itwangxinli/comments/147200.html</wfw:comment><comments>http://www.blogjava.net/itwangxinli/archive/2007/09/21/147200.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/itwangxinli/comments/commentRss/147200.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/itwangxinli/services/trackbacks/147200.html</trackback:ping><description><![CDATA[<span style="color: #0000ff">
<p><br />
&nbsp;</p>
<p><br />
&nbsp;</p>
<div class="postTitle"><a class="postTitle2" id="viewpost1_TitleUrl" href="http://www.blogjava.net/hadeslee/archive/2007/09/21/147067.html">随机数字验证码的生成</a> </div>
<p>有时候在我们的网络应用中，防止程序自动登录搞破坏，我们一般都会加上验证码，这些验证码一般来说都是由人来识别的，当然，如果验证码很有规律，或者说很清楚，漂亮，那么也是可能被程序识别的，我以前就识别过某网站的验证码，因为比较有规律，所以被识别了，并且识别率达到99%左右，其实我们可以制作很复杂一点的验证码，添加一些干扰的线条或者字体变形，使程序识别的难度加大，这样，我们的目的也就达到了.<br />
<br />
下面是生成的图片：<br />
<img height="57" alt="" src="http://www.blogjava.net/images/blogjava_net/hadeslee/ss.jpg" width="202" border="0" /><br />
</p>
<p>package</span><span style="color: #000000">&nbsp;com.hadeslee;<br />
<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.awt.BasicStroke;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.awt.Color;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.awt.Font;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.awt.GradientPaint;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.awt.Graphics2D;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.awt.GraphicsEnvironment;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.awt.Paint;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.awt.Point;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.awt.Stroke;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.awt.image.BufferedImage;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.io.</span><span style="color: #000000">*</span><span style="color: #000000">;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.util.ArrayList;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.util.List;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.util.Locale;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.util.Random;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.imageio.ImageIO;<br />
<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.</span><span style="color: #000000">*</span><span style="color: #000000">;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.http.</span><span style="color: #000000">*</span><span style="color: #000000">;<br />
<br />
</span><span style="color: #008000">/**</span><span style="color: #008000"><br />
&nbsp;*<br />
&nbsp;*&nbsp;</span><span style="color: #808080">@author</span><span style="color: #008000">&nbsp;lbf<br />
&nbsp;*&nbsp;</span><span style="color: #808080">@version</span><span style="color: #008000"><br />
&nbsp;</span><span style="color: #008000">*/</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Code&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;HttpServlet&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">/**</span><span style="color: #008000">&nbsp;Processes&nbsp;requests&nbsp;for&nbsp;both&nbsp;HTTP&nbsp;&lt;code&gt;GET&lt;/code&gt;&nbsp;and&nbsp;&lt;code&gt;POST&lt;/code&gt;&nbsp;methods.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;request&nbsp;servlet&nbsp;request<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;response&nbsp;servlet&nbsp;response<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;List</span><span style="color: #000000">&lt;</span><span style="color: #000000">String</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;fonts</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ArrayList</span><span style="color: #000000">&lt;</span><span style="color: #000000">String</span><span style="color: #000000">&gt;</span><span style="color: #000000">();<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Code(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;initFonts();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;initFonts(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GraphicsEnvironment.getLocalGraphicsEnvironment().preferLocaleFonts();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;names</span><span style="color: #000000">=</span><span style="color: #000000">GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames(Locale.CHINA);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(String&nbsp;s:names){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">char</span><span style="color: #000000">&nbsp;c</span><span style="color: #000000">=</span><span style="color: #000000">s.charAt(</span><span style="color: #000000">0</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(Character.isLowerCase(c)</span><span style="color: #000000">||</span><span style="color: #000000">Character.isUpperCase(c)){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #0000ff">else</span><span style="color: #000000">{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fonts.add(s);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">protected</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;processRequest(HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;ServletException,&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setContentType(</span><span style="color: #000000">"</span><span style="color: #000000">image/jpeg;charset=UTF-8</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputStream&nbsp;out</span><span style="color: #000000">=</span><span style="color: #000000">response.getOutputStream();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedImage&nbsp;bi</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BufferedImage(</span><span style="color: #000000">200</span><span style="color: #000000">,</span><span style="color: #000000">50</span><span style="color: #000000">,BufferedImage.TYPE_INT_RGB);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Graphics2D&nbsp;g</span><span style="color: #000000">=</span><span style="color: #000000">bi.createGraphics();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">char</span><span style="color: #000000">[]&nbsp;cs</span><span style="color: #000000">=</span><span style="color: #000000">{</span><span style="color: #000000">'</span><span style="color: #000000">0</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">1</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">2</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">3</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">4</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">5</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">6</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">7</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">8</span><span style="color: #000000">'</span><span style="color: #000000">,</span><span style="color: #000000">'</span><span style="color: #000000">9</span><span style="color: #000000">'</span><span style="color: #000000">};<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">char</span><span style="color: #000000">[]&nbsp;use</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">char</span><span style="color: #000000">[</span><span style="color: #000000">4</span><span style="color: #000000">];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.setColor(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Color(</span><span style="color: #000000">240</span><span style="color: #000000">,</span><span style="color: #000000">240</span><span style="color: #000000">,</span><span style="color: #000000">240</span><span style="color: #000000">));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.fillRect(</span><span style="color: #000000">0</span><span style="color: #000000">,</span><span style="color: #000000">0</span><span style="color: #000000">,</span><span style="color: #000000">200</span><span style="color: #000000">,</span><span style="color: #000000">50</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">4</span><span style="color: #000000">;i</span><span style="color: #000000">++</span><span style="color: #000000">){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Point&nbsp;p</span><span style="color: #000000">=</span><span style="color: #000000">getPoint(i);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;size</span><span style="color: #000000">=</span><span style="color: #000000">getSize();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;use[i]</span><span style="color: #000000">=</span><span style="color: #000000">cs[(</span><span style="color: #0000ff">int</span><span style="color: #000000">)(Math.random()</span><span style="color: #000000">*</span><span style="color: #000000">cs.length)];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;g.setColor(new&nbsp;Color((int)(Math.random()*256),0,(int)(Math.random()*256)));</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.setPaint(getPaint(p,size));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.setFont(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Font(fonts.get((</span><span style="color: #0000ff">int</span><span style="color: #000000">)(Math.random()</span><span style="color: #000000">*</span><span style="color: #000000">fonts.size())),getFace(),size));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.drawString(</span><span style="color: #000000">""</span><span style="color: #000000">+</span><span style="color: #000000">use[i],p.x,p.y);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.setStroke(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BasicStroke(</span><span style="color: #000000">1.0f</span><span style="color: #000000">));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.setPaint(</span><span style="color: #0000ff">null</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">4</span><span style="color: #000000">;i</span><span style="color: #000000">++</span><span style="color: #000000">){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.setColor(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Color((</span><span style="color: #0000ff">int</span><span style="color: #000000">)(Math.random()</span><span style="color: #000000">*</span><span style="color: #000000">0x00FFFFFFF</span><span style="color: #000000">)));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.drawLine((</span><span style="color: #0000ff">int</span><span style="color: #000000">)(Math.random()</span><span style="color: #000000">*</span><span style="color: #000000">200</span><span style="color: #000000">),(</span><span style="color: #0000ff">int</span><span style="color: #000000">)(Math.random()</span><span style="color: #000000">*</span><span style="color: #000000">50</span><span style="color: #000000">),(</span><span style="color: #0000ff">int</span><span style="color: #000000">)(Math.random()</span><span style="color: #000000">*</span><span style="color: #000000">200</span><span style="color: #000000">),(</span><span style="color: #0000ff">int</span><span style="color: #000000">)(Math.random()</span><span style="color: #000000">*</span><span style="color: #000000">50</span><span style="color: #000000">));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Random&nbsp;random&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Random();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">88</span><span style="color: #000000">;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;x&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;random.nextInt(</span><span style="color: #000000">200</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;y&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;random.nextInt(</span><span style="color: #000000">50</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.setColor(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Color((</span><span style="color: #0000ff">int</span><span style="color: #000000">)(Math.random()</span><span style="color: #000000">*</span><span style="color: #000000">0x00FFFFFFF</span><span style="color: #000000">)));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.setStroke(getStroke());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.drawLine(x,y,x,y);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ImageIO.write(bi,</span><span style="color: #000000">"</span><span style="color: #000000">JPEG</span><span style="color: #000000">"</span><span style="color: #000000">,out);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.dispose();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;Stroke&nbsp;getStroke(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BasicStroke&nbsp;bs</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BasicStroke((</span><span style="color: #0000ff">float</span><span style="color: #000000">)(Math.random()</span><span style="color: #000000">*</span><span style="color: #000000">3</span><span style="color: #000000">));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;bs;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;Point&nbsp;getPoint(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;index){<br />
&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">new</span><span style="color: #000000">&nbsp;Point(</span><span style="color: #000000">5</span><span style="color: #000000">+</span><span style="color: #000000">(index</span><span style="color: #000000">*</span><span style="color: #000000">((</span><span style="color: #0000ff">int</span><span style="color: #000000">)(Math.random()</span><span style="color: #000000">*</span><span style="color: #000000">10</span><span style="color: #000000">)</span><span style="color: #000000">+</span><span style="color: #000000">40</span><span style="color: #000000">)),</span><span style="color: #000000">40</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;Paint&nbsp;getPaint(Point&nbsp;p,</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;size){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GradientPaint&nbsp;gp</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;GradientPaint(p.x,p.y,</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Color((</span><span style="color: #0000ff">int</span><span style="color: #000000">)(Math.random()</span><span style="color: #000000">*</span><span style="color: #000000">256</span><span style="color: #000000">),</span><span style="color: #000000">0</span><span style="color: #000000">,(</span><span style="color: #0000ff">int</span><span style="color: #000000">)(Math.random()</span><span style="color: #000000">*</span><span style="color: #000000">256</span><span style="color: #000000">)),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.x,p.y</span><span style="color: #000000">-</span><span style="color: #000000">size,</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Color((</span><span style="color: #0000ff">int</span><span style="color: #000000">)(Math.random()</span><span style="color: #000000">*</span><span style="color: #000000">256</span><span style="color: #000000">),(</span><span style="color: #0000ff">int</span><span style="color: #000000">)(Math.random()</span><span style="color: #000000">*</span><span style="color: #000000">256</span><span style="color: #000000">),(</span><span style="color: #0000ff">int</span><span style="color: #000000">)(Math.random()</span><span style="color: #000000">*</span><span style="color: #000000">256</span><span style="color: #000000">)));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;gp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;getFace(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(Math.random()</span><span style="color: #000000">*</span><span style="color: #000000">10</span><span style="color: #000000">&gt;</span><span style="color: #000000">5</span><span style="color: #000000">){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;Font.BOLD;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #0000ff">else</span><span style="color: #000000">{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;Font.ITALIC;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;getSize(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">[]&nbsp;sizes</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">[</span><span style="color: #000000">20</span><span style="color: #000000">];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">20</span><span style="color: #000000">;i</span><span style="color: #000000">++</span><span style="color: #000000">){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sizes[i]</span><span style="color: #000000">=</span><span style="color: #000000">30</span><span style="color: #000000">+</span><span style="color: #000000">i;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;sizes[(</span><span style="color: #0000ff">int</span><span style="color: #000000">)(Math.random()</span><span style="color: #000000">*</span><span style="color: #000000">sizes.length)];<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&lt;editor-fold&nbsp;defaultstate="collapsed"&nbsp;desc="HttpServlet&nbsp;methods.&nbsp;Click&nbsp;on&nbsp;the&nbsp;+&nbsp;sign&nbsp;on&nbsp;the&nbsp;left&nbsp;to&nbsp;edit&nbsp;the&nbsp;code."&gt;</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">/**</span><span style="color: #008000">&nbsp;Handles&nbsp;the&nbsp;HTTP&nbsp;&lt;code&gt;GET&lt;/code&gt;&nbsp;method.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;request&nbsp;servlet&nbsp;request<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;response&nbsp;servlet&nbsp;response<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">protected</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;doGet(HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;ServletException,&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;processRequest(request,&nbsp;response);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">/**</span><span style="color: #008000">&nbsp;Handles&nbsp;the&nbsp;HTTP&nbsp;&lt;code&gt;POST&lt;/code&gt;&nbsp;method.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;request&nbsp;servlet&nbsp;request<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;response&nbsp;servlet&nbsp;response<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">protected</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;doPost(HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;ServletException,&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;processRequest(request,&nbsp;response);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">/**</span><span style="color: #008000">&nbsp;Returns&nbsp;a&nbsp;short&nbsp;description&nbsp;of&nbsp;the&nbsp;servlet.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;getServletInfo()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">Short&nbsp;description</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&lt;/editor-fold&gt;</span><span style="color: #008000"><br />
</span><span style="color: #000000">}<br />
</span><br />
</p>
<p>&nbsp;</p>
 <img src ="http://www.blogjava.net/itwangxinli/aggbug/147200.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/itwangxinli/" target="_blank">BlueSky_itwangxinli</a> 2007-09-21 20:01 <a href="http://www.blogjava.net/itwangxinli/archive/2007/09/21/147200.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring Quartz 的使用</title><link>http://www.blogjava.net/itwangxinli/archive/2007/09/07/143355.html</link><dc:creator>BlueSky_itwangxinli</dc:creator><author>BlueSky_itwangxinli</author><pubDate>Fri, 07 Sep 2007 03:42:00 GMT</pubDate><guid>http://www.blogjava.net/itwangxinli/archive/2007/09/07/143355.html</guid><wfw:comment>http://www.blogjava.net/itwangxinli/comments/143355.html</wfw:comment><comments>http://www.blogjava.net/itwangxinli/archive/2007/09/07/143355.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/itwangxinli/comments/commentRss/143355.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/itwangxinli/services/trackbacks/143355.html</trackback:ping><description><![CDATA[<p>最近忙于项目，一直没有更新blog，请大家见谅。<br />
在项目中使用了Lucene全文检索，考虑到系统的特性，把Lucene的全文检索索引创建时间放在夜晚，已减轻系统的压力。<br />
首先，需要写一个类，这个类是用来执行具体的操作。也就是你想做什么事情，这个类需要extends org.springframework.scheduling.quartz.QuartzJobBean 类。<br />
比如：<br />
</p>
<p>package com.finegold.digimus.service.config;</p>
<p>import java.util.Date;<br />
import java.util.List;</p>
<p>import org.apache.log4j.Logger;<br />
import org.quartz.JobExecutionContext;<br />
import org.quartz.JobExecutionException;<br />
import org.springframework.scheduling.quartz.QuartzJobBean;</p>
<p>import com.finegold.digimus.comm.StringHelper;</p>
<p>import com.finegold.digimus.lucene.index.service.imp.AddCatalogArticleDataDocument;<br />
import com.finegold.digimus.lucene.index.service.imp.AddMediaContentDocument;<br />
import com.finegold.digimus.lucene.index.service.imp.IndexFactory;<br />
import com.finegold.digimus.service.CatalogArticleDataService;<br />
import com.finegold.digimus.service.MediaContentService;<br />
import com.finegold.digimus.service.bean.IndexPath;</p>
<p>/**<br />
&nbsp;* @author 汪心利 2007-9-6 下午03:41:29<br />
&nbsp;* @copyRigth FineGold 2007<br />
&nbsp;* @Describle 定时创建Lucene索引任务的定时器<br />
&nbsp;*/</p>
<p>public class IndexQuartz extends QuartzJobBean {</p>
<p>&nbsp;private Logger logger = Logger.getLogger(IndexQuartz.class);</p>
<p>&nbsp;private MediaContentService mediaContent;</p>
<p>&nbsp;private CatalogArticleDataService catalogArticleData;</p>
<p>&nbsp;private IndexPath indexPath;</p>
<p>&nbsp;/**<br />
&nbsp; * @return the indexPath<br />
&nbsp; */<br />
&nbsp;public IndexPath getIndexPath() {<br />
&nbsp;&nbsp;return indexPath;<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * @param indexPath<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the indexPath to set<br />
&nbsp; */<br />
&nbsp;public void setIndexPath(IndexPath indexPath) {<br />
&nbsp;&nbsp;this.indexPath = indexPath;<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * @return the catalogArticleData<br />
&nbsp; */<br />
&nbsp;public CatalogArticleDataService getCatalogArticleData() {<br />
&nbsp;&nbsp;return catalogArticleData;<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * @param catalogArticleData<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the catalogArticleData to set<br />
&nbsp; */<br />
&nbsp;public void setCatalogArticleData(<br />
&nbsp;&nbsp;&nbsp;CatalogArticleDataService catalogArticleData) {<br />
&nbsp;&nbsp;this.catalogArticleData = catalogArticleData;<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * @return the mediaContent<br />
&nbsp; */<br />
&nbsp;public MediaContentService getMediaContent() {<br />
&nbsp;&nbsp;return mediaContent;<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * @param mediaContent<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the mediaContent to set<br />
&nbsp; */<br />
&nbsp;public void setMediaContent(MediaContentService mediaContent) {<br />
&nbsp;&nbsp;this.mediaContent = mediaContent;<br />
&nbsp;}</p>
<p>&nbsp;@Override<br />
&nbsp;protected void executeInternal(JobExecutionContext arg0)<br />
&nbsp;&nbsp;&nbsp;throws JobExecutionException {<br />
<br />
//在这里加入你的操作<br />
&nbsp;&nbsp;StringBuffer logInfo = new StringBuffer();<br />
&nbsp;&nbsp;logInfo.append("在").append(StringHelper.encodeHTML(new Date())).append(<br />
&nbsp;&nbsp;&nbsp;&nbsp;"开始执行创建索引的任务调度");<br />
&nbsp;&nbsp;logger.info(logInfo.toString());<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;List m_list = mediaContent.findByMediaid(null, null);<br />
&nbsp;&nbsp;&nbsp;IndexFactory.getInstance().createIndex(m_list,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new AddMediaContentDocument(),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;indexPath.getMediaIndexPath());<br />
&nbsp;&nbsp;&nbsp;List c_list = catalogArticleData.loadAllData();<br />
&nbsp;&nbsp;&nbsp;IndexFactory.getInstance().createIndex(c_list,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new AddCatalogArticleDataDocument(),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;indexPath.getCatalogIndexPath());<br />
&nbsp;&nbsp;&nbsp;logger.info(StringHelper.encodeHTML(new Date()) + "创建索引任务完成！");</p>
<p>&nbsp;&nbsp;} catch (Exception e) {<br />
&nbsp;&nbsp;&nbsp;logger.error("使用Spring定时器创建索引出错!");<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}<br />
<br />
然后在applicationContext.xml中配置：<br />
</p>
<p>&nbsp;&lt;!-- =========================Quartz TimeTask&nbsp; 配置 ========================= --&gt;</p>
<p>&nbsp;&lt;bean id="indexJob"<br />
&nbsp;&nbsp;class="org.springframework.scheduling.quartz.JobDetailBean"&gt;<br />
&nbsp;&nbsp;&lt;property name="jobClass"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;value&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;com.finegold.digimus.service.config.IndexQuartz&lt;!-- 刚刚写的类--&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/value&gt;<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&nbsp;&lt;property name="jobDataAsMap"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;map&gt;&lt;!-- 类里一些属性 key:propertyName--&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;entry key="indexPath"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ref local="indexPath" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/entry&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;entry key="catalogArticleData"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ref bean="catalogArticleDataService" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/entry&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;entry key="mediaContent"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ref bean="mediaContentService" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/entry&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/map&gt;<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&lt;/bean&gt;<br />
<br />
&lt;!-- 配置那个任务在何时执行 --&gt;</p>
<p>&nbsp;&lt;bean id="cronTrigger"<br />
&nbsp;&nbsp;class="org.springframework.scheduling.quartz.CronTriggerBean"&gt;<br />
&nbsp;&nbsp;&lt;property name="jobDetail"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;ref bean="indexJob" /&gt;<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&nbsp;&lt;property name="cronExpression"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;value&gt;0 9 * * * ?&lt;/value&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;!--&lt;value&gt;* * 23 * * ?&lt;/value&gt;--&gt;<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&lt;/bean&gt;</p>
<p>&lt;!-- 将任务放入 SchedulerFactoryBean--&gt;&nbsp;<br />
&lt;bean id="scheduler"<br />
&nbsp;&nbsp;class="org.springframework.scheduling.quartz.SchedulerFactoryBean"&gt;<br />
&nbsp;&nbsp;&lt;property name="triggers"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;list&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;ref bean="cronTrigger" /&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/list&gt;<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&lt;/bean&gt;</p>
<p>这只是其中的一种方式，还有其它的方式。请等待......<br />
<br />
</p>
   <img src ="http://www.blogjava.net/itwangxinli/aggbug/143355.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/itwangxinli/" target="_blank">BlueSky_itwangxinli</a> 2007-09-07 11:42 <a href="http://www.blogjava.net/itwangxinli/archive/2007/09/07/143355.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用Spring、Hibernate、Struts的一些错误总结(不断补充) (转)</title><link>http://www.blogjava.net/itwangxinli/archive/2007/07/30/133304.html</link><dc:creator>BlueSky_itwangxinli</dc:creator><author>BlueSky_itwangxinli</author><pubDate>Mon, 30 Jul 2007 04:47:00 GMT</pubDate><guid>http://www.blogjava.net/itwangxinli/archive/2007/07/30/133304.html</guid><wfw:comment>http://www.blogjava.net/itwangxinli/comments/133304.html</wfw:comment><comments>http://www.blogjava.net/itwangxinli/archive/2007/07/30/133304.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/itwangxinli/comments/commentRss/133304.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/itwangxinli/services/trackbacks/133304.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 并非原创，转自网络!&nbsp;&nbsp;<a href='http://www.blogjava.net/itwangxinli/archive/2007/07/30/133304.html'>阅读全文</a><img src ="http://www.blogjava.net/itwangxinli/aggbug/133304.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/itwangxinli/" target="_blank">BlueSky_itwangxinli</a> 2007-07-30 12:47 <a href="http://www.blogjava.net/itwangxinli/archive/2007/07/30/133304.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>生活感悟</title><link>http://www.blogjava.net/itwangxinli/archive/2007/02/15/99914.html</link><dc:creator>BlueSky_itwangxinli</dc:creator><author>BlueSky_itwangxinli</author><pubDate>Thu, 15 Feb 2007 02:59:00 GMT</pubDate><guid>http://www.blogjava.net/itwangxinli/archive/2007/02/15/99914.html</guid><wfw:comment>http://www.blogjava.net/itwangxinli/comments/99914.html</wfw:comment><comments>http://www.blogjava.net/itwangxinli/archive/2007/02/15/99914.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/itwangxinli/comments/commentRss/99914.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/itwangxinli/services/trackbacks/99914.html</trackback:ping><description><![CDATA[&#160;&#160; 前些天，买了一个MP3,同事建议买Apple Ipod,我觉得太贵，结果选择了一款牌子是 微星(MSI)的。用过后感觉不怎么样，特别是耳机，声音效果很差劲。后来去买了一款Sony Ercisson K750c的手机，里面附带的Sony耳机，效果特别好。为什么呢，因为专业，所以出众。不是崇洋媚外，而是它们确实做的很出色。所以我决定了，在以后大点的东西的话，就买好牌子的，质量好，让人放心。<br />   <img src ="http://www.blogjava.net/itwangxinli/aggbug/99914.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/itwangxinli/" target="_blank">BlueSky_itwangxinli</a> 2007-02-15 10:59 <a href="http://www.blogjava.net/itwangxinli/archive/2007/02/15/99914.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UML入门知识(来自软件工程组织)</title><link>http://www.blogjava.net/itwangxinli/archive/2006/10/17/75583.html</link><dc:creator>BlueSky_itwangxinli</dc:creator><author>BlueSky_itwangxinli</author><pubDate>Tue, 17 Oct 2006 05:07:00 GMT</pubDate><guid>http://www.blogjava.net/itwangxinli/archive/2006/10/17/75583.html</guid><wfw:comment>http://www.blogjava.net/itwangxinli/comments/75583.html</wfw:comment><comments>http://www.blogjava.net/itwangxinli/archive/2006/10/17/75583.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/itwangxinli/comments/commentRss/75583.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/itwangxinli/services/trackbacks/75583.html</trackback:ping><description><![CDATA[		<table cellspacing="0" cellpadding="0" width="760" align="center" border="0">
				<tbody>
						<tr>
								<td class="title" valign="center" align="middle" height="56">
										<b>
												<font color="#ff0000" size="3">第一章 UML模型的基本概念<!-- #EndEditable --></font>
										</b>
								</td>
						</tr>
						<tr>
								<td class="formtitle" align="middle" height="40">
										<!-- #BeginEditable "2" -->
										<br />
										<!-- #EndEditable -->
								</td>
						</tr>
				</tbody>
		</table>
		<table height="65" cellspacing="0" cellpadding="0" width="760" align="center" border="0">
				<tbody>
						<tr>
								<td class="content" height="65">
										<!-- #BeginEditable "3" -->
										<table width="760" align="center">
												<tbody>
														<tr>
																<td class="content">
																		<table style="BORDER-TOP: #ffffff 8px solid" cellspacing="0" cellpadding="2" width="560" border="0">
																				<tbody>
																						<tr>
																								<td>
																								</td>
																						</tr>
																				</tbody>
																		</table>
																		<table class="p11" cellspacing="0" cellpadding="0" width="560" align="center" border="0">
																				<tbody>
																						<tr>
																								<td class="content" style="WORD-WRAP: break-word">
																										<p align="left">
																												<span class="content">&#160;&#160;&#160;</span>
																										</p>
																										<h3>
																												<strong>1 UML的建筑块</strong>
																										</h3>
																										<p>组成UML有三种基本的建筑块：<br />1、事物（Things）<br />2、关系（Relationships）<br />3、图（Diagrams）<br />事物是UML中重要的组成部分。关系把事物紧密联系在一起。图是很多有相互相关的事物的组。<br /></p>
																										<h3>1.1&#160;&#160; UML的事物</h3>
																										<p>UML中有始终类型的事物：</p>
																										<p>1、结构事物（Structural things）<br />2、动作事物（Behavioral things）<br />3、分组事物（Grouping things）<br />4、注释事物（Annotational things）<br />这些事物是UML模型中最基本的面向对象的建筑块。它们在模型中属于最静态的部分，代表概念上等或物理上的元素。<br /></p>
																										<h3>1.1.1结构事物。</h3>
																										<p>总共有七种结构化事物。首先是类（class），类是描述具有相同属性、方法、关系和语义的对象的集合。一个类实现一个或多个接口。在UML 中类被画为一个矩型，通常包括它的名字、属性和方法。 </p>
																										<center>
																												<table width="23%" align="left" border="1">
																														<tbody>
																																<tr>
																																		<td class="content" align="middle" width="100%">Window</td>
																																</tr>
																																<tr>
																																		<td class="content" align="middle" width="100%">Origin Size</td>
																																</tr>
																																<tr>
																																		<td class="content" align="middle" width="100%" height="68">Open()<br />Close()<br />Move()<br />Display()</td>
																																</tr>
																														</tbody>
																												</table>
																										</center>&#160;<br />&#160; 
<p align="center">&#160;</p><p align="center">&#160;</p><p align="left">&#160;</p><p align="left">&#160;图1-1 类<br />第二种是接口（interface），接口是指类或组件提供特定服务的一组操作的集合。因此，一个接口描述了类或组件的对外的可见的动作。一个接口可以实现类或组件的全部动作，也可以只实现一部分。接口在UML 中被画成一个圆和它的名字。&#160;&#160;&#160;&#160;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;<img height="42" src="http://www.uml.org.cn/oobject/images/umlcon1.gif" width="49" /><br />图1-2 接口 <br /><br />第三种是协作（collaboration），协作定义了交互的操作，是一些角色和其它元素一起工作，提供一些合作的动作，这些动作比元素的总和要大。因此，协作具有结构化、动作化、维的特性。一个给定的类可能是几个协作的组成部分。这些协作代表构成系统的模式的实现。协作在UML 中用一个虚线画的椭圆和它的名字来表示。</p><p align="right"><br />&#160;<br /><img height="76" alt="椭圆: 响应链" src="http://www.uml.org.cn/oobject/images/umlcon2.gif" width="159" align="left" /> &#160;</p><p>　</p><font face="宋体" size="3"><p align="center">　</p></font><font face="宋体, MS Song">图1-3 协作<br /></font><font face="宋体" size="3">&#160; </font><p>第四种是use case，use case是描述一系列的动作，这些动作是系统对一个特定角色执行，产生值得注意的结果的值。在模型中use case通常用来组织动作事物。Use case是通过协作来实现的。在UML 中，use case画为一个实线椭圆，通常还有它的名字。<br />&#160;<br /><img height="76" alt="椭圆: width=" src="http://www.uml.org.cn/oobject/images/umlcon3.gif" 159?="" />&#160;</p><p>图1-4 use case &#160;<br /><br />第五种是活动类（active class），活动类是这种类，它的对象有一个或多个进程或线程。活动类和类很相象，只是它的对象代表的元素的行为和其他的元素是同时存在的。在UML 中活动类的画法和类相同，只是边框用粗线条。</p><table width="20%" border="1"><tbody><tr><td width="100%">EventManager</td></tr><tr><td width="100%">Suspend()<br />Flush()<br /></td></tr></tbody></table><p>图1-5 活动类<br />&#160;<br />第六种是组件（component），组件是物理上或可替换的系统部分，它实现了一个接口集合。在一个系统中，你可能会遇到不同种类的组件，例如COM+ 或JAVA BEANS。组件在UML中用如下的图表示：<br /><img height="97" src="http://www.uml.org.cn/oobject/images/umlcon4.gif" width="183" /><br />图1-6 组件 第七种是结点（node），结点是一个物理元素，它在运行时存在，代表一个可计算的资源，通常占用一些内存和具有处理能力。一个组件集合一般来说位于一个结点，但有可能从一个结点转到另一个结点。结点通常用如下的图形表示：<br />&#160;&#160;&#160; <img height="73" src="http://www.uml.org.cn/oobject/images/umlcon5.gif" width="105" /> 图1-7结点<br />&#160;<br />类、接口、协作、use case、活动类、组件和结点这七个元素是在UML 模型中使用的最基本的结构化事物。系统中还有这七种基本元素的变化体，如角色、信号（某种类），进程和线程（某种活动类），应用程序、文档、文件、库、表（组件的一种）。<br />&#160;</p><h3>1.1.2 动作事物</h3><p>动态事物是UML 模型中的动态部分。它们是模型的动词，代表时间和空间上的动作。总共有两种主要的动作事物。<br />第一种是ineraction，interaction是由一组对象之间在特定上下文中，为达到特定的目的而进行的一系列消息交换而组成的动作。 interaction中组成动作的对象的每个操作都要详细列出，包括消息、动作次序（消息产生的动作），连接（对象之间的连接）。在UML 中消息画成带箭头的直线，通常加上操作的名字。<br /><img height="39" src="http://www.uml.org.cn/oobject/images/umlcon6.gif" width="195" /><br />&#160;<br /><br />图1-8 消息<br />&#160;&#160;&#160;&#160;&#160;&#160; 第二种是状态机（state machine），状态机由一系列对象的状态组成。在UML 中状态表示为下图：<br /><img height="76" alt="流程图：可选过程 width=" src="http://www.uml.org.cn/oobject/images/umlcon7.gif" 147?="" />&#160;<br />图案1-9 状态<br />&#160;<br />interaction和状态机是UML 模型中最基本的两个动态事物元素，它们通常和其他的结构元素、主要的类、对象连接在一起。<br />&#160;</p><h3>1.1.3 分组事物</h3><p>分组事物是UML 模型中组织的部分，可以把它们看成是个盒子，模型可以在其中被分解。总共只有一种分组事物，称为包（package）。<br />包是一种将有组织的元素分组的机制。结构事物、动作事物甚至其他的分组事物都有可能放在一个包中。与组件（存在于运行时）不同的是包纯粹是一种概念上的东西，只存在于开发阶段。在UML 中用如下图表示包：<br />&#160; <img height="117" src="http://www.uml.org.cn/oobject/images/umlcon8.gif" width="171" /><br />&#160; &#160;<br />图 1-10 包<br /></p><h3>1.1.4 注释事物</h3><p>注释事物是UML模型的解释部分。UML中用如下图表示：<br />&#160; <img height="97" src="http://www.uml.org.cn/oobject/images/umlcon9.gif" width="195" /><br />图　1-11 注释<br />&#160;</p><h3>1.1.5 UML中的关系</h3><p>UML中有四种关系：<br />1.&#160;&#160;&#160;&#160; 依赖（Dependencies）&#160; <img height="14" src="http://www.uml.org.cn/oobject/images/umlcon10.gif" width="195" /><br />（图1-12 依赖）<br />&#160;<br />2.&#160;&#160;&#160; 关联（Association）<img height="43" src="http://www.uml.org.cn/oobject/images/umlcon11.gif" width="219" /><br />（图　1-13 关联）<br />　 &#160;<br />3.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 一般化（generalization）<img height="32" src="http://www.uml.org.cn/oobject/images/umlcon12.gif" width="219" /><br />（图1-14 一般化） &#160;<br />4.&#160;&#160;&#160;&#160;&#160;&#160; 实现(realuzation)&#160; <img height="32" src="http://www.uml.org.cn/oobject/images/umlcon13.gif" width="220" /><br />（图　1-15 实现）<br />&#160;</p><h3>1.1.6 UML中的图</h3><p>1、类图（class diagram）<br />2、对象图（class diagram）<br />3、Use case diagram<br />4、Sequence diagram<br />5、Collaboration diagram<br />6、Statechart diagram<br />7、Activity diagram<br />8、Compomnent diagram<br />9、Deployment diagram<font face="宋体" size="3"><br /></font></p></td>
																						</tr>
																				</tbody>
																		</table>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
 <img src ="http://www.blogjava.net/itwangxinli/aggbug/75583.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/itwangxinli/" target="_blank">BlueSky_itwangxinli</a> 2006-10-17 13:07 <a href="http://www.blogjava.net/itwangxinli/archive/2006/10/17/75583.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>