﻿<?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>博客园-中国龍</title><link>http://www.cnblogs.com/huqingyu/</link><description>=============龖:龍腾飞的样子=============</description><language>zh-cn</language><lastBuildDate>Sat, 04 Jul 2009 15:38:04 GMT</lastBuildDate><pubDate>Sat, 04 Jul 2009 15:38:04 GMT</pubDate><ttl>60</ttl><item><title>华美罗宾钢琴有限公司 www.robinpiano.net</title><link>http://www.cnblogs.com/huqingyu/archive/2009/06/07/1497917.html</link><dc:creator>龍龙</dc:creator><author>龍龙</author><pubDate>Sat, 06 Jun 2009 22:58:00 GMT</pubDate><guid>http://www.cnblogs.com/huqingyu/archive/2009/06/07/1497917.html</guid><wfw:comment>http://www.cnblogs.com/huqingyu/comments/1497917.html</wfw:comment><comments>http://www.cnblogs.com/huqingyu/archive/2009/06/07/1497917.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/huqingyu/comments/commentRss/1497917.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/huqingyu/services/trackbacks/1497917.html</trackback:ping><description><![CDATA[<p>华美罗宾钢琴有限公司 钢琴公司 钢琴销售 买钢琴 罗宾钢琴（Robin Piano），佳.克林斯汀钢琴（G.Crystal Piano），赛泰德钢琴，罗宾自动演奏钢琴（Robin Player Piano）</p>
<p><a href="http://www.robinpiano.net/"><span style="color: #765f47;">http://www.robinpiano.net/</span></a></p>
<p>&nbsp;<wbr /></p>
<p>罗宾电子科技有限公司</p>
<p><a href="http://www.robinplay.com/"><span style="color: #765f47;">http://www.robinplay.com</span></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p><img src ="http://www.cnblogs.com/huqingyu/aggbug/1497917.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47970/" target="_blank">19岁天才黑客发布首个iPhone 3GS破解软件</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>今天主要改了罗宾钢琴的首页图片缩放问题</title><link>http://www.cnblogs.com/huqingyu/archive/2009/05/27/1490516.html</link><dc:creator>龍龙</dc:creator><author>龍龙</author><pubDate>Tue, 26 May 2009 17:08:00 GMT</pubDate><guid>http://www.cnblogs.com/huqingyu/archive/2009/05/27/1490516.html</guid><wfw:comment>http://www.cnblogs.com/huqingyu/comments/1490516.html</wfw:comment><comments>http://www.cnblogs.com/huqingyu/archive/2009/05/27/1490516.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/huqingyu/comments/commentRss/1490516.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/huqingyu/services/trackbacks/1490516.html</trackback:ping><description><![CDATA[<p>今天觉得首页出来的图片太慢了,所以着手改图片大小的问题</p>
<p>查看了一下原因,问题出在产品的缩略图上,以前是直接用&lt;img src=XXX.jpg&nbsp; width=190 height=140&gt;这样缩放的,其实它还是把原图下载到了本地,原图有多少大就下载多少大.而主页要显示4个图片,每个原图都有600K就要2.4M,是够大的了.</p>
<p>于是考虑怎么样显示缩略图.</p>
<p>起先开始想把上传的时候就生成缩略图,但是,现在是asp,有难度的,网上找了好久没有攻略,都说要组件才能做到,而我的服务器没有组件.这条路不通.</p>
<p>然后考虑是否能上传两次,一次原图,一次在本地生成缩略图再上传.想用Flex,上传原图的代码是找到了,也很简单.可是本地弄个缩略再上传,我这个初学者就不会了,似乎要用到ImageData,再Matrix什么的,一下子研究不出来.</p>
<p>最后没办法了.上服务器研究一下,我记得是可以用.net 1.1的,下载了一个asp.net探针,果然服务器用的是windows2003, .net 1.1,那就好办了,做一个server端的缩放就完工了.</p>
<p>&nbsp;</p>
<p>最后showimage.aspx代码如下:</p>
<p>&lt;%</p>
<p>try<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string input_ImgUrl = "../pic/" + Request.QueryString["name"];</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // ＝＝＝通过连接创建Image对象＝＝＝<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.Drawing.Image oldimage = System.Drawing.Image.FromFile(Server.MapPath(input_ImgUrl));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int int_Width = oldimage.Width;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int int_Height = oldimage.Height;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // ＝＝＝上传标准图大小＝＝＝<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int int_Standard_Width = Convert.ToInt32(Request.QueryString["width"]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int int_Standard_Height = Convert.ToInt32(Request.QueryString["height"]);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int Reduce_Width = 0; // 缩小的宽度<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int Reduce_Height = 0; // 缩小的高度<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int level = 100; //缩略图的质量 1-100的范围</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // ＝＝＝获得缩小，裁剪大小＝＝＝<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double scaleHeight = ((double)int_Standard_Height / (double)int_Height);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double scaleWidth = ((double)int_Standard_Width / (double)int_Width);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (scaleHeight &lt; scaleWidth)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Reduce_Width = (int)(int_Width * scaleHeight);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Reduce_Height = int_Standard_Height;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if (scaleHeight &gt; scaleWidth)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Reduce_Width = int_Standard_Width;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Reduce_Height = (int)(int_Height * scaleWidth);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Reduce_Width = int_Standard_Width;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Reduce_Height = int_Standard_Height;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // ＝＝＝缩小图片＝＝＝<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.Drawing.Image thumbnailImage = oldimage.GetThumbnailImage(Reduce_Width, Reduce_Height, null, IntPtr.Zero);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.Drawing.Bitmap bm = new System.Drawing.Bitmap(thumbnailImage);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // ＝＝＝处理JPG质量的函数＝＝＝<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.Drawing.Imaging.ImageCodecInfo[] codecs = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.Drawing.Imaging.ImageCodecInfo ici = null;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach (System.Drawing.Imaging.ImageCodecInfo codec in codecs)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (codec.MimeType == "image/jpeg")<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ici = codec;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.Drawing.Imaging.EncoderParameters ep = new System.Drawing.Imaging.EncoderParameters();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ep.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, (long)level);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.IO.MemoryStream ms = new System.IO.MemoryStream();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bm.Save(ms, ici, ep);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.ClearContent();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.BinaryWrite(ms.ToArray());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.ContentType = "image/jpeg";//指定输出格式为图形</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.Flush();<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; catch (Exception e)<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.Write(e.ToString());<br />&nbsp;&nbsp;&nbsp; }</p>
<p>%&gt;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>中间过程中,用到的Flex文件上传代码:</p>
<p>&lt;?xml version="1.0" encoding="utf-8"?&gt;</p>
<p>&lt;mx:Application xmlns:mx="<a href="http://www.adobe.com/2006/mxml">http://www.adobe.com/2006/mxml</a>"<br />&nbsp;layout="vertical" verticalAlign="middle" horizontalAlign="center"&gt;</p>
<p>&nbsp;&lt;mx:Style&gt;<br />&nbsp;&nbsp;global {<br />&nbsp;&nbsp;&nbsp;fontSize : 14;<br />&nbsp;&nbsp;}<br />&nbsp;&lt;/mx:Style&gt;<br />&nbsp;<br />&nbsp;&lt;mx:Script&gt;<br />&nbsp;&nbsp;&lt;![CDATA[<br />&nbsp;&nbsp;&nbsp;import mx.effects.Zoom;<br />&nbsp;&nbsp;&nbsp;import mx.controls.Image;<br />&nbsp;&nbsp;&nbsp;// 先搞 1 个 FileReference<br />&nbsp;&nbsp;&nbsp;private var file:FileReference = new FileReference();<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;// 上传状态指示, 和下面的文本框绑定<br />&nbsp;&nbsp;&nbsp;[Bindable]<br />&nbsp;&nbsp;&nbsp;private var stateText:String = "请选择一个文件上传";<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;// createChildren 比 creationComplete 事件更早发生, 省的注册事件侦听, 直接在这里写了<br />&nbsp;&nbsp;&nbsp;protected override function createChildren():void {<br />&nbsp;&nbsp;&nbsp;&nbsp;super.createChildren();<br />&nbsp;&nbsp;&nbsp;&nbsp;file.addEventListener(Event.SELECT, file_select);<br />&nbsp;&nbsp;&nbsp;&nbsp;file.addEventListener(Event.COMPLETE, file_complete);<br />&nbsp;&nbsp;&nbsp;&nbsp;file.addEventListener(ProgressEvent.PROGRESS, file_progress);<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;// 选择 1 个文件的事件<br />&nbsp;&nbsp;&nbsp;private function file_select (e:Event):void {<br />&nbsp;&nbsp;&nbsp;&nbsp;stateText = "选择了文件 " + file.name;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;// 上传完毕后的事件<br />&nbsp;&nbsp;&nbsp;private function file_complete (e:Event):void {<br />&nbsp;&nbsp;&nbsp;&nbsp;stateText = "上传完毕";<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;private function file_progress (e:ProgressEvent):void {<br />&nbsp;&nbsp;&nbsp;&nbsp;stateText = "已上传 " + Math.round(100 * e.bytesLoaded / e.bytesTotal) + "%";<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;// 先判断一下文件大小, 再上传, FileService.aspx 就是上传地址<br />&nbsp;&nbsp;&nbsp;private function upload ():void {<br />&nbsp;&nbsp;&nbsp;&nbsp;if (file.size &gt; 0) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stateText = "正在上传 " + file.name;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var request:URLRequest = new URLRequest("FileService.asp");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file.upload(request);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;]]&gt;<br />&nbsp;&lt;/mx:Script&gt;<br />&nbsp;<br />&nbsp;&lt;mx:Panel width="250" height="112" layout="vertical" title="上传示例"<br />&nbsp;&nbsp;verticalAlign="middle" horizontalAlign="center" &gt;<br />&nbsp;&nbsp;&lt;mx:HBox&gt;<br />&nbsp;&nbsp;&nbsp;&lt;mx:TextInput text="{stateText}" width="160" editable="false"/&gt;<br />&nbsp;&nbsp;&nbsp;&lt;mx:Button label="浏览" click="file.browse();"/&gt;<br />&nbsp;&nbsp;&lt;/mx:HBox&gt;<br />&nbsp;&nbsp;&lt;mx:HBox&gt;<br />&nbsp;&nbsp;&nbsp;&lt;mx:Button label="上传" click="upload();"/&gt;<br />&nbsp;&nbsp;&lt;/mx:HBox&gt;<br />&nbsp;&lt;/mx:Panel&gt;<br />&lt;/mx:Application&gt;<br />其中,FileService.asp使用了无组件上传技术,其实也可以用FileService.aspx来代替,只要一般的网页上的file能上传就可以.</p><img src ="http://www.cnblogs.com/huqingyu/aggbug/1490516.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47969/" target="_blank">新浪邮箱大本营粉墨登场！Sina.cn开放注册</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>罗宾钢琴http://www.robinpiano.net</title><link>http://www.cnblogs.com/huqingyu/archive/2009/05/25/1489167.html</link><dc:creator>龍龙</dc:creator><author>龍龙</author><pubDate>Mon, 25 May 2009 13:52:00 GMT</pubDate><guid>http://www.cnblogs.com/huqingyu/archive/2009/05/25/1489167.html</guid><description><![CDATA[<p>罗宾钢琴非常好，</p>
<p><a href="http://www.robinpiano.net">http://www.robinpiano.net</a></p>
<p>公司目前有三个系列的产品，罗宾自动演奏钢琴（Robin Player Piano），罗宾钢琴（Robin Piano），佳克林斯町钢琴（G.Crystal Piano）。</p><img src ="http://www.cnblogs.com/huqingyu/aggbug/1489167.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47968/" target="_blank">IE市场份额首次跌破60%</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>flex做图片切换(播放)</title><link>http://www.cnblogs.com/huqingyu/archive/2009/05/25/1488703.html</link><dc:creator>龍龙</dc:creator><author>龍龙</author><pubDate>Mon, 25 May 2009 02:35:00 GMT</pubDate><guid>http://www.cnblogs.com/huqingyu/archive/2009/05/25/1488703.html</guid><wfw:comment>http://www.cnblogs.com/huqingyu/comments/1488703.html</wfw:comment><comments>http://www.cnblogs.com/huqingyu/archive/2009/05/25/1488703.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/huqingyu/comments/commentRss/1488703.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/huqingyu/services/trackbacks/1488703.html</trackback:ping><description><![CDATA[<p><a href="/blog/231575"><span style="color: #108ac6;">flex做图片切换(播放)</span></a></p>
<div class="bar">
<div class="tools">Java代码 <a href="http://longzhu.javaeye.com/blog/231575" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;" title="复制代码"></a></div>
</div>
<p><span><span></span></span>&nbsp;</p>
<p><span><span>&lt;?xml&nbsp;version=</span><span class="string"><span style="color: #0000ff;">"1.0"</span></span><span>&nbsp;encoding=</span><span class="string"><span style="color: #0000ff;">"utf-8"</span></span><span>?&gt; &nbsp;&nbsp;</span></span></p>
<p><span>&lt;mx:Application&nbsp;xmlns:mx=</span><span class="string"><span style="color: #0000ff;">"http://www.adobe.com/2006/mxml"</span></span><span>&nbsp;layout=</span><span class="string"><span style="color: #0000ff;">"absolute"</span></span><span>&nbsp; &nbsp;&nbsp;</span><span></span></p>
<p>backgroundColor="white" width="300" height="200"&nbsp; creationComplete="getResult()"&gt;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;mx:Style&gt;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .vbox {&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; backgroundColor: #000000;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; textAlign:center;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; borderStyle:solid;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; borderColor:#ffffff;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/mx:Style&gt;&nbsp;&nbsp;&nbsp; <br />&nbsp; &lt;mx:Script&gt;&nbsp;&nbsp; <br />&nbsp;&nbsp; &lt;![CDATA[&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; import mx.containers.VBox;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; import flash.utils.setInterval;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; import mx.containers.Canvas;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; import mx.controls.Label;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; import mx.controls.Button;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; import mx.controls.Text;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; import mx.controls.Alert;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; import mx.rpc.events.*;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; import mx.collections.*;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; import mx.controls.*;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; import flash.utils.*;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; import flash.events.TimerEvent;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; import flash.events.ContextMenuEvent;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; private var newsListXml:XML;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; private var newsList:XMLListCollection;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; private var PicUrl:String = "E:\\ad\\";&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; private var newsArray:Array = new Array; //全局变量，用来装vbox集合&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; private var currNews:News;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; private var newsArrayLength:int;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; //发送请求去读取xml文件信息&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; public function getResult():void{&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; feed.url="<a href="http://127.0.0.1:8080/webroot/file/bigAds.xml">http://127.0.0.1:8080/webroot/file/bigAds.xml</a>";&nbsp;&nbsp; //xml文件路径&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; feed.send(null);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; //请求xml成功后处理函数&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; public function resultHandler(event:ResultEvent):void {&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; canvasid.setStyle("backgroundImage",PicUrl+"5.jpg");&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; title.text="哈1";&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; newsListXml = XML(event.result);&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; init();&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; autoPlay();&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; public function titileStyle():void{&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; var glowFilter:GlowFilter=new GlowFilter();&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; glowFilter.color=0xFFFFFF;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; var sampleFilters:Array = title.filters;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; sampleFilters.push(glowFilter);&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; title.filters = sampleFilters;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; //错误时处理的函数&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; public function handleFault(event:FaultEvent):void{&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; Alert.show(event.fault.faultString, "Error");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; //动态创建标签&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; public function init():void{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newsList = new XMLListCollection(newsListXml.children().child(1).children());&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var lb:Label;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var vbox:VBox;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(var i:int=0;i&lt;newsList.length;i++){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var newsObject:Object=newsList.getItemAt(i);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lb = new Label();&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var picId:String=newsObject.@pk;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lb.id = "pic"+picId;&nbsp;&nbsp;&nbsp; //存id&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lb.text = String(i+1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var picName:String=newsObject.@pk+".jpg";&nbsp;&nbsp; //存图片路径&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lb.name = picName;&nbsp;&nbsp; //存图片名字&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lb.setStyle("color","#ffffff");&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lb.useHandCursor = true;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lb.buttonMode = true;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lb.mouseChildren = false;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lb.height=15;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lb.width=22;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var title:String =newsObject.entry.(@key=="title");&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vbox = new VBox();&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vbox.id = ""+i;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vbox.addChild(lb);&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vbox.styleName="vbox";&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; addIndexEvent(lb,vbox);&nbsp;&nbsp;&nbsp;&nbsp; //动态为tx标签元素添加事件&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HboxIndexSet.addChild(vbox);&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var <a href="news:News=new">news:News=new</a> News();&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; news.seq=i;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="mailto:news.id=newsObject.@pk">news.id=newsObject.@pk</a>;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; news.title=newsObject.entry.(@key=="title");&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="mailto:news.img=newsObject.@pk+&quot;.jpg">news.img=newsObject.@pk+".jpg</a>";&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; news.indexBox=vbox;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newsArray[i]=news;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; titileStyle();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newsArrayLength=newsArray.length;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; currNews=newsArray[newsArrayLength-1];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setInterval(function():void{autoPlay();},3000);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //as2.0中用setInterval&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ///var ttime:Timer = new Timer(2000,0);&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// ttime.addEventListener(TimerEvent.TIMER,function():void{autoPlay();});&nbsp;&nbsp; //as3.0中用time取代了setInterval&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ///ttime.start();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; //动态为标签添加事件&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public function addIndexEvent(tagetObject:Object,box:VBox):void{&nbsp;&nbsp; //参数一代表哪个标签对像,二是一个变量参数&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; tagetObject.addEventListener(MouseEvent.CLICK,function():void{clickIndex(box);});&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //处理事件函数&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; public function clickIndex(box:VBox):void{&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; toTop(newsArray[box.id])&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; //自动切换(播放)&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; public function autoPlay():void{&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; var currSeq:int=currNews.seq;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; var nextSeq:int=(currSeq+1)%newsArrayLength;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; var nextNews:News=newsArray[nextSeq];&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; toTop(nextNews);&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; //图片切换，背景色切换&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; public function toTop(nextNews:News):void{&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; currNews.indexBox.setStyle("backgroundColor","#000000");&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; nextNews.indexBox.setStyle("backgroundColor","red");&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; canvasid.setStyle("backgroundImage",PicUrl+nextNews.img);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; title.text=nextNews.title;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; currNews=nextNews;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; //打开一个浏览器（暂没用）&nbsp;&nbsp; <br />&nbsp;//&nbsp;&nbsp; public function showPic():void{&nbsp;&nbsp; <br />&nbsp;//&nbsp;&nbsp;&nbsp; navigateToURL(new URLRequest("<a href="http://www.baidu.com&quot;),&quot;_blank">http://www.baidu.com"),"_blank</a>");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;//&nbsp;&nbsp; }&nbsp;&nbsp; <br />&nbsp;&nbsp; ]]&gt;&nbsp;&nbsp; <br />&nbsp; &lt;/mx:Script&gt;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&lt;mx:HTTPService id="feed" resultFormat="e4x" result="resultHandler(event)"&nbsp;&nbsp;&nbsp; <br />&nbsp;fault="handleFault(event);" useProxy="false" /&gt;&nbsp;&nbsp; <br />&nbsp;&lt;mx:VBox width="300" height="200" verticalAlign="bottom" verticalGap="0"&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;id="canvasid" horizontalCenter="0" verticalCenter="0" verticalScrollPolicy="off"&nbsp; <br />&nbsp;&nbsp;&nbsp; <br />&nbsp;horizontalScrollPolicy="off"&gt;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;mx:Label x="123" y="180" text="Label" height="26"&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; <br />&nbsp;color="#000000" fontSize="20" fontWeight="bold" id="title"&nbsp;&nbsp; /&gt;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;mx:HBox x="211" y="180" width="100%"&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; <br />&nbsp;backgroundColor="#000000" backgroundAlpha="0.50"&nbsp;&nbsp; horizontalAlign="right" id="HboxIndexSet"&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; <br />&nbsp;horizontalGap="1" horizontalScrollPolicy="off"/&gt;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/mx:VBox&gt;&nbsp;&nbsp;&nbsp;<br />&nbsp; &lt;/mx:Application&gt; </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="http://www.javaeye.com/upload/attachment/35803/afcc61a9-46ec-3980-b4ac-cddbca1815e6.bmp">http://www.javaeye.com/upload/attachment/35803/afcc61a9-46ec-3980-b4ac-cddbca1815e6.bmp</a></p>
<p><span></span></p><img src ="http://www.cnblogs.com/huqingyu/aggbug/1488703.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47968/" target="_blank">IE市场份额首次跌破60%</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>Windows XP + Apache 2.2.4 + PHP 5.2.0 + MySQL 5.0.27 + Zend Optimizer 3.2.0环境配置方法</title><link>http://www.cnblogs.com/huqingyu/archive/2009/05/21/1486639.html</link><dc:creator>龍龙</dc:creator><author>龍龙</author><pubDate>Thu, 21 May 2009 14:04:00 GMT</pubDate><guid>http://www.cnblogs.com/huqingyu/archive/2009/05/21/1486639.html</guid><wfw:comment>http://www.cnblogs.com/huqingyu/comments/1486639.html</wfw:comment><comments>http://www.cnblogs.com/huqingyu/archive/2009/05/21/1486639.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/huqingyu/comments/commentRss/1486639.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/huqingyu/services/trackbacks/1486639.html</trackback:ping><description><![CDATA[<p>今天在本机搭建了一个php环境，记录一下过程，windows系统配置方法大同小异，以下为本说明所要用到的软件：</p>
<p style="padding-left: 3px; margin: 15px;" class="UBBPanel">&nbsp;</p>
<p class="UBBContent">Apache 2.2.4 -- www.apache.com<br />PHP 5.2.0 -- www.php.net<br />MySQL 5.0.27 -- www.mysql.com<br />Zend Optimizer 3.2.0 -- www.zend.com<br />phpMyAdmin 2.9.2 -- www.phpmyadmin.net<br />严重注意：在进行下列操作前，Windows XP应无安装IIS、PHP、APACHE、MYSQL、ZEND。</p>
<p><strong>&equiv; Apache 2.2.4 的安装 &equiv;</strong></p>
<p>1.打开我的电脑，进入D盘，在其下新建一个文件夹，名为 local 。<br />2.到其官方站点下载 apache_2.2.4-win32-x86-no_ssl.msi 并执行。<br />3.按3次Next按钮，安装程序要求输入你的Network Domain（网络域名）、Server Domain（服务器域名）和网站管理员的E-mail，有的话就如实填写，本说明介绍的是本地自建测试环境，所以随便一下，前两个填 localhost ，邮件写自己的即可。<br />4.进入Next后，默认的安装路径是"C:\Program Files\Apache Software Foundation\Apache2.2\"，修改路径，改为前面所述的"D:\local\Apache2"。<br />5.然后一路下去，直到安装结束；此时，打开D盘下的local文件夹，可以看到有一个名为Apache2的文件夹。<br />6.打开IE，然后在地址栏输入："http://localhost" 或者 "http://127.0.0.1" 可以看到Apache安装完成的成功页面；以后网页的存在位置就在 "D:\local\Apache2\htdocs" 目录。<br /><span id="more-212"></span><br /><strong>&equiv; PHP 5.2.0 的安装 &equiv;</strong></p>
<p>1.到其官方站点下载 php-5.2.0-Win32.zip 并解压（在此不要下载及使用它的Installer，这种方式虽然很自动化、很智能，但也存在很多方面的限制，因为不推荐。）<br />2.将PHP文件解压到一个目录下，目录地址为 "D:\local\php"。<br />3.将PHP目录（D:\local\php）下的php.ini-dist复制到windows（有的系统是winnt目录）目录下，并改名为php.ini。<br />4.复制D:\local\php目录下的所有dll文件到windows的系统文件夹里，即：C:\windows\system32。</p>
<p><strong>&equiv; MySQL 5.0.27 的安装 &equiv;</strong></p>
<p>1.打开我的电脑，进入D:\local，在其下新建一个文件夹，名为 mysql 。<br />2.到其官方站点下载 Mysql 5.0.27 Installer 并执行。<br />3.按Next，然后选择Custom安装方式。<br />4.点击Change，改变安装路径；原路径是"C:\Program Files\MySQL\MySQL Server 5.0\"，这里改为："D:\local\mysql\"。<br />5.等安装进度条load完时，会出现一个Sign Up向导，这里不用理，选择最下面的那个Skip Sign-Up，然后Next，上面有个 "Configure the MySQL Server now" 是打勾的，不要去掉，直接点Finish。<br />6.现在开始安装最后的配置，点Next，选择Detailed Configuration，然后选择第二个Server Machine。<br />7.再Next，选择Non-Transactional Database Only。<br />8.再Next，选择Manual Setting，连接数选择200到300，在此因为是本机测试，所以此项并不重要。<br />9.再Next，是设置其的端口，默认是3306，不要动它。<br />10.再Next，选择Manual Selected Default Character Set / Collation，在下面的 Character Set选择gbk。<br />11.再Next，在Include Bin Directory in Windows PATH前打勾。<br />12.再Next，在Modify Security Settings前的勾取消，因为是本地环境，非服务器和虚拟主机。<br />13.最后一个Next再加Execute，可以看到上面的步骤全部完成。<br />14.MySQL的帐号是：root，密码为空。<br />15.检测MySQL，键盘的Win + R，弹出运行对话框，输入cmd后回车，进入命令提示符，然后输入："mysql -uroot -p"，回车后要求输入密码，因为密码为空，所以直接再按回车即可。现在可以看到如下成功的提示：</p>
<p style="padding-left: 3px; margin: 15px;" class="UBBPanel">&nbsp;</p>
<p class="UBBContent">Welcome to the MySQL monitor. Commands end with ; or \g.<br />Your MySQL connection id is 1 to server version: 5.0.27-community-nt</p>
<p>Type 'help;' or '\h' for help. Type '\c' to clear the buffer.<br />表示全部安装成功。<br />操作符变成了"mysql&gt;"，键入exit退出即可。</p>
<p><strong>&equiv; Zend Optimizer 3.2.0 的安装 &equiv;</strong></p>
<p>1.打开我的电脑，进入D:\local，在其下新建一个文件夹，名为 zend 。<br />2.到其官方站点下载 ZendOptimizer-3.2.0-Windows-i386.exe 并执行。<br />3.按Next，到了路径选择那儿，点Browse，默认是"C:\Program Files\Zend\ZendOptimizer-3.2.0"，将其修改为"D:\local\zend"。<br />4.按Next后，可以看到的是服务器的选择，在此由于刚刚安装了Aapche 2.2.4，所以在其中一项名为"Apache 2.x"，就按它，然后点Next。<br />5.接下来的一路点Next，全接默认的设置，然后Install。<br />6.Zend安装完成。</p>
<p><strong>&equiv; Apache 与 PHP 的配置 &equiv;</strong></p>
<p>1.开始菜单的程序的Apache HTTP Server 2.2.4，再进入下一级的Configure Apache Server，这时可以看到那个Edit the Apache httpd.conf Configuration File。点一下。<br />2.查找：<br />#LoadModule ssl_module modules/mod_ssl.so<br />在下面添加：<br />LoadModule php5_module "d:/local/php/php5apache2_2.dll"<br />(其中d:/local/php/php5apache2_2.dll是你安装php的相应路径.<br />注意不要把php5apache2_2.dll,php5apache2.dll和php5apache.dll混淆.php5apache.dll只适用于apache 版本1的.<br />PHP5压缩包里的php5apache2.dll只适用于apache2.0.*版本,如果是2.2.*以上版本,必须使用php5apache2_2.dll.否则就可能会出现<br /><span style="color: #ff0000;">"Cannot load d:/local/php/php5apache2_2.dll into server: The specified module could not be found."</span>或者:<br /><span style="color: #ff0000;">"The requested operation has failed"</span>的错误提示！<br />3.查找：<br />DirectoryIndex index.html<br />替换：<br />DirectoryIndex index.html index.htm index.php default.php<br />4.查找：<br />AddType application/x-gzip .gz .tgz<br />在下面添加：<br />AddType application/x-httpd-php .php<br />5.Apache配置结束，现在开始进行PHP配置，用Notepad打开C:\windows\php.ini。<br />6.查找：<br />extension_dir = "./"<br />替换：<br />extension_dir = "d:/local/php/ext/"<br />7.查找：<br />upload_max_filesize = 2M<br />这里的意思为修改上传文件的最大限制，默认为2M，可以改为6M。<br />8.查找：<br />;extension=php_mbstring.dll<br />将前面的;号去掉。<br />9.查找：<br />;extension=php_gd2.dll<br />将前面的;号去掉。<br />10.查找：<br />;extension=mysql.dll<br />将前面的;号去掉。<br />11.查找：<br />;date.timezone =<br />替换：<br />date.timezone = PRC<br />12.文件修改完毕，此时，双击右下角任务栏的Apache图标，弹出的窗口中，点Stop停止服务，等停止后再点Start启动服务，此时，可以看到其窗口的状态栏中会显示："Apache/2.2.4 (Win32) PHP/5.2.0"。配置全部完成。</p>
<p><strong>&equiv; phpMyAdmin 2.9.2 的安装 &equiv;</strong></p>
<p>1.到其官方站点下载 phpMyAdmin-2.9.2.zip 并解压，并更改目录名为phpmyadmin，然后移动到"D:\local\Apache2\htdocs"。<br />编辑：libraries下的config.default.php。<br />2.查找：<br />$cfg['Servers'][$i]['auth_type'] = 'config'; // Authentication method (config, http or cookie based)?<br />$cfg['Servers'][$i]['user'] = 'root'; // MySQL user<br />$cfg['Servers'][$i]['password'] = ''; // MySQL password (only needed<br />// with 'config' auth_type)<br />$cfg['Servers'][$i]['nopassword'] = FALSE; // Whether to try to connect without password<br />$cfg['Servers'][$i]['only_db'] = ''; // If set to a db-name, only<br />// this db is displayed in left frame<br />// It may also be an array of db-names, where sorting order is relevant.<br />这里由于是本地测试环境，所以所按默认值，不需要更改。<br />3.查找：<br />$cfg['DefaultLang'] = 'en-iso-8859-1';<br />4.替换：<br />$cfg['DefaultLang'] = 'gb2312';<br />5.查找：<br />$cfg['DefaultCharset'] = 'iso-8859-1';<br />替换：<br />$cfg['DefaultCharset'] = 'gb2312';<br />6.设置完成。现在打开IE，键入："http://localhost/phpmyadmin"，即可进行相关操作。</p>
<p><strong>&equiv; 其它说明 &equiv;</strong></p>
<p>MySQL的帐号为：root，密码无，即为空。数据库，可以自己随意创建。<br />网页存放目录：D:\local\Apache2\htdocs\<br />在网页下面创建一个index.php文件，内容如下<br />&lt;?php<br />$host = "localhost";<br />$user = "root";<br />$password = "";<br />$link=mysql_connect($host,$user,$password);&nbsp;&nbsp;<br />if(!$link) echo "&lt;h1&gt;失败!&lt;/h1&gt;";<br />else echo "&lt;h1&gt;成功!&lt;/h1&gt;";<br />mysql_close();<br />?&gt;<br />在浏览器打开 http://localhost/ 或者127.0.0.1<br />如果输出成功,则说明大功告成了.</p><img src ="http://www.cnblogs.com/huqingyu/aggbug/1486639.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47965/" target="_blank">Google App Engine宕机6小时——云的安全在哪里？</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>华美罗宾钢琴有限公司www.robinpiano.net 罗宾电子科技有限公司www.robinplay.com</title><link>http://www.cnblogs.com/huqingyu/archive/2009/05/17/1458844.html</link><dc:creator>龍龙</dc:creator><author>龍龙</author><pubDate>Sun, 17 May 2009 08:08:00 GMT</pubDate><guid>http://www.cnblogs.com/huqingyu/archive/2009/05/17/1458844.html</guid><wfw:comment>http://www.cnblogs.com/huqingyu/comments/1458844.html</wfw:comment><comments>http://www.cnblogs.com/huqingyu/archive/2009/05/17/1458844.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/huqingyu/comments/commentRss/1458844.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/huqingyu/services/trackbacks/1458844.html</trackback:ping><description><![CDATA[<p>华美罗宾钢琴有限公司 </p>
<p><a href="http://www.robinpiano.net/">http://www.robinpiano.net/</a></p>
<p>&nbsp;</p>
<p>罗宾电子科技有限公司</p>
<p><a href="http://www.robinplay.com">www.robinplay.com</a></p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 华美罗宾钢琴有限公司，筹创于1997年。是由美国公司投资，专业制造钢琴，自动演奏钢琴，及其他高科技乐器，工业自动控制系统的外商独资企业。公司位于中国新兴的高科技开发区，浙江省莫干山经济开发区的科技园内。是国内为数不多，经人民政府认定的中小型高科技钢琴制造企业。公司本部占地面积15亩，建筑面积4000平方米。综合生产能力达年产钢琴5000台。</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 公司具有雄厚的技术实力，拥有机械制造，工业自动化，计算机软件，现代音乐工程，工商管理等领域的高学历人才。华美罗宾钢琴有限公司是<a href="http://www.namm.com/"><span style="color: #0000ff;">美国乐器制造商协会</span></a>会员，在国际钢琴制造界，拥有广泛的联系和影响。公司全面引进美国，德国，日本先进的生产工艺和管理经验，结合浙江人吃苦耐劳，勤奋好学的优良品质，以市场和服务为核心的经营手法，使产品质量在国内同类产品中名列前茅，顺利通过中国国家乐器检测中心检测，受到专家和用户的一致好评。</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 公司目前有4个系列的产品，罗宾钢琴（Robin Piano），佳.克林斯汀钢琴（G.Crystal Piano），赛泰德钢琴，罗宾自动演奏钢琴（Robin Player Piano）。产品设计新颖，选料考究，关键零部件采用进口原装组件或材料（德国，英国，美国，详见产品说明书），使古老的钢琴与现代科学技术达成了完美的结合。罗宾系列钢琴，弦率科学，音色柔美，手感良好、工艺精美，造型典雅，赢得了众多钢琴制造专家和艺术家的好评。其极佳的性能价格比，受到高等音乐、艺术、师范院校及广大普通用户的青睐。</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 德清罗宾电子科技有限公司是一家由美国公司在华投资的独资企业。公司成立于2004年11月，位于浙江省莫干山经济开发区科技创业园内。公司目前有高级工程技术人员8人，其中3人拥有博士学位，1人拥有学士学位。他们均具有在美国一流公司工作的经历，曾主持或参与过大型工业项目的研究与开发工作。公司在工业自动化，计算机软件方面具有世界一流的研究开发能力。目前公司的主要产品为各种型号的&ldquo;钢琴自动演奏系统&rdquo;。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 德清罗宾电子科技有限公司的工程技术人员于2002年7月开始研究开发&ldquo;钢琴自动演奏系统&rdquo;，历时两年半，于2004年11月产品定型投产，取名为&ldquo;钢琴自动演奏系统&rdquo;。11月20日，邀请了钢琴工商业、学界的朋友，在上海对&ldquo;罗宾钢琴自动演奏系统&rdquo;的工业样机进行了初步的专业考评和商业评估，各项指标均得到好评。</p><img src ="http://www.cnblogs.com/huqingyu/aggbug/1458844.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47961/" target="_blank">微软新推社交网站Windows Live Planet</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>DateFormat.getDateInstance出现Unparseable date</title><link>http://www.cnblogs.com/huqingyu/archive/2009/04/30/1447188.html</link><dc:creator>龍龙</dc:creator><author>龍龙</author><pubDate>Thu, 30 Apr 2009 10:06:00 GMT</pubDate><guid>http://www.cnblogs.com/huqingyu/archive/2009/04/30/1447188.html</guid><wfw:comment>http://www.cnblogs.com/huqingyu/comments/1447188.html</wfw:comment><comments>http://www.cnblogs.com/huqingyu/archive/2009/04/30/1447188.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/huqingyu/comments/commentRss/1447188.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/huqingyu/services/trackbacks/1447188.html</trackback:ping><description><![CDATA[<div class="ashow01"><br /><br />我在Linux下调试这个程序Date.java：<br /><br />import java.text.*;<br /><br />public class Date {<br />public static void main(String[] args) <br />{<br />try {<br />DateFormat fm = DateFormat.getDateInstance();<br />System.out.println(fm.parse("1976-02-24"));<br />} catch (ParseException e) {<br />e.printStackTrace();<br />}<br />}<br />}<br /><br />结果出错：<br />java.text.ParseException: Unparseable date: "1976-02-24"<br />at java.text.DateFormat.parse(Unknown Source)<br />at Date.main(Date.java:8)<br /><br /><br />而同学在Windows下通过。。。<br /><span class="right">2009-4-14 23:10</span><b>hdc1112</b>明天看看。。<br /><span class="right">2009-4-15 00:04</span><b>^日出东方^</b></div>
<table cellpadding="5" cellspacing="1" style="width: 100%;">
<tbody>
<tr>
<td width="100%" style="background-color: #f6f6f6; border: #cccccc 1px solid;">原帖由 <i>zengmao</i> 于 2009-4-14 23:05 发表 <img border="0" src="http://www.cnblogs.com/FAQ/UploadPic/2009/4/16/20094161401770.gif" /><br />我在Linux下调试这个程序Date.java：<br /><br />import java.text.*;<br /><br />public class Date {<br />public static void main(String[] args) <br />{<br />try {<br />DateFormat fm = DateFormat.getDate ... [/quote]<br /><br />代码看起来没错jdk1.5?<br />你没有用linux下的eclipse ide吧貌似<span style="color: #ff0000;">System.out.println(fm.parse("1976-02-24"));</span> 少一个括号，或者字符集不对<br /><br /><br /><span class="right">2009-4-15 09:33</span><b>nathena</b> 
<table border="1" bgcolor="#f2f8ff" align="center" width="94%" cellpadding="0" cellspacing="0" bordercolor="#000000">
<tbody>
<tr>
<td>
<table border="0" width="100%" cellpadding="5" cellspacing="1">
<tbody>
<tr>
<td bgcolor="#f6f6f6">原帖由 <i>^日出东方^</i> 于 2009-4-15 00:04 发表 <img border="0" src="http://www.cnblogs.com/FAQ/UploadPic/2009/4/16/20094161401770.gif" /><br /><br /><br />代码看起来没错jdk1.5?<br />你没有用linux下的eclipse ide吧貌似System.out.println(fm.parse("1976-02-24")); 少一个括号，或者字符集不对 </td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<br /><br /><span style="font-size: small;"><br />靠乱回答！<br />因为采用了DateFormat.getDateInstance();，故使用系统默认构建时间方式。当linux使用LANG=EN是，所指定的格式化方式为西文，而程序在初始化DateFormat的时所使用的是中国本地格式所以异常。<br />回答个什么啊！<br /><span style="color: #ff0000;">你没有用linux下的eclipse ide吧！！！</span>，离开IDE什么也不行了！？<br /><span style="color: #ff0000;">或者字符集不对</span>，那只眼睛看到双字节了阿！！！</span><br /><br />import java.text.*;<br /><br />public class Test<br />{<br />public static void main(String[] args)<br />{<br />try <br />{<br />DateFormat fm = DateFormat.getDateInstance();<br />System.out.println(fm.parse("1976-02-24"));<br />}<br />catch (ParseException e) <br />{<br />e.printStackTrace();<br />}<br />}<br />}<br />windows/GBK<br />D:\&gt;javac Test.java<br /><br />D:\&gt;java Test<br />Tue Feb 24 00:00:00 CST 1976<br /><br />D:\&gt;<br /><br />linux<br />[root@localhost java]# LANG=CN<br />[root@localhost java]# /usr/java/ibm-java-i386-60/bin/javac Test.java <br />[root@localhost java]# /usr/java/ibm-java-i386-60/bin/java Test <br />Tue Feb 24 00:00:00 CST 1976<br />[root@localhost java]# LANG=EN<br />[root@localhost java]# /usr/java/ibm-java-i386-60/bin/java Test<br />java.text.ParseException: Unparseable date: "1976-02-24"<br />at java.text.DateFormat.parse(DateFormat.java:349)<br />at Test.main(Test.java:10)<br /><br /><br /><span class="right">2009-4-15 18:31</span><b>zengmao</b> 
<table cellpadding="5" cellspacing="1" style="width: 100%;">
<tbody>
<tr>
<td width="100%" style="background-color: #f6f6f6; border: #cccccc 1px solid;">[m@localhost src]$ ls<br />Date.java<br />[m@localhost src]$ echo $LANG<br />CN<br />[m@localhost src]$ javac Date.java<br />[m@localhost src]$ ls<br />Date.class Date.java<br />[m@localhost src]$ java Date.class<br />Exception in thread "main" java.lang.NoClassDefFoundError: Date/class<br />Caused by: java.lang.ClassNotFoundException: Date.class<br />at java.net.URLClassLoader$1.run(Unknown Source)<br />at java.security.AccessController.doPrivileged(Native Method)<br />at java.net.URLClassLoader.findClass(Unknown Source)<br />at java.lang.ClassLoader.loadClass(Unknown Source)<br />at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)<br />at java.lang.ClassLoader.loadClass(Unknown Source)<br />at java.lang.ClassLoader.loadClassInternal(Unknown Source)<br />Could not find the main class: Date.class. Program will exit.<br />[m@localhost src]$ java Date<br />java.text.ParseException: Unparseable date: "1976-02-24"<br />at java.text.DateFormat.parse(Unknown Source)<br />at Date.main(Date.java:8)<br />[m@localhost src]$ </td>
</tr>
</tbody>
</table>
<br /><br /><br />怎么还是不行？？？<br /><span class="right">2009-4-15 20:09</span><b>starxing</b>[quote]原帖由 <i>zengmao</i> 于 2009-4-15 18:31 发表 <img border="0" src="http://www.cnblogs.com/FAQ/UploadPic/2009/4/16/20094161401770.gif" /><br />[m@localhost src]$ ls<br />Date.java<br />[m@localhost src]$ echo $LANG<br />CN<br />[m@localhost src]$ javac Date.java<br />[m@localhost src]$ ls<br />Date.class Date.java<br />[m@localhost src]$ java Date.class<br />Exceptio ... </td>
</tr>
</tbody>
</table>
<p><br /><br />这个，java命令不用加.class的<br /><br /><br />直接<br /><br />java Date</p><img src ="http://www.cnblogs.com/huqingyu/aggbug/1447188.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47960/" target="_blank">火狐3.5版被指推出太匆忙：存在50多个漏洞</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>VMware上Clone Ubuntu虚拟机后找不到eth0 </title><link>http://www.cnblogs.com/huqingyu/archive/2009/04/26/1443906.html</link><dc:creator>龍龙</dc:creator><author>龍龙</author><pubDate>Sun, 26 Apr 2009 05:36:00 GMT</pubDate><guid>http://www.cnblogs.com/huqingyu/archive/2009/04/26/1443906.html</guid><wfw:comment>http://www.cnblogs.com/huqingyu/comments/1443906.html</wfw:comment><comments>http://www.cnblogs.com/huqingyu/archive/2009/04/26/1443906.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/huqingyu/comments/commentRss/1443906.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/huqingyu/services/trackbacks/1443906.html</trackback:ping><description><![CDATA[<div style="padding-right: 10px; padding-left: 10px; padding-bottom: 5px; padding-top: 5px; position: relative;" class="autoPadDiv"><span class="date"></span></div>
<p>VMware上安装了Ubuntu 8.04.1 Server，然后Clone了一个虚拟机。发现 eth0不见了，出现了一个eth1。</p>
<p>原因是 ubuntu会记录网卡的mac地址。原虚拟机的mac地址被记录成了eth0。Clone后，VMware会为虚拟机分配一个新的mac地址，以避免冲突。 这样在ubuntu中，会把新发现的地址设置为eth1。</p>
<p>在ubuntu 7.x版本中，对应的文件为 /etc/iftab文件。在Ubuntu 8.04.1中，对应的文件为：</p>
<p style="padding-left: 30px;"><strong>/etc/udev/rules.d/70-persistent-net.rules</strong></p>
<p>直接修改该文件，将eth0对应的那一行删除。然后把eth1对应的哪一行的"eth1"修改为"eth0"即可。</p>
<p>另外一种方法是：把里面的内容都删除，然后重新启动，系统也会重新发现网卡硬件，重新产生该文件。</p><img src ="http://www.cnblogs.com/huqingyu/aggbug/1443906.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47959/" target="_blank">Google对手机搜索进行优化升级</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>linux下杀死进程</title><link>http://www.cnblogs.com/huqingyu/archive/2009/04/16/1437096.html</link><dc:creator>龍龙</dc:creator><author>龍龙</author><pubDate>Thu, 16 Apr 2009 03:57:00 GMT</pubDate><guid>http://www.cnblogs.com/huqingyu/archive/2009/04/16/1437096.html</guid><wfw:comment>http://www.cnblogs.com/huqingyu/comments/1437096.html</wfw:comment><comments>http://www.cnblogs.com/huqingyu/archive/2009/04/16/1437096.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/huqingyu/comments/commentRss/1437096.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/huqingyu/services/trackbacks/1437096.html</trackback:ping><description><![CDATA[<p>1. kill</p>
<p>作用：根据进程号杀死进程</p>
<p>用法： kill ［信号代码］ 进程ID</p>
<p>举例：</p>
<p>[root@localhost ~]# ps auxf |grep httpd</p>
<p><br />注意：kill -9 来强制终止退出</p>
<p>举例 [root@localhost ~]# ps aux |grep gaim</p>
<p><br />或者 [root@localhost ~]# pgrep -l gaim 5031 gaim</p>
<p>5031 gaim</p>
<p>[root@localhost ~]# kill -9 5031</p>
<p>特殊用法：</p>
<p>kill -STOP [pid]</p>
<p>发送SIGSTOP (17,19,23)停止一个进程，而并不消灭这个进程。</p>
<p>kill -CONT [pid]</p>
<p>发送SIGCONT (19,18,25)重新开始一个停止的进程。</p>
<p>kill -KILL [pid]</p>
<p>发送SIGKILL (9)强迫进程立即停止，并且不实施清理操作。</p>
<p>kill -9 -1</p>
<p>终止你拥有的全部进程。</p>
<p>2. killall</p>
<p>作用：通过程序的名字，直接杀死所有进程</p>
<p>用法：killall 正在运行的程序名</p>
<p>举例：</p>
<p>[root@localhost beinan]# pgrep -l gaim 2979 gaim</p>
<p>[root@localhost beinan]# killall gaim</p>
<p><br />注意：该命令可以使用 -9 参数来强制杀死进程</p>
<p>3. pkill</p>
<p>作用：通过程序的名字，直接杀死所有进程 </p>
<p>用法：#pkill 正在运行的程序名</p>
<p>举例：</p>
<p>[root@localhost beinan]# pgrep -l gaim 2979 gaim</p>
<p>[root@localhost beinan]# pkill gaim</p>
<p><br />4. xkill</p>
<p>作用：杀死桌面图形界面的程序。</p>
<p>应用情形实例：firefox出现崩溃不能退出时，点鼠标就能杀死firefox 。</p>
<p>当xkill运行时出来和个人脑骨的图标，哪个图形程序崩溃一点就OK了。</p>
<p>如果您想终止xkill ，就按右键取消；</p>
<p>调用方法：</p>
<p>[root@localhost ~]# xkill</p>
<p>◆编者注：</p>
<p>KILLALL(Section: User (1)/Updated: 1999年9月7日)</p>
<p>-----------------------------------------------</p>
<p>NAME (名称)</p>
<p>killall - 以名字方式来杀死进程&nbsp;&nbsp;</p>
<p>SYNOPSIS (总览)</p>
<p>killall [-egiqvw] [-signal] name ...</p>
<p>killall -l</p>
<p>killall -V&nbsp;&nbsp;</p>
<p>DESCRIPTION (描述)</p>
<p>killall 发送一条信号给所有运行任意指定命令的进程. 如果没有指定信号名, 则发送SIGTERM.。</p>
<p>信号可以以名字 (如 -HUP ) 或者数字 (如 -1 ) 的方式指定. 信号 0 (检查进程是否存在)只能以数字方式指定。</p>
<p>如果命令名包括斜杠 (/), 那么执行该特定文件的进程将被杀掉, 这与进程名无关。</p>
<p>如果对于所列命令无进程可杀, 那么 killall 会返回非零值. 如果对于每条命令至少杀死了一个进程, killall 返回 0。Killall 进程决不会杀死自己 (但是可以杀死其它 killall 进程)。 </p>
<p>OPTIONS (选项)</p>
<p>-e</p>
<p>对于很长的名字, 要求准确匹配. 如果一个命令名长于 15 个字符, 则可能不能用整个名字 (溢出了). 在这种情况下, killall 会杀死所有匹配名字前 15 个字符的所有进程. 有了 -e 选项,这样的记录将忽略. 如果同时指定了 -v 选项, killall 会针对每个忽略的记录打印一条消息。</p>
<p>-g</p>
<p>杀死属于该进程组的进程. kill 信号给每个组只发送一次, 即使同一进程组中包含多个进程。</p>
<p>-i</p>
<p>交互方式，在杀死进程之前征求确认信息。</p>
<p>-l</p>
<p>列出所有已知的信号名。</p>
<p>-q</p>
<p>如果没有进程杀死, 不会提出抱怨。</p>
<p>-v</p>
<p>报告信号是否成功发送。</p>
<p>-V</p>
<p>显示版本信息。</p>
<p>-w</p>
<p>等待所有杀的进程死去. killall 会每秒检查一次是否任何被杀的进程仍然存在, 仅当都死光后才返回. 注意: 如果信号被忽略或没有起作用, 或者进程停留在僵尸状态, killall 可能会永久等待。</p>
<p>FILES(相关文件)</p>
<p>/proc proc文件系统的存在位置。</p>
<p>KNOWN bugS (已知 BUGS)</p>
<p>以文件方式杀死只对那些在执行时一直打开的可执行文件起作用, 也即, 混杂的可执行文件不能够通过这种方式杀死。</p>
<p>要警告的是输入 killall name 可能不会在非 Linux 系统上产生预期的效果, 特别是特权用户执行时要小心。</p>
<p>在两次扫描的间隙, 如果进程消失了而被代之以一个有同样 PID 的新进程, killall -w 侦测不到。</p><img src ="http://www.cnblogs.com/huqingyu/aggbug/1437096.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47958/" target="_blank">风声又起 Windows 7 RTM版7月13日完成</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>如何在Linux中使用cron命令 </title><link>http://www.cnblogs.com/huqingyu/archive/2009/04/15/1436664.html</link><dc:creator>龍龙</dc:creator><author>龍龙</author><pubDate>Wed, 15 Apr 2009 10:55:00 GMT</pubDate><guid>http://www.cnblogs.com/huqingyu/archive/2009/04/15/1436664.html</guid><wfw:comment>http://www.cnblogs.com/huqingyu/comments/1436664.html</wfw:comment><comments>http://www.cnblogs.com/huqingyu/archive/2009/04/15/1436664.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/huqingyu/comments/commentRss/1436664.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/huqingyu/services/trackbacks/1436664.html</trackback:ping><description><![CDATA[<p><span style="font-size: medium;"></span></p>
<p style="text-indent: 2em;"><span style="font-size: small;"></span>&nbsp;</p>
<p style="text-indent: 2em;"><span style="font-size: small;">下文内容大部分是根据</span> <a href="http://www.linuxhelp.net/guides/cron/"><span style="font-size: small; color: #4d3002;">《Cron Help Guide》</span> </a><span style="font-size: small;">翻译而来，有些部分是自己加上的。</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">全文如下：</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">cron来源于希腊单词chronos（意为&ldquo;时间&rdquo;），是linux系统下一个自动执行指定任务的程序。例如，你想在每晚睡觉期间创建某些文件或文件夹的备份，就可以用cron来自动执行。</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">服务的启动和停止</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">cron服务是linux的内置服务，但它不会开机自动启动。可<strong>以用以下命令启动和停止服务：</strong></span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;"><strong>/sbin/service crond start</strong> </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;"><strong>/sbin/service crond stop</strong> </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;"><strong>/sbin/service crond restart</strong> </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;"><strong>/sbin/service crond reload</strong> </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">以上1-4行分别为启动、停止、重启服务和重新加载配置。</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">要把cron设为在开机的时候自动启动，在 /etc/rc.d/rc.local 脚本中加入 /sbin/service crond start 即可。</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">查看、编辑和删除</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">cron把命令行保存在crontab（cron table）文件里，这个文件通常在 /etc 目录下。每个系统用户都可以有自己的crontab（在 /var/spool/cron/ 下）。要查看当前用户的crontab，输入 crontab -l；要编辑crontab，输入 crontab -e；要删除crontab，输入 crontab -r。如当前是root身份，要查看/编辑/删除/某用户的crontab，只需在相应的命令后加上 -u USERNAME（如 crontab -e -u USERNAME）即可。crontab文件的默认编辑器是vi，可以输入 export VISUAL=&rsquo;editor&rsquo; 更改默认编辑器。</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">cron服务每分钟不仅要读一次 /var/spool/cron 目录内的所有文件，还需要读一次 /etc/crontab 文件。配置这个文件也能让cron执行任务。使用crontab命令是对用户级任务的配置，而编辑 /etc/crontab 文件是对系统级任务的配置。</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">语法说明</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">以下是两个cron语句的例子（在 /etc/crontab 文件里）。前者用来晚间备份 /etc 目录，后者运行Analog程序处理服务器的统计信息。</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">12 3 * * * root tar czf /usr/local/backups/daily/etc.tar.gz /etc &gt;&gt; /dev/null 2&gt;&amp;1</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">52 5 * * * root /usr/local/src/analog-5.32-lh/analog &gt;&gt; /dev/null 2&gt;&amp;1</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">以下是cron语句中的字段与字段说明：</span> </p>
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>
<p>&nbsp;</p>
<p style="text-indent: 2em;">字段</p>
</td>
<td>
<p>&nbsp;</p>
<p style="text-indent: 2em;">说明</p>
</td>
</tr>
<tr>
<td>
<p>&nbsp;</p>
<p style="text-indent: 2em;">1</p>
</td>
<td>
<p>&nbsp;</p>
<p style="text-indent: 2em;">分钟（0-59）</p>
</td>
</tr>
<tr>
<td>
<p>&nbsp;</p>
<p style="text-indent: 2em;">2</p>
</td>
<td>
<p>&nbsp;</p>
<p style="text-indent: 2em;">小时（2-24）</p>
</td>
</tr>
<tr>
<td>
<p>&nbsp;</p>
<p style="text-indent: 2em;">3</p>
</td>
<td>
<p>&nbsp;</p>
<p style="text-indent: 2em;">日期（1-31）</p>
</td>
</tr>
<tr>
<td>
<p>&nbsp;</p>
<p style="text-indent: 2em;">4</p>
</td>
<td>
<p>&nbsp;</p>
<p style="text-indent: 2em;">月份（1-12；或英文缩写Jan、Feb等）</p>
</td>
</tr>
<tr>
<td>
<p>&nbsp;</p>
<p style="text-indent: 2em;">5</p>
</td>
<td>
<p>&nbsp;</p>
<p style="text-indent: 2em;">周几（0-6，0为周日；或单词缩写Sun、Mon等）</p>
</td>
</tr>
<tr>
<td>
<p>&nbsp;</p>
<p style="text-indent: 2em;">6</p>
</td>
<td>
<p>&nbsp;</p>
<p style="text-indent: 2em;">用户名（执行命令时以此用户的身份）</p>
</td>
</tr>
<tr>
<td>
<p>&nbsp;</p>
<p style="text-indent: 2em;">7</p>
</td>
<td>
<p>&nbsp;</p>
<p style="text-indent: 2em;">要执行的命令（路径）</p>
</td>
</tr>
<tr>
<td>
<p>&nbsp;</p>
<p style="text-indent: 2em;">&nbsp;</p>
</td>
<td>
<p>&nbsp;</p>
<p style="text-indent: 2em;">&nbsp;</p>
</td>
</tr>
</tbody>
</table>
<p style="text-indent: 2em;"><span style="font-size: small;">现在来看第一行：</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">12 3 * * * root tar czf /usr/local/backups/daily/etc.tar.gz /etc &gt;&gt; /dev/null 2&gt;&amp;1</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">这条语句将在<i>每天的凌晨3点12分</i>（03:12）运行 tar czf /usr/local/backups/daily/etc.tar.gz /etc 命令。&gt;&gt; /dev/null 2&gt;&amp;1 表示把所有标准输出发送到 /dev/null（linux的回收站），把标准错误输出（2）发送到和标准输出（1）同样的地方（即 /dev/null）。运行这行命令将不会产生任何输出。</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">这条语句可以变得稍微复杂一点：</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">30 15 13 6 1 * root tar czf /usr/local/backups/daily/etc.tar.gz /etc &gt;&gt; /dev/null 2&gt;&amp;1</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">它将在<i>6月13日周一的15:30</i>运行 tar czf /usr/local/backups/daily/etc.tar.gz /etc 命令。</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">以下语句可以达到同样的效果：</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">30 15 13 Jun Mon * root tar czf /usr/local/backups/daily/etc.tar.gz /etc &gt;&gt; /dev/null 2&gt;&amp;1</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">如果你想以用户joey的身份<i>每小时的第15分钟</i>运行某个程序，可以使用：</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">15 * * * * joey /usr/bin/somecommand &gt;&gt; /dev/null 2&gt;&amp;1</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">其中的星号（*）是通配符，表示cron将忽略这个字段。</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">如果你想<i>每两小时</i>就运行某个程序，可以在小时字段里使用 */2。它将会在2点，4点，6点&hellip;&hellip;22点，24点运行。具体语句如下：</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">0 */2 * * * joey /usr/bin/somecommand &gt;&gt; /dev/null 2&gt;&amp;1</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">cron语句中还可以使用逗号（,）来指定多个时间。例如你想在<i>每小时的15分和30分</i>运行某个程序，可以在分钟字段使用 15,30：</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">15,30 * * * * joey /usr/bin/somecommand &gt;&gt; /dev/null 2&gt;&amp;1</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">如果你想在<i>每月的第一周（即1号到7号）每天的指定时间</i>运行某个程序，可以在日期字段使用 1-7：</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">15,30 */2 1-7 * * joey /usr/bin/somecommand &gt;&gt; /dev/null 2&gt;&amp;1</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">这条语句将在<i>每月的第1-7日每两小时的15分和30分</i>（02:15，02:30&hellip;&hellip;22: 15，22:30等）运行 /usr/bin/somecommand 命令。</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">如果你想在<i>每天的16:18</i>执行一个脚本集合，可以把所有要执行的脚本放到一个目录中（如 /home/username/cron），可以使用：</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">18 16 * * * root run-parts /home/username/cron &gt;&gt; /dev/null 2&gt;&amp;1</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">如果你想保存某个程序的输出结果， 可以把 &gt;&gt; /dev/null 2&gt;&amp;1 替换为 &gt;&gt; /home/user/somecommand.log 2&gt;&amp;1 。</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">以下举几个例子说明问题： </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">每天早上6点 </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">0 6 * * * echo "Good morning." &gt;&gt; /tmp/test.txt //注意单纯echo，从屏幕上看不到任何输出，因为cron把任何输出都email到root的信箱了。 </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">每两个小时 </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">0 */2 * * * echo "Have a break now." &gt;&gt; /tmp/test.txt </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">晚上11点到早上8点之间每两个小时，早上八点 </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">0 23-7/2，8 * * * echo "Have a good dream：）" &gt;&gt; /tmp/test.txt </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点 </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">0 11 4 * 1-3 command line </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">1月1日早上4点 </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">0 4 1 1 * command line</span> </p>
<p style="text-indent: 2em;"><strong><span style="font-size: small;">总结</span> </strong></p>
<ul type="disc">
<li><span style="font-size: small;"><strong>查看当前用户的cron配置，使用 crontab -l </strong></span></li>
<li><span style="font-size: small;"><strong>编辑当前用户的cron配置，使用 crontab -e </strong></span></li>
<li><span style="font-size: small;"><strong>删除当前用户的cron配置，使用 crontab -r </strong></span></li>
<li><span style="font-size: small;"><strong>以root身份查看/编辑/删除某用户的cron配置，在命令后加上 -u USERNAME </strong></span></li>
<li><span style="font-size: small;"><strong>配置系统级的任务，编辑 /etc/crontab 文件 </strong></span></li>
</ul>
<p><span style="font-size: small;"></span></p>
<p style="text-indent: 2em;"><span style="font-size: small;"></span>&nbsp;</p>
<p style="text-indent: 2em;"><span style="font-size: small;"></span>&nbsp;</p>
<p style="text-indent: 2em;"><span style="font-size: small;"></span>&nbsp;</p>
<p style="text-indent: 2em;"><span style="font-size: small;">cron 是一个可以用来根据时间、日期、月份、星期的组合来调度对重复任务的执行的守护进程。 </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">cron 假定系统持续运行。如果当某任务被调度时系统不在运行，该任务就不会被执行。 </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">要使用 cron 服务，你必须安装了 vixie-cron RPM 软件包，而且必须在运行 crond 服务。要判定该软件包是否已安装，使用 rpm -q vixie-cron 命令。要判定该服务是否在运行，使用 /sbin/service crond status 命令。 </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;"><strong>cron 的主配置文件是 /etc/crontab，它包括下面几行：</strong> </span></p>
<p style="text-indent: 2em;">&nbsp;</p>
<table border="0" width="92%" cellpadding="0" cellspacing="1">
<tbody>
<tr>
<td width="99%">
<p>&nbsp;</p>
<p style="text-indent: 2em;"><strong>SHELL=/bin/bash </strong></p>
<p style="text-indent: 2em;"><strong>PATH=/sbin:/bin:/usr/sbin:/usr/bin </strong></p>
<p style="text-indent: 2em;"><strong>MAILTO=root</strong>&nbsp;&nbsp;&nbsp; #如果出现错误，或者有数据输出，数据作为邮件发给这个帐号</p>
<p style="text-indent: 2em;"><strong>HOME=/</strong>&nbsp;&nbsp;&nbsp; #使用者运行的路径,这里是根目录</p>
<p style="text-indent: 2em;"><strong># run-parts </strong></p>
<p style="text-indent: 2em;"><strong>01 * * * * root run-parts /etc/cron.hourly </strong></p>
<p style="text-indent: 2em;"><strong>02 4 * * * root run-parts /etc/cron.daily </strong></p>
<p style="text-indent: 2em;"><strong>22 4 * * 0 root run-parts /etc/cron.weekly </strong></p>
<p style="text-indent: 2em;"><strong>42 4 1 * * root run-parts /etc/cron.monthly</strong> </p>
</td>
</tr>
</tbody>
</table>
<p style="text-indent: 2em;"><span style="font-size: small;"></span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">前四行是用来配置 cron 任务运行环境的变量。 SHELL 变量的值告诉系统要使用哪个 shell 环境（在这个例子里是 bash shell）；PATH 变量定义用来执行命令的路径。cron 任务的输出被邮寄给 MAILTO 变量定义的用户名。如果 MAILTO 变量被定义为空白字符串（MAILTO=""），电子邮件就不会被寄出。HOME 变量可以用来设置在执行命令或脚本时使用的主目录。 </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;"><strong>/etc/crontab 文件中的每一行都代表一项任务，它的格式是</strong>：</span> </p>
<p style="text-indent: 2em;">&nbsp;</p>
<table border="0" width="90%" cellpadding="0" cellspacing="1">
<tbody>
<tr>
<td width="100%">
<p style="text-indent: 2em;"><strong>minute&nbsp; &nbsp;hour&nbsp;&nbsp; day&nbsp;&nbsp;&nbsp; month&nbsp;&nbsp;&nbsp; dayofweek&nbsp;&nbsp;&nbsp; command</strong> </p>
</td>
</tr>
</tbody>
</table>
<p><span style="font-size: small;"></span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">minute &mdash; 分钟，从 0 到 59 之间的任何整数 &nbsp;</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">hour &mdash; 小时，从 0 到 23 之间的任何整数 &nbsp;</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">day &mdash; 日期，从 1 到 31 之间的任何整数（如果指定了月份，必须是该月份的有效日期） &nbsp;</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">month &mdash; 月份，从 1 到 12 之间的任何整数（或使用月份的英文简写如 jan、feb 等等） </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">dayofweek &mdash; 星期，从 0 到 7 之间的任何整数，这里的 0 或 7 代表星期日（或使用星期的英文简写如 sun、mon 等等） </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">command &mdash; 要执行的命令（命令可以是 ls /proc &gt;&gt; /tmp/proc 之类的命令，也可以是执行你自行编写的脚本的命令。） </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">在以上任何值中，星号（*）可以用来代表所有有效的值。譬如，月份值中的星号意味着在满足其它制约条件后每月都执行该命令。 </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">整数间的短线（-）指定一个整数范围。譬如，1-4 意味着整数 1、2、3、4。 </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">用逗号（,）隔开的一系列值指定一个列表。譬如，3, 4, 6, 8 标明这四个指定的整数。 </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">正斜线（/）可以用来指定间隔频率。在范围后加上 / 意味着在范围内可以跳过 integer。譬如，0-59/2 可以用来在分钟字段定义每两分钟。间隔频率值还可以和星号一起使用。例如，*/3 的值可以用在月份字段中表示每三个月运行一次任务。 </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">开头为井号（#）的行是注释，不会被处理。 </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">如你在 /etc/crontab 文件中所见，它使用 run-parts 脚本来执行 /etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly 和 /etc/cron.monthly 目录中的脚本，这些脚本被相应地每小时、每日、每周、或每月执行。这些目录中的文件应该是 shell 脚本。如果你想要增加一个任务到cron里，把运行任务的脚本（或者脚本的连接）放在对应的目录里;如果去掉run-parts这个参数的话，后面就可以写要运行的某个脚本的完整路径名，而不是文件夹名了</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">以下是/etc/crontab的一个例子，该任务每周运行三次(星期一，星期三，星期五)： </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">　　02 4 * * 1,3,5 root run-parts&nbsp; /etc/cron.weekly </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;"></span>&nbsp;</p>
<p style="text-indent: 2em;"><span style="font-size: small;">　　以下是一个新闻组上的例子，显示如何自动用电子邮件发送一个日记文件 </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">　　回复：help in crontab </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">　　发信：Dean Thompson &lt;Dean.Thompson@csse.monash.edu.au&gt; 日期： 2001-03-03 16:35 </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">　　Newsgroups: comp.os.linux.admin,comp.os.linux.networking,comp.os.linux.security </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">　　&gt; 我该如何在/etc/crontab文件里设置，让每天的工作记录文件自动发送到信箱abc@abc.com &lt; /var/log？ </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">你可以试试看以下的例子&nbsp;</span> <span style="font-size: small;">&nbsp;</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;">0 0 * * * (/bin/mail abc@abc.com &lt; /var/log/messages) &gt; /dev/null 2&gt;&amp;1</span> </p>
<p style="text-indent: 2em;">&nbsp;</p>
<p style="text-indent: 2em;"><span style="font-size: small;">如果某 cron 任务需要根据调度来执行，而不是每小时、每日、每周、或每月地执行，它可以被添加到 /etc/cron.d 目录中。该目录中的所有文件使用和 /etc/crontab 中一样的语法。如下：</span> </p>
<p style="text-indent: 2em;">&nbsp;</p>
<table border="0" width="90%" cellpadding="0" cellspacing="1">
<tbody>
<tr>
<td width="100%">
<p style="text-indent: 2em;"><strong># record the memory usage of the system every monday </strong></p>
<p style="text-indent: 2em;"><strong># at 3:30AM in the file /tmp/meminfo </strong></p>
<p style="text-indent: 2em;"><strong>30 3 * * mon cat /proc/meminfo &gt;&gt; /tmp/meminfo </strong></p>
<p style="text-indent: 2em;"><strong># run custom script the first day of every month at 4:10AM </strong></p>
<p style="text-indent: 2em;"><strong>10 4 1 * * /root/scripts/backup.sh</strong> </p>
</td>
</tr>
</tbody>
</table>
<p style="text-indent: 2em;"><span style="font-size: small;">根用户以外的用户可以使用 crontab 工具来配置 cron 任务。所有用户定义的 crontab 都被保存在 /var/spool/cron 目录中，并使用创建它们的用户身份来执行。要以某用户身份创建一个 crontab 项目，登录为该用户，然后键入 crontab -e 命令，使用由 VISUAL 或 EDITOR 环境变量指定的编辑器来编辑该用户的 crontab。该文件使用的格式和 /etc/crontab 相同。当对 crontab 所做的改变被保存后，该 crontab 文件就会根据该用户名被保存，并写入文件 /var/spool/cron/username 中。 </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">cron 守护进程每分钟都检查 /etc/crontab 文件、etc/cron.d/ 目录、以及 /var/spool/cron 目录中的改变。如果发现了改变，它们就会被载入内存。这样，当某个 crontab 文件改变后就不必重新启动守护进程了。 </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">/etc/cron.allow 和 /etc/cron.deny 文件被用来限制对 cron 的使用。这两个使用控制文件的格式都是每行一个用户。两个文件都不允许空格。如果使用控制文件被修改了，cron 守护进程（crond）不必被重启。使用控制文件在每次用户添加或删除一项 cron 任务时都会被读取。 </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">无论使用控制文件中的规定如何，根用户都总是可以使用 cron。 </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">如果 cron.allow 文件存在，只有其中列出的用户才被允许使用 cron，并且 cron.deny 文件会被忽略。 </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">如果 cron.allow 文件不存在，所有在 cron.deny 中列出的用户都被禁止使用 cron。 </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">要启动 cron 服务，使用 /sbin/service crond start 命令。要停止该服务，使用 /sbin/service crond stop 命令。推荐你在引导时启动该服务。 </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">增加cron的工作 </span></p>
<p style="text-indent: 2em;"><span style="font-size: small;">当我们决定要在系统上定期执行某个命令，我们必须将这个要执行的命令定义成一个cron工作，可以直接将要建立的cron工作定义在crontab设置文件中，设置该命令执行的时机；或者也可以利用cron会定时执行/etc/cron.*目录SCRIPT的特性，将要执行的命令建立成为一个脚本文档，放置在该目录下，并且注意它的权限--必须可以执行！</span> </p>
<p style="text-indent: 2em;"><span style="font-size: small;"></span>&nbsp;</p>
<p style="text-indent: 2em;"><span style="font-size: small;">参考资料：<a href="http://www.cnblogs.com/youyou/archive/2007/01/20/625365.aspx"><span style="color: #4d3002;">http://www.cnblogs.com/youyou/archive/2007/01/20/625365.aspx</span></a></span> </p><img src ="http://www.cnblogs.com/huqingyu/aggbug/1436664.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47957/" target="_blank">乔布斯和埃利森</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>linux as4u2 下安装openssh</title><link>http://www.cnblogs.com/huqingyu/archive/2009/03/30/1424885.html</link><dc:creator>龍龙</dc:creator><author>龍龙</author><pubDate>Mon, 30 Mar 2009 02:57:00 GMT</pubDate><guid>http://www.cnblogs.com/huqingyu/archive/2009/03/30/1424885.html</guid><wfw:comment>http://www.cnblogs.com/huqingyu/comments/1424885.html</wfw:comment><comments>http://www.cnblogs.com/huqingyu/archive/2009/03/30/1424885.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/huqingyu/comments/commentRss/1424885.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/huqingyu/services/trackbacks/1424885.html</trackback:ping><description><![CDATA[<h2 minmax_bound="true" class="title client_type_1"></h2>
<div minmax_bound="true" class="baseinfo">2006年11月24日(星期五) 10点43分 作者: 天天小白 天气: <img minmax_bound="true" align="absMiddle" src="http://static.dlog.cn/images/weather/sunny.gif" /> 心情: 一般 </div>
<div minmax_bound="true" style="overflow: auto;" class="content">
<p minmax_bound="true">一、准备工作</p>
<p minmax_bound="true">1、安装包(最好都有)<br minmax_bound="true" />glibc-kernheaders-2.4-9.1.87.i386.rpm<br minmax_bound="true" />glibc-headers-2.3.4-2.i386.rpm<br minmax_bound="true" />glibc-devel-2.3.4-2.i386.rpm<br minmax_bound="true" />gcc-3.4.3-9.EL4<br minmax_bound="true" />gd-2.0.28-4.i386.rpm<br minmax_bound="true" />gd-devel-2.0.28-4.i386.rpm<br minmax_bound="true" />pam-devel-0.77-65.1<br minmax_bound="true" />pam-0.77-65.1<br minmax_bound="true" />e2fsprogs-devel-1.35-11.6.EL4.i386.rpm<br minmax_bound="true" />krbafs-devel-1.2.2-6.i386.rpm<br minmax_bound="true" />openssl-devel-0.9.7a-43.1.i386.rpm<br minmax_bound="true" />zlib-1.2.1.2-1<br minmax_bound="true" />zlib-devel-1.2.1.2-1<br minmax_bound="true" />openssl-0.9.8d.tar.gz<br minmax_bound="true" />openssh-4.5p1.tar.gz</p>
<p minmax_bound="true">2、查看openssh版本<br minmax_bound="true" />因为as4u2默认安装了openssl、openssh<br minmax_bound="true" /><br minmax_bound="true" />检查openssl版本<br minmax_bound="true" />#openssl version<br minmax_bound="true" />OpenSSL 0.9.7a Feb 19 2003</p>
<p minmax_bound="true">检查ssh版本<br minmax_bound="true" />#ssh -V<br minmax_bound="true" />OpenSSH_3.9p1, OpenSSL 0.9.7a Feb 19 2003</p>
<p minmax_bound="true">二、安装openssl</p>
<p minmax_bound="true">卸载掉老的opensll库<br minmax_bound="true" />#rpm -e --nodeps openssl </p>
<p minmax_bound="true">解包<br minmax_bound="true" />#tar xzvf openssl-0.9.8d.tar.gz</p>
<p minmax_bound="true">进入openssl目录安装openssl，用--prefix指定openssl安装目录<br minmax_bound="true" />#cd openssl-0.9.8d<br minmax_bound="true" />#./config --prefix=/usr/local/openssl-0.9.8</p>
<p minmax_bound="true">修改mandir的内容<br minmax_bound="true" />#vi Makefile<br minmax_bound="true" />Makefile=/usr/share/man</p>
<p minmax_bound="true">编译<br minmax_bound="true" />#make<br minmax_bound="true" />#make test<br minmax_bound="true" />#make install</p>
<p minmax_bound="true">测试<br minmax_bound="true" />#/usr/local/openssl-0.9.8/bin/openssl version<br minmax_bound="true" />OpenSSL 0.9.8d 28 Sep 2006</p>
<p minmax_bound="true">三、安装OpenSSH</p>
<p minmax_bound="true">#tar xzvf openssh-4.5p1.tar.gz</p>
<p minmax_bound="true">#cd openssh-4.5p1</p>
<p minmax_bound="true">#./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-ssl-dir=/usr/local/openssl-0.9.8 --with-md5-passwords --mandir=/usr/share/man --without-zlib-version-check</p>
<p minmax_bound="true">--prefix=/usr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //指定安装目录<br minmax_bound="true" />--sysconfdir=/etc/ssh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //系统配置目录<br minmax_bound="true" />--with-pam<br minmax_bound="true" />--with-zlib&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //如果自己编译安装了zlib，就加--with-zlib=DIR这个参数，如果默认安装，就换成--with-zlib,其他参数同理<br minmax_bound="true" />--without-zlib-version-check&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //使用低版本的zlib，不检查zlib版本(推荐使用zlib 1.2.3)<br minmax_bound="true" />--with-ssl-dir=/usr/include/openssl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //ssl目录<br minmax_bound="true" />--with-md5-passwords<br minmax_bound="true" />--mandir=/usr/share/man</p>
<p minmax_bound="true">编译<br minmax_bound="true" />#make<br minmax_bound="true" />#make install</p>
<p minmax_bound="true">测试<br minmax_bound="true" />#su -<br minmax_bound="true" />#ssh -V<br minmax_bound="true" />OpenSSH_4.5p1, OpenSSL 0.9.8d 28 Sep 2006</p>
<p minmax_bound="true">已经更新成功,重起一下服务<br minmax_bound="true" />#service sshd restart</p>
<p minmax_bound="true">现在在用SSH客户端连接一下主机，就应该可以登录了。</p>
<p minmax_bound="true">注意：sftp-server默认是在 /usr/libexec/openssh/sftp-server,在更新后需要在/etc/ssh/sshd_config里面修改<br minmax_bound="true" />#Subsystem&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sftp&nbsp;&nbsp;&nbsp; /usr/libexec/sftp-server<br minmax_bound="true" />否则无法启动sftp</p>
</div><img src ="http://www.cnblogs.com/huqingyu/aggbug/1424885.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47956/" target="_blank">Xbox Live将投放Silverlight广告</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>tomcat的上传限制</title><link>http://www.cnblogs.com/huqingyu/archive/2009/03/27/1423224.html</link><dc:creator>龍龙</dc:creator><author>龍龙</author><pubDate>Fri, 27 Mar 2009 07:06:00 GMT</pubDate><guid>http://www.cnblogs.com/huqingyu/archive/2009/03/27/1423224.html</guid><wfw:comment>http://www.cnblogs.com/huqingyu/comments/1423224.html</wfw:comment><comments>http://www.cnblogs.com/huqingyu/archive/2009/03/27/1423224.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/huqingyu/comments/commentRss/1423224.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/huqingyu/services/trackbacks/1423224.html</trackback:ping><description><![CDATA[<p><a href="http://tomcat.apache.org/tomcat-5.5-doc/config/http.html">http://tomcat.apache.org/tomcat-5.5-doc/config/http.html</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>
<table border="1" cellpadding="5">
<tbody>
<tr>
<td align="left" valign="middle"><code>maxPostSize</code></td>
<td align="left" valign="middle">
<p>The maximum size in bytes of the POST which will be handled by the container FORM URL parameter parsing. The limit can be disabled by setting this attribute to a value less than or equal to 0. If not specified, this attribute is set to 2097152 (2 megabytes).</p>
</td>
</tr>
</tbody>
</table>
</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>在Server.xml中的Connector节中加入maxPostSize="0"</p><img src ="http://www.cnblogs.com/huqingyu/aggbug/1423224.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47951/" target="_blank">Debian无视GNU创始人警告 接受Mono</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>Server.CreateObject("ADODB.Stream")小红伞报警的解决方案</title><link>http://www.cnblogs.com/huqingyu/archive/2009/03/27/1423103.html</link><dc:creator>龍龙</dc:creator><author>龍龙</author><pubDate>Fri, 27 Mar 2009 05:00:00 GMT</pubDate><guid>http://www.cnblogs.com/huqingyu/archive/2009/03/27/1423103.html</guid><wfw:comment>http://www.cnblogs.com/huqingyu/comments/1423103.html</wfw:comment><comments>http://www.cnblogs.com/huqingyu/archive/2009/03/27/1423103.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/huqingyu/comments/commentRss/1423103.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/huqingyu/services/trackbacks/1423103.html</trackback:ping><description><![CDATA[<p>Server.CreateObject(Chr(65)&amp;Chr(68)&amp;Chr(79)&amp;Chr(68)&amp;Chr(66)&amp;chr(46)&amp;Chr(83)&amp;Chr(116)&amp;Chr(114)&amp;Chr(101)&amp;Chr(97)&amp;Chr(109))</p><img src ="http://www.cnblogs.com/huqingyu/aggbug/1423103.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47951/" target="_blank">Debian无视GNU创始人警告 接受Mono</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>Mysql SSL 配置</title><link>http://www.cnblogs.com/huqingyu/archive/2009/03/22/1418936.html</link><dc:creator>龍龙</dc:creator><author>龍龙</author><pubDate>Sun, 22 Mar 2009 05:51:00 GMT</pubDate><guid>http://www.cnblogs.com/huqingyu/archive/2009/03/22/1418936.html</guid><wfw:comment>http://www.cnblogs.com/huqingyu/comments/1418936.html</wfw:comment><comments>http://www.cnblogs.com/huqingyu/archive/2009/03/22/1418936.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/huqingyu/comments/commentRss/1418936.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/huqingyu/services/trackbacks/1418936.html</trackback:ping><description><![CDATA[<p>建立 CA 憑證：<br />openssl genrsa 2048 &gt; ca-key.pem<br />openssl req -new -x509 -nodes -days 1000 -key ca-key.pem -passin pass:123456 -passout pass:123456 -subj /C=CN/O=INFOSEC/CN=nicky &gt; ca-cert.pem</p>
<p>建立 MySQL Server 憑證<br />openssl req -newkey rsa:2048 -days 1000 -nodes -keyout server-key.pem -passin pass:123456 -passout pass:123456 -subj /C=CN/O=INFOSEC/CN=nicky &gt; server-req.pem<br />openssl x509 -req -in server-req.pem -days 1000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 &gt; server-cert.pem</p>
<p>建立 MySQL Client 憑證<br />openssl req -newkey rsa:2048 -days 1000 -nodes -keyout client-key.pem -passin pass:123456 -passout pass:123456 -subj /C=CN/O=INFOSEC/CN=nicky &gt; client-req.pem<br />openssl x509 -req -in client-req.pem -days 1000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 &gt; client-cert.pem</p>
<p>修改 MySQL 設定檔 my.cnf，加上：<br /><br />ssl-ca=/etc/mysql/ca-cert.pem<br />ssl-cert=/etc/mysql/server-cert.pem<br />ssl-key=/etc/mysql/server-key.pem <br />重新啟動 MySQL，再檢查一次是否已經打開 SSL 功能：</p>
<p>have_ssl = YES，MySQL 的設定就告一段落了。用 MySQL Client 測試一下：<br /><br />shell&gt; mysql --ssl-ca=ca-cert.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem -u root -p<br />測試無誤後，接下來要寫個 Java 程式，用 SSL 的方式連 MySQL。撰寫程式前，要先用 Java 的 keytool 建立 truststore 和 keystore：<br /><br />建立 truststore：<br /><br />shell&gt; keytool -import -alias mysqlServerCACert -file ca-cert.pem -keystore truststore<br /><br />建立 keystore：<br />匯入之前建立的 MySQL Client 憑證，首先要先轉成 DER 格式：<br /><br />shell&gt; openssl x509 -outform DER -in client-cert.pem -out client.cert<br /><br />產生 keystore：<br /><br />shell&gt; keytool -import -file client.cert -keystore keystore -alias mysqlClientCertificate<br /><br />將建立好的 truststore 和 keystore，放到一個安全的地方，接下來是 Java 的 Code：<br /><br />import java.sql.Connection;<br />import java.sql.DriverManager;<br />import java.sql.ResultSet;<br />import java.sql.Statement;<br /><br />public class MySQL_SSL_TEST {<br /><br />static private String db_user = "username";<br />static private String db_password = "password";<br /><br />public static void main(String[] args) {<br />try {<br />Class.forName("com.mysql.jdbc.Driver").newInstance();<br />System.setProperty("javax.net.ssl.keyStore","/your_path/keystore");<br />System.setProperty("javax.net.ssl.keyStorePassword","password");<br />System.setProperty("javax.net.ssl.trustStore","/your_path/truststore");<br />System.setProperty("javax.net.ssl.trustStorePassword","password");<br />Connection con = DriverManager.getConnection("jdbc:mysql://your_host:3306/DATABASE?user="+ db_user + "&amp;password=" + db_password + "&amp;useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=true");<br />String query = "SELECT * FROM TABLE";<br />Statement stm = con.createStatement();<br />ResultSet res = stm.executeQuery(query);<br />while(res.next()){<br />System.out.println(res.getString(1));<br />}<br />res.close();<br />stm.close();<br />con.close();<br />} catch (Exception e) {<br />System.out.println("Caught Exception : " + e.toString());<br />}<br />}<br />}<br /><br />如果可以順利 Query 出資料，就大功告成啦！<br /><br />多一層防護，的確安全些，不過就跟防毒軟體一樣，即使常常 Update，也不能保證 100% 的安全，凡事多留意，真的無敵重要的資料，還是不要放在網路上，比較安全囉！<br /><br />
<script type="text/javascript" src="http://www.google-analytics.com/urchin.js"></script>
<br />
<script type="text/javascript"></script>
</p><img src ="http://www.cnblogs.com/huqingyu/aggbug/1418936.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47950/" target="_blank">iPhone 3GS首发日创AT&T多项纪录</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>Setup 64-bit Windows Server for Running ASP.NET 1.1 and ASP.NET 2.0 at the Same Time</title><link>http://www.cnblogs.com/huqingyu/archive/2009/03/18/1415083.html</link><dc:creator>龍龙</dc:creator><author>龍龙</author><pubDate>Wed, 18 Mar 2009 01:31:00 GMT</pubDate><guid>http://www.cnblogs.com/huqingyu/archive/2009/03/18/1415083.html</guid><wfw:comment>http://www.cnblogs.com/huqingyu/comments/1415083.html</wfw:comment><comments>http://www.cnblogs.com/huqingyu/archive/2009/03/18/1415083.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/huqingyu/comments/commentRss/1415083.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/huqingyu/services/trackbacks/1415083.html</trackback:ping><description><![CDATA[<h2>Introduction</h2>
<p>There are many .NET Web applications built on ASP.NET 1.1 and 2.0, which run on the Windows server at the same time. The special case is in the Web site <em>Main</em>: there are some ASP.NET 1.1 projects built into the site: <em>Proj1.1</em>, etc. and some ASP.NET 2.0 projects are added to it: <em>Proj2.0</em>, etc. </p>
<ul>
<li><em>Main</em> (1.1) 
<ul>
<li><em>Proj1.1</em> (1.1) </li>
<li><em>Proj2.0</em> (2.0) </li>
</ul>
</li>
</ul>
<p>On a 32-bit Windows server, we can setup 1.1 or 2.0 Web applications by &ldquo;ASP.NET Tab&rdquo; in Internet Information Services (IIS) Manager. On a 64-bit (x64) Windows server, there are some issues related to running ASP.NET 1.1 and ASP.NET 2.0 at the same time, for example, ASP.NET tab is missing. This article describes some issues and their solutions. </p>
<p>If running ASP.NET 1.1 and ASP.NET 2.0 on the same X64 server at the same time, we must run IIS in 32-bit mode [1]. 64-bit server doesn't allow us to install ASP.NET 2.0 of 32-bit mode, which means we need to install ASP.NET 1.1 of 32-bit mode and ASP.NET 2.0 of 64-bit mode. After installing them, we need to enable the 32-bit mode on X64. </p>
<ol>
<li>Install IIS on Windows Server 2003 R2 x64<br />Control Panel | Add or Remove Programs | Add/Remove Windows Components | Add the component &ldquo;Application Server&rdquo;<br /><br /><img width="420" src="http://www.cnblogs.com/huqingyu/admin/setup64bitserver/image001.jpg" alt="image001.jpg" height="293" />
<p>It prompts for <em>convlog.exe</em>. You can find it in <em>\WINDOWS\ServicePackFiles\amd64</em>.</p>
<img border="0" width="324" src="http://www.cnblogs.com/huqingyu/admin/setup64bitserver/image002.jpg" hspace="0" alt="image001.jpg" height="166" />
<p>It prompts for <em>iisback.vbs</em>. You can select <em>IISBACK.VB_</em> in <em>c:\amd64</em>.</p>
<img border="0" width="324" src="http://www.cnblogs.com/huqingyu/admin/setup64bitserver/image003.jpg" hspace="0" alt="image001.jpg" height="168" /> </li>
<li>Download and install the 32-bit .NET 1.1 and 64-bit .NET 2.0 packages.
<p>The packages can be found in: </p>
<p>&nbsp;</p>
<ol>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=262D25E3-F589-4842-8157-034D1E7CF3A3&amp;displaylang=en">Microsoft .NET Framework Version 1.1 Redistributable Package</a> </li>
<li><a href="http://msdn2.microsoft.com/en-us/netframework/aa731542.aspx">The .NET Framework Version 2.0 Redistributable Package x64 (64 Bit)</a> </li>
</ol>
<p>&nbsp;</p>
</li>
<li>
<p>Enable ASP.NET 1.1 and ASP.NET 2.0:</p>
<ol>
<li>Enable the 32-bit mode on x64 Windows server<br /><em>cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1</em> </li>
<li>Install the version of ASP.NET 1.1 and the script maps at the IIS root and under<br /><em>%SYSTEMROOT%\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe &ndash;i</em> </li>
<li>Install the version of ASP.NET 2.0 (32-bit) and the script maps at the IIS root and under<br /><em>%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe &ndash;i</em> </li>
</ol>
<p>After installing ASP.NET 1.1 and 2.0, you will find them in IIS Manager | Web Service Extension. Then enable the following services: Active Server Pages, ASP.NET v1.1.4322, ASP.NET v2.0.50727 (32-bit), Internet Data Connector, and Service Side Includes.</p>
<img border="0" width="444" src="http://www.cnblogs.com/huqingyu/admin/setup64bitserver/image004.jpg" hspace="0" alt="image001.jpg" height="167" /> </li>
<li>Setup ASP.NET 1.1 and 2.0 applications
<p>After creating the virtual directories for <em>Main</em> etc. and different Application Pools for ASP.NET 1.1 and 2.0, you will find the ASP.NET tab missing in IIS Manager. Microsoft does not fix &ldquo;Missing ASP.NET tabs on Windows x64 Servers&rdquo;. But there is a workaround [2]. In our case, configure <em>Main</em> using ASP.NET 1.1 version, which also applies to <em>Proj1.1</em>: <em>%SYSTEMROOT%\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -s W3SVC/1/ROOT/Main</em>.</p>
<p>Then, configure <em>Proj2.0</em> to use ASP.NET 2.0 versions: <em>%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -s W3SVC/1/ROOT/Main/Proj2.0</em>.</p>
</li>
</ol><img src ="http://www.cnblogs.com/huqingyu/aggbug/1415083.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47949/" target="_blank">Silverlight开发大赛奖金高达10000美元</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item></channel></rss>