<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3596191417578719121</id><updated>2024-10-03T09:04:08.149-07:00</updated><category term="PHP"/><category term="Imformation"/><category term="JSP"/><category term="Virus"/><category term="ASP.NET"/><category term="Java"/><category term="Security"/><category term="Other"/><category term="C#"/><category term="MySQL"/><category term="Project"/><category term="Surprise"/><category term="CSS"/><category term="Cloud Computing"/><category term="Google"/><category term="JavaScript"/><category term="RESTful"/><category term="Blog"/><category term="Excel"/><category term="JSON"/><category term="JavaBeans"/><category term="Microsoft"/><category term="SQL"/><category term="Socket"/><category term="Software"/><category term="Word"/><title type='text'>成長來自學習</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://fell0206.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://fell0206.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>fell0206</name><uri>http://www.blogger.com/profile/09949035149047857632</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>50</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3596191417578719121.post-4487709413271645523</id><published>2011-04-20T05:06:00.000-07:00</published><updated>2011-04-20T05:11:46.390-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Imformation"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="RESTful"/><title type='text'>初探RESTful-II</title><content type='html'>&lt;b&gt;Resources&lt;/b&gt;&lt;br /&gt;A RESTful resource is anything that is addressable over the Web. By addressable, we mean resources that can be accessed and transferred between clients and servers. Subsequently, a resource is a logical, temporal mapping to a concept in the problem domain for which we are implementing a solution.&lt;div&gt;&lt;br /&gt;if we request a text file from CNN, our browser receives a text file. If we request a Flash movie from YouTube, our browser receives a Flash movie. The data is streamed in both cases over TCP/IP and the browser knows how to interpret the binary streams because of the HTTP protocol response header Content-Type. Consequently, in a RESTful system, the representation of a resource depends on the caller&#39;s desired type(MIME type), which is specified within the communication protocol&#39;s request.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Representation&lt;/b&gt;&lt;br /&gt;the life of a web service there may be a variety of clients requesting resources. Different clients are able to consume different representations of the same resource. Therefore, a representation can take various forms, such as an image, a text file, or an XML stream or a JSON stream, but has to be available through the same URI.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;URI&lt;/b&gt;&lt;br /&gt;A Uniform Resource Identifier, or URI, in a RESTful web service is a hyperlink to a resource, and it&#39;s the only means for clients and servers to exchange representations.(The set of RESTful constraints don&#39;t dictate that URIs must be hyperlinks.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;In a RESTful system, the URI is not meant to change over time, as the architecture&#39;s implementation is what manages the services, locates the resources, negotiates the representations, and then sends back responses with the requested resources.&lt;br /&gt;ps.在沒有使用RESTful的情況下,若改變檔名,那麼link也會跟著變動&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fell0206.blogspot.com/feeds/4487709413271645523/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3596191417578719121/4487709413271645523' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/4487709413271645523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/4487709413271645523'/><link rel='alternate' type='text/html' href='http://fell0206.blogspot.com/2011/04/restful-ii.html' title='初探RESTful-II'/><author><name>fell0206</name><uri>http://www.blogger.com/profile/09949035149047857632</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3596191417578719121.post-4909118279199350489</id><published>2011-04-20T00:06:00.000-07:00</published><updated>2011-04-20T00:24:21.457-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="JSON"/><category scheme="http://www.blogger.com/atom/ns#" term="JSP"/><title type='text'>Example:Java讀JSON</title><content type='html'>&lt;b&gt;Requirement&lt;/b&gt;&lt;br /&gt;從&lt;a href=&quot;http://www.json.org/&quot; target=&quot;_blank&quot;&gt;JSON&lt;/a&gt;的官網中,找出相對應的程式語言的套件(我是用這套&lt;a href=&quot;http://www.json.org/java/index.html&quot; target=&quot;_blank&quot;&gt;org.json&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Implementation&lt;/b&gt;&lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;import org.json.*;&lt;br /&gt;&lt;br /&gt;public class Main {&lt;br /&gt;&lt;br /&gt;public static void main(String[] args) {&lt;br /&gt; // TODO Auto-generated method stub&lt;br /&gt; GenerateJSON myJsonString = new GenerateJSON();&lt;br /&gt; JSONObject tempObj = null;&lt;br /&gt;&lt;br /&gt; try {&lt;br /&gt;  JSONObject jsonObj = new JSONObject(myJsonString.generateJSON());&lt;br /&gt;  tempObj = new JSONObject(jsonObj.get(&quot;UserProfile&quot;).toString());&lt;br /&gt;  System.out.println(&quot;/*------------UserProfile---------------*/&quot;);&lt;br /&gt;  System.out.print(tempObj.get(&quot;userName&quot;) + &quot;   &quot;);&lt;br /&gt;  System.out.print(tempObj.get(&quot;password&quot;) + &quot;   &quot;);&lt;br /&gt;  System.out.print(tempObj.get(&quot;sex&quot;));&lt;br /&gt;  System.out.println();&lt;br /&gt;&lt;br /&gt;  System.out.println(&quot;/*------------MoneyPlan---------------*/&quot;);&lt;br /&gt;  JSONObject moneyPlan = new JSONObject(jsonObj.get(&quot;MoneyPlan&quot;)&lt;br /&gt;    .toString());&lt;br /&gt;  tempObj = new JSONObject(moneyPlan.get(&quot;Monday&quot;).toString());&lt;br /&gt;  System.out.print(&quot;[Monday]&quot;);&lt;br /&gt;  System.out.print(tempObj.get(&quot;dinner&quot;) + &quot;\t&quot;);&lt;br /&gt;  System.out.print(tempObj.get(&quot;breakfast&quot;) + &quot;\t&quot;);&lt;br /&gt;  System.out.print(tempObj.get(&quot;lunch&quot;) + &quot;\n&quot;);&lt;br /&gt;&lt;br /&gt;  tempObj = new JSONObject(moneyPlan.get(&quot;Tuesday&quot;).toString());&lt;br /&gt;  System.out.print(&quot;[Tuesday]&quot;);&lt;br /&gt;  System.out.print(tempObj.get(&quot;dinner&quot;) + &quot;\t&quot;);&lt;br /&gt;  System.out.print(tempObj.get(&quot;breakfast&quot;) + &quot;\t&quot;);&lt;br /&gt;  System.out.print(tempObj.get(&quot;lunch&quot;) + &quot;\n&quot;);&lt;br /&gt; } catch (JSONException e) {&lt;br /&gt;  // TODO Auto-generated catch block&lt;br /&gt;  e.printStackTrace();&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;import org.json.*;&lt;br /&gt;//{&lt;br /&gt;// &quot;MoneyPlan&quot;:{&lt;br /&gt;//  &quot;Monday&quot;:{&lt;br /&gt;//   &quot;dinner&quot;:&quot;100&quot;,&lt;br /&gt;//   &quot;breakfast&quot;:&quot;50&quot;,&lt;br /&gt;//   &quot;lunch&quot;:&quot;100&quot;&lt;br /&gt;//  },&lt;br /&gt;//  &quot;Tuesday&quot;:{&lt;br /&gt;//   &quot;dinner&quot;:&quot;200&quot;,&lt;br /&gt;//   &quot;breakfast&quot;:&quot;55&quot;,&lt;br /&gt;//   &quot;lunch&quot;:&quot;150&quot;&lt;br /&gt;//  }&lt;br /&gt;// },&lt;br /&gt;// &quot;UserProfile&quot;:{&lt;br /&gt;//  &quot;userName&quot;:&quot;aaa&quot;,&lt;br /&gt;//  &quot;password&quot;:&quot;bbb&quot;,&lt;br /&gt;//  &quot;Sex&quot;:&quot;Boy&quot;&lt;br /&gt;// }&lt;br /&gt;//}&lt;br /&gt;&lt;br /&gt;public class GenerateJSON {&lt;br /&gt;&lt;br /&gt;public String generateJSON() {&lt;br /&gt; JSONObject jsonObj = new JSONObject();&lt;br /&gt; JSONObject detailObj = new JSONObject();&lt;br /&gt; JSONObject detailObj2 = new JSONObject();&lt;br /&gt;&lt;br /&gt; try {&lt;br /&gt;  detailObj.put(&quot;userName&quot;, &quot;9836002&quot;);&lt;br /&gt;  detailObj.put(&quot;password&quot;, &quot;9836002&quot;);&lt;br /&gt;  detailObj.put(&quot;sex&quot;, &quot;Boy&quot;);&lt;br /&gt;  jsonObj.put(&quot;UserProfile&quot;, detailObj);&lt;br /&gt;&lt;br /&gt;  detailObj2.put(&quot;breakfast&quot;, &quot;50&quot;);&lt;br /&gt;  detailObj2.put(&quot;lunch&quot;, &quot;100&quot;);&lt;br /&gt;  detailObj2.put(&quot;dinner&quot;, &quot;100&quot;);&lt;br /&gt;&lt;br /&gt;  detailObj = new JSONObject();&lt;br /&gt;  detailObj.put(&quot;Monday&quot;, detailObj2);&lt;br /&gt;&lt;br /&gt;  detailObj2 = new JSONObject();&lt;br /&gt;  detailObj2.put(&quot;breakfast&quot;, &quot;55&quot;);&lt;br /&gt;  detailObj2.put(&quot;lunch&quot;, &quot;150&quot;);&lt;br /&gt;  detailObj2.put(&quot;dinner&quot;, &quot;200&quot;);&lt;br /&gt;&lt;br /&gt;  detailObj.put(&quot;Tuesday&quot;, detailObj2);&lt;br /&gt;  jsonObj.put(&quot;MoneyPlan&quot;, detailObj);&lt;br /&gt;&lt;br /&gt; } catch (JSONException ex) {&lt;br /&gt;  System.out.println(ex.toString());&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; return jsonObj.toString();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Reference:&lt;br /&gt;&lt;a href=&quot;http://www.json.org/&quot; target=&quot;_blank&quot;&gt;JSON&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://werdna1222coldcodes.blogspot.com/2009/01/json-in-java.html&quot; target=&quot;_blank&quot;&gt;JSON in JAVA 的簡單程式範例&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://fell0206.blogspot.com/feeds/4909118279199350489/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3596191417578719121/4909118279199350489' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/4909118279199350489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/4909118279199350489'/><link rel='alternate' type='text/html' href='http://fell0206.blogspot.com/2011/04/examplejavajson.html' title='Example:Java讀JSON'/><author><name>fell0206</name><uri>http://www.blogger.com/profile/09949035149047857632</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3596191417578719121.post-9189776147351890185</id><published>2011-04-19T22:42:00.000-07:00</published><updated>2011-04-20T05:07:13.362-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Imformation"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="RESTful"/><title type='text'>初探RESTful-I</title><content type='html'>最近泰哥要我研究&lt;a href=&quot;http://net.tutsplus.com/tutorials/php/working-with-restful-services-in-codeigniter-2/&quot; target=&quot;_blank&quot;&gt;RESTful Service in Codeigniter&lt;/a&gt;,雖然tutorial看的懂,能夠寫基本的code,但對tutorial中所提到的REST/RESTful卻還是有點模糊,上網找了些資料來看,找到有一篇還不錯&lt;a href=&quot;http://blog.roodo.com/rocksaying/archives/5692241.html&quot;&gt;REST and RESTful web service&lt;/a&gt;,是石頭大寫的,對RESTful的說明簡單易懂.&lt;br /&gt;後來找到了一本書&quot;RESTful Java Web Services-Master core REST concepts and create RESTful web services in Java&quot;,當中也有對REST/REST-like/RESTful做說明.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; &gt;What is REST?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;The term REST comes from Roy Fielding&#39;s PhD dissertation, published in 2000, and it stands for REpresentational State Transfer. REST by itself is not an architecture;REST is a set of constraints that, when applied to the design of a system, creates a software architectural style.If we implement all the REST guidelines outlined in Fielding&#39;s work, we end up with a system that has specific roles for data, components, hyperlinks, communication protocols, and data consumers.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; &gt;What is RESTful?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;They only define how data is transferred between components and what are the benefits of following the guidelines.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It must be a client-server system&lt;/li&gt;&lt;li&gt;It has to be stateless—there should be no need for the service to keep users&#39; sessions; in other words, each request should be independent of others&lt;/li&gt;&lt;li&gt;It has to support a caching system—the network infrastructure should support cache at different levels&lt;/li&gt;&lt;li&gt;It has to be uniformly accessible—each resource must have a unique address and a valid point of access&lt;/li&gt;&lt;li&gt;It has to be layered—it must support scalability&lt;/li&gt;&lt;li&gt;It should provide code on demand—although this is an optional constraint, applications can be extendable at runtime by allowing the downloading of code on demand, for example, Java Applets&lt;/li&gt;&lt;/ul&gt;Reference:&lt;br /&gt;&lt;a href=&quot;http://blog.roodo.com/rocksaying/archives/5692241.html&quot; target=&quot;_blank&quot;&gt;REST and RESTful web service&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://net.tutsplus.com/tutorials/php/working-with-restful-services%20%20-in-codeigniter-2/&quot;&gt;Working with RESTful Services in CodeIgniter&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://fell0206.blogspot.com/feeds/9189776147351890185/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3596191417578719121/9189776147351890185' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/9189776147351890185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/9189776147351890185'/><link rel='alternate' type='text/html' href='http://fell0206.blogspot.com/2011/04/restful.html' title='初探RESTful-I'/><author><name>fell0206</name><uri>http://www.blogger.com/profile/09949035149047857632</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3596191417578719121.post-3265549235834806421</id><published>2011-03-01T18:25:00.000-08:00</published><updated>2011-03-01T18:47:54.506-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><title type='text'>一次刪掉大量的Database和User</title><content type='html'>今天遇到了一個狀況,要一次刪上百個Database及上百個User,雖然手動一個一個刪也OK,但...我好懶,而且以後可能還會再遇到同樣的事,所以我寫了以下的SQL:&lt;br /&gt;ps.本來是要用Cursor,因為涉及要一次取一個值,但...後來想想,還是算了,怕未來SQL Server不支援.&lt;br /&gt;&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;sql&quot;&gt;&lt;br /&gt;/*-----------------刪除大量的資料庫--------------------*/&lt;br /&gt;--在sys.databases中有所有database的清單,&lt;br /&gt;--透過@minDataBase_ID和@maxDataBase_ID介&lt;br /&gt;--定Range(database_id有遞增的特性,且編號&lt;br /&gt;--可重複使用)&lt;br /&gt;--Important:&quot;[9936018]UDT&quot;-&gt;在刪除時格式為:&lt;br /&gt;-- DROP DATABASE [[9936018]]UDT]&lt;br /&gt;--所以不建議學生以&quot;[9936018]UDT&quot;格式命名&lt;br /&gt;DECLARE @dataBaseName AS NVARCHAR(100)&lt;br /&gt;DECLARE @minDataBase_ID AS INT&lt;br /&gt;DECLARE @maxDataBase_ID AS INT&lt;br /&gt;&lt;br /&gt;SET @minDataBase_ID=7--先在sys.databases中找出要刪除的下限&lt;br /&gt;&lt;br /&gt;SELECT TOP 1 @maxDataBase_ID=database_id&lt;br /&gt;FROM sys.databases&lt;br /&gt;ORDER BY database_id DESC&lt;br /&gt;&lt;br /&gt;WHILE(@minDataBase_ID&lt;=@maxDataBase_ID)&lt;br /&gt;BEGIN&lt;br /&gt; &lt;br /&gt; SELECT @dataBaseName=sys.databases.name&lt;br /&gt; FROM sys.databases&lt;br /&gt; WHERE sys.databases.database_id=@minDataBase_ID&lt;br /&gt; &lt;br /&gt; IF(LEN(@dataBaseName)&gt;0)&lt;br /&gt; BEGIN&lt;br /&gt;  PRINT @dataBaseName&lt;br /&gt;  EXEC(&#39;DROP DATABASE [&#39;+@dataBaseName+&#39;]&#39;)&lt;br /&gt; END&lt;br /&gt; &lt;br /&gt; SET @minDataBase_ID=@minDataBase_ID+1&lt;br /&gt;END&lt;br /&gt;GO&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;sql&quot;&gt;&lt;br /&gt;/*-------------------刪除大量的User----------------------*/&lt;br /&gt;--在sys.database_principals中有所有User的清單,&lt;br /&gt;--透過@minUserID和@maxUserID介定Range&lt;br /&gt;--Important:&lt;br /&gt;--1.在撰寫時,有找到兩個View:sys.database_principals,&lt;br /&gt;--sys.server_principals,一個是database-level一個是&lt;br /&gt;--server-level&lt;br /&gt;--2.DROP USER後,還要在DROP LOGIN,否則Account還在&lt;br /&gt;DECLARE @userName AS NVARCHAR(100)&lt;br /&gt;DECLARE @minUserID AS INT&lt;br /&gt;DECLARE @maxUserID AS INT&lt;br /&gt;&lt;br /&gt;SET @minUserID=10&lt;br /&gt;&lt;br /&gt;SELECT TOP 1 @maxUserID=sys.database_principals.principal_id&lt;br /&gt;FROM sys.database_principals&lt;br /&gt;ORDER BY sys.database_principals.principal_id DESC&lt;br /&gt;&lt;br /&gt;WHILE(@minUserID&lt;=@maxUserID)&lt;br /&gt;BEGIN&lt;br /&gt; &lt;br /&gt; SELECT @userName=sys.database_principals.name&lt;br /&gt; FROM sys.database_principals&lt;br /&gt; WHERE sys.database_principals.principal_id=@minUserID&lt;br /&gt; &lt;br /&gt; IF(LEN(@userName)&gt;0)&lt;br /&gt; BEGIN&lt;br /&gt;  EXEC(&#39;DROP USER [&#39;+@userName+&#39;]&#39;)&lt;br /&gt;  EXEC(&#39;DROP LOGIN [&#39;+@userName+&#39;]&#39;)&lt;br /&gt; END&lt;br /&gt; &lt;br /&gt; SET @minUserID=@minUserID+1&lt;br /&gt;END&lt;br /&gt;GO&lt;br /&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://fell0206.blogspot.com/feeds/3265549235834806421/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3596191417578719121/3265549235834806421' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/3265549235834806421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/3265549235834806421'/><link rel='alternate' type='text/html' href='http://fell0206.blogspot.com/2011/03/databaseuser.html' title='一次刪掉大量的Database和User'/><author><name>fell0206</name><uri>http://www.blogger.com/profile/09949035149047857632</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3596191417578719121.post-2954343525096970216</id><published>2010-12-24T05:05:00.000-08:00</published><updated>2010-12-24T05:15:42.536-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JSP"/><title type='text'>Post和Get編碼的差別?</title><content type='html'>編寫JSP時,最麻煩的就是編碼的問題,而今天我就遇到了&quot;明明所有的Page都設成UTF-8&quot;,但顯示出來仍然是亂碼!&lt;br /&gt;研究了好多天,終於知道問題在那了!原來是Post/Get的差別,後來Google了一下,有位大大這麼寫到:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;原文:&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;Get 和Post都是HTTP的标准协议动词，用于编码和传送变量名和变量值，无论Get 和Post都是通过编码后传送数据。&lt;br /&gt;是这个问题解释起来有点难，但有两点是可以肯定的：&lt;br /&gt;一是：get方式传送数据时附加参数被认为是一个查询字符串，变量名/变量值作为URL的一部分被传送，假如读取数据后，不立即跳转到别的页面上，地址栏上会看得到有关的参数和值，并与表单一一对应，如地址栏上会看到xx=??&amp;xx=??。而post方式传送，虽然也是被URL编码的。然而，变量名/变量值不作为URL的一部分被传送，而是放在实际的HTTP请求消息内部被传送。从地址栏上看不到。&lt;br /&gt;二是：get 默认（只是默认）是以使用MIME类型application/x-www-form-urlencoded的urlencoded文本的格式传递参数。Urlencoding是一种字符编码，保证被传送的参数由遵循规范的文本组成。post则可以通过页面指定的编码方式进行编码。目前大体有两类：一是ANSI的ASCII字符集，不同的国家和地区制定了不同的标准，由此产生了GB2312、BIG5, JIS等等，且互不兼容，并且与之后出现的国际性的UNICODE标准编码的UTF-8等也不兼容，因此稍有不慎便出现乱码。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;繁體:&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;Get 和Post都是HTTP的標準協議動詞，用於編碼和傳送變量名和變量值，無論Get 和Post都是通過編碼後傳送數據。&lt;br /&gt;是這個問題解釋起來有點難，但有兩點是可以肯定的：&lt;br /&gt;一是：get方式傳送數據時附加參數被認為是一個查詢字符串，變量名/變量值作為URL的一部分被傳送，假如讀取數據後，不立即跳轉到別的頁面上，地址欄上會看得到有關的參數和值，並與表單一一對應，如地址欄上會看到xx=??&amp;xx=??。 而post方式傳送，雖然也是被URL編碼的。 然而，變量名/變量值不作為URL的一部分被傳送，而是放在實際的HTTP請求消息內部被傳送。 從地址欄上看不到。&lt;br /&gt;二是：get 默認（只是默認）是以使用MIME類型application/x-www-form-urlencoded的urlencoded文本的格式傳遞參數。 Urlencoding是一種字符編碼，保證被傳送的參數由遵循規範的文本組成。 post則可以通過頁面指定的編碼方式進行編碼。 目前大體有兩類：一是ANSI的ASCII字符集，不同的國家和地區製定了不同的標準，由此產生了GB2312、BIG5, JIS等等，且互不兼容，並且與之後出現的國際性的UNICODE標準編碼的UTF-8等也不兼容，因此稍有不慎便出現亂碼。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;資料來源:&lt;a href=&quot;http://wenwen.soso.com/z/q188275796.htm&quot; target=&quot;_blank&quot;&gt;http://wenwen.soso.com/z/q188275796.htm&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://fell0206.blogspot.com/feeds/2954343525096970216/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3596191417578719121/2954343525096970216' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/2954343525096970216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/2954343525096970216'/><link rel='alternate' type='text/html' href='http://fell0206.blogspot.com/2010/12/postget.html' title='Post和Get編碼的差別?'/><author><name>fell0206</name><uri>http://www.blogger.com/profile/09949035149047857632</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3596191417578719121.post-6251464410028180811</id><published>2010-03-14T05:40:00.000-07:00</published><updated>2010-03-14T05:55:53.048-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Other"/><category scheme="http://www.blogger.com/atom/ns#" term="Software"/><title type='text'>Free WMA to MP3 Converter</title><content type='html'>今天為了要把英文課本的CD轉出來,然後放在電子詞典中,所以在Google上找了一下WMA轉MP3的程式,而經過本人使用還不錯,簡單易用,而是FREE的!&lt;br /&gt;&lt;a href=&quot;http://www.jodix.com/&quot; target=&quot;_blank&quot;&gt;jodix&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://picasaweb.google.com.tw/lh/photo/IcfgGy5Rgi4QGgGxd2ELXw?feat=embedwebsite&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixfzgncEdqqNw8lZwmwtHjm-D81oEBs9IT7e3STGNyW39r_dKvum-ZeNoWULqQX56jpE4Yrp2seUZr_oaTyMIztHBKocrDkLoNO3LjxamsAT0jP03PGKzKGSbkKQXDKOan8qV5g6BOBLs/s400/wma-mp3_507x457.gif&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Main Window while Converting.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://picasaweb.google.com.tw/lh/photo/AWr2KPop_v66CfryHs1LfA?feat=embedwebsite&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1GsCe3l51PXjb-SSnYHxR3AOrinzGv1MmaaAOj1oB9maDOsTF-hFrEI-Cut5eSsOp8WRtfrb0cOVwrvyVBUB8t3e8tNQ2_lmsSyQdTXxg2gFkhgErVs1GUOSwzBKFzumJqtskUGC8gXg/s288/wma-mp3-settings.gif&quot; /&gt;&lt;/a&gt;&lt;br /&gt;MP3 Settings.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://picasaweb.google.com.tw/lh/photo/whU2edTOLmUBAYrpd3jLaw?feat=embedwebsite&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbNQH-zFIKUhN7f3WQ0v8Or4REcwOlH-GrmDmJ5BtYQu1_O0SodWBzyPbS54gN_83C_zHtrc-WXiz7Apn4CncaCEY9dlmY0WI2TG8Taj2Ke_pT9y_omOJniXzWB_yfPnJOIjUc-AjTr6E/s288/wma-mp3-id3-tag.gif&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Edit ID3 Tag.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://picasaweb.google.com.tw/lh/photo/JeMiuo2oBBIJGKVmZmENfw?feat=embedwebsite&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPx3okPDXK2nZiOHGHD6hpwEZk3Wu5qA2dHh6RvL6wuvNyML3U38p15pPywIrm_IaLnk4dDCFYRyIVwNb7mEtuDAeJ6eIH6J9ITlzpVz9KCpn2jbQSjTR-nnwpdbYcMqCgK3Eg-zy0rsY/s288/wma-mp3-converting-ok.gif&quot; /&gt;&lt;/a&gt;&lt;br /&gt;After Converting.&lt;br /&gt;&lt;br /&gt;資料來源:&lt;a href=&quot;http://www.jodix.com/&quot; target=&quot;_blank&quot;&gt;jodix&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://fell0206.blogspot.com/feeds/6251464410028180811/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3596191417578719121/6251464410028180811' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/6251464410028180811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/6251464410028180811'/><link rel='alternate' type='text/html' href='http://fell0206.blogspot.com/2010/03/free-wma-to-mp3-converter.html' title='Free WMA to MP3 Converter'/><author><name>fell0206</name><uri>http://www.blogger.com/profile/09949035149047857632</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixfzgncEdqqNw8lZwmwtHjm-D81oEBs9IT7e3STGNyW39r_dKvum-ZeNoWULqQX56jpE4Yrp2seUZr_oaTyMIztHBKocrDkLoNO3LjxamsAT0jP03PGKzKGSbkKQXDKOan8qV5g6BOBLs/s72-c/wma-mp3_507x457.gif" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3596191417578719121.post-8352738374347200039</id><published>2010-02-06T22:25:00.000-08:00</published><updated>2010-02-22T19:28:23.817-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="Project"/><title type='text'>無名相簿 下載程式</title><content type='html'>由於之前使用了WretchXD這個挺有名的&quot;無名相簿下載程式&quot;,我只能說太強了,所以也想說自己寫一個小的玩一玩,在撰寫的過程中,所遇到的因難可真不少,畢竟自己程度不好,而我是以C#所開發的(.NET 2.0),功能目前也挺簡單的,但都有達到最基本的要求-&quot;下載&quot;,若寫的不好,在此還請各位大大多多包含,若有什麼要改進的,可以留言,謝謝!&lt;br /&gt;&lt;br /&gt;&lt;div&gt;WretchAlbumDownload v1.1&lt;br /&gt;目前已發現的問題如下:&lt;br /&gt;1.相簿名稱複選時,圖片無法正確顯示-&gt;Modified 2010/02/23&lt;br /&gt;2.在相簿還為載入完全時,點選相簿名稱時會當掉-&gt;Modified 2010/02/23&lt;br /&gt;3.訊息文字排列有問題&lt;br /&gt;------------------------&lt;br /&gt;&lt;a href=&quot;http://sourceforge.net/projects/wretchalbumdown/files/&quot; target=&quot;_blank&quot;&gt;WretchAlbumDownload v1.0&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;參考資料:&lt;br /&gt;&lt;a href=&quot;http://soft.ccn.tw/&quot; target=&quot;_blank&quot;&gt;CCN&#39;s Soft&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fell0206.blogspot.com/feeds/8352738374347200039/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3596191417578719121/8352738374347200039' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/8352738374347200039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/8352738374347200039'/><link rel='alternate' type='text/html' href='http://fell0206.blogspot.com/2010/02/blog-post.html' title='無名相簿 下載程式'/><author><name>fell0206</name><uri>http://www.blogger.com/profile/09949035149047857632</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3596191417578719121.post-8144216306887252445</id><published>2010-02-06T22:21:00.000-08:00</published><updated>2010-02-06T22:24:28.433-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><title type='text'>如何印出當前程式的路徑 For C#</title><content type='html'>由於近日因撰寫程式的需要,所以上網找了一下方法,發現似乎挺簡單的:&lt;br /&gt;&lt;pre class=&quot;C#&quot; name=&quot;code&quot;&gt;&lt;br /&gt;MessageBox.Show(System.Windows.Forms.Application.StartupPath);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;就這樣而已!</content><link rel='replies' type='application/atom+xml' href='http://fell0206.blogspot.com/feeds/8144216306887252445/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3596191417578719121/8144216306887252445' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/8144216306887252445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/8144216306887252445'/><link rel='alternate' type='text/html' href='http://fell0206.blogspot.com/2010/02/for-c.html' title='如何印出當前程式的路徑 For C#'/><author><name>fell0206</name><uri>http://www.blogger.com/profile/09949035149047857632</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3596191417578719121.post-425170578068290943</id><published>2010-02-04T20:51:00.000-08:00</published><updated>2010-02-04T21:04:39.763-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><title type='text'>撰寫C#應用程式時,要如何叫出資料夾選擇視窗</title><content type='html'>&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtJ40i7K2hrZ9yInjIHSlqzqFfLlWayz3TAWcBPld5FUpvcmNe4luKO8RBhdmiSbPNXSsELfEbyWUVaPTSf1c5OzeTJ9PK_os5umHGxiDQdBU9nfKPOaldAAEwzckHPLp7iK5NSw4YAG4/s800/FolderBrowserDialog.JPG&quot; /&gt;&lt;br /&gt;其實方法並不難,只是VS沒有將它放在工具欄而已,所以要手動自己寫:&lt;br /&gt;&lt;pre class=&quot;C#&quot; name=&quot;code&quot;&gt;&lt;br /&gt;FolderBrowserDialog FBD=new FolderBrowserDialog();&lt;br /&gt;FBD.ShowDialog();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;如此就可以選擇不同的Path進行存檔.</content><link rel='replies' type='application/atom+xml' href='http://fell0206.blogspot.com/feeds/425170578068290943/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3596191417578719121/425170578068290943' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/425170578068290943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/425170578068290943'/><link rel='alternate' type='text/html' href='http://fell0206.blogspot.com/2010/02/c.html' title='撰寫C#應用程式時,要如何叫出資料夾選擇視窗'/><author><name>fell0206</name><uri>http://www.blogger.com/profile/09949035149047857632</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtJ40i7K2hrZ9yInjIHSlqzqFfLlWayz3TAWcBPld5FUpvcmNe4luKO8RBhdmiSbPNXSsELfEbyWUVaPTSf1c5OzeTJ9PK_os5umHGxiDQdBU9nfKPOaldAAEwzckHPLp7iK5NSw4YAG4/s72-c/FolderBrowserDialog.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3596191417578719121.post-3943717929476046476</id><published>2009-08-02T20:51:00.000-07:00</published><updated>2009-08-02T21:02:24.145-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="JSP"/><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><title type='text'>JSP實作MD5</title><content type='html'>有用過PHP的人都知道,如果要做Hash的話,本身就有Function可以執行,很方便,但在JSP中卻沒有,需要手動來處理:&lt;br /&gt;&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&lt;br /&gt;&amp;lt;%@page contentType=&quot;text/html&quot; pageEncoding=&quot;UTF-8&quot; import=&quot;java.security.*&quot;%&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&lt;br /&gt;&quot;http://www.w3.org/TR/html4/loose.dtd&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;    &amp;lt;head&amp;gt;&lt;br /&gt;        &amp;lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;&amp;gt;&lt;br /&gt;        &amp;lt;title&amp;gt;JSP Page&amp;lt;/title&amp;gt;&lt;br /&gt;    &amp;lt;/head&amp;gt;&lt;br /&gt;    &amp;lt;body&amp;gt;&lt;br /&gt;        &amp;lt;%&lt;br /&gt;        String plainText = &quot;123456&quot;;&lt;br /&gt;        MessageDigest mdAlgorithm = MessageDigest.getInstance(&quot;MD5&quot;);&lt;br /&gt;        mdAlgorithm.update(plainText.getBytes());&lt;br /&gt;        byte[] digest = mdAlgorithm.digest();&lt;br /&gt;        StringBuffer hexString = new StringBuffer();&lt;br /&gt;        for (int i = 0; i &amp;lt; digest.length; i++) {&lt;br /&gt;            plainText = Integer.toHexString(0xFF &amp; digest[i]);&lt;br /&gt;&lt;br /&gt;            if (plainText.length() &amp;lt; 2) {&lt;br /&gt;                plainText = &quot;0&quot; + plainText;&lt;br /&gt;            }&lt;br /&gt;            hexString.append(plainText);&lt;br /&gt;        }&lt;br /&gt;        out.print(hexString.toString());&lt;br /&gt;        %&amp;gt;&lt;br /&gt;    &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;資料來源:&lt;br /&gt;&lt;a href=&quot;http://snook.ca/archives/java/create_md5_hash/&quot;&gt;http://snook.ca/archives/java/create_md5_hash/&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://blog.xuite.net/jameschih/java/5089658&quot;&gt;http://blog.xuite.net/jameschih/java/5089658&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://fell0206.blogspot.com/feeds/3943717929476046476/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3596191417578719121/3943717929476046476' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/3943717929476046476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/3943717929476046476'/><link rel='alternate' type='text/html' href='http://fell0206.blogspot.com/2009/08/jspmd5.html' title='JSP實作MD5'/><author><name>fell0206</name><uri>http://www.blogger.com/profile/09949035149047857632</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3596191417578719121.post-176441168447179228</id><published>2009-07-15T21:05:00.000-07:00</published><updated>2009-07-16T01:03:50.791-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JSP"/><title type='text'>JSP+MultiPartRequest實作FileUpload</title><content type='html'>JSP要實作檔案上傳的方法很多,例如:jspSmart/O&#39;Reilly/Jakarta等等,不過小弟找不到jspSmart的官網,在此以O&#39;Reilly所提供的API為例:&lt;br /&gt;1.先到&lt;a href=&quot;http://www.servlets.com/cos/index.html&quot; targer=&quot;_blank&quot;&gt;http://www.servlets.com/cos/index.html&lt;/a&gt;下載套件(cos-26Dec2008.zip)&lt;br /&gt;2.將ZIP檔unzip,然後將lib資料夾全都COPY到Web應用程式的WEB-INF下&lt;br /&gt;3.先撰寫一個fileUpload.jsp:&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;&lt;br /&gt;&amp;lt;%@page contentType=&quot;text/html&quot; pageEncoding=&quot;UTF-8&quot; %&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&lt;br /&gt;&quot;http://www.w3.org/TR/html4/loose.dtd&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;    &amp;lt;head&amp;gt;&lt;br /&gt;        &amp;lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;&amp;gt;&lt;br /&gt;        &amp;lt;title&amp;gt;JSP Page&amp;lt;/title&amp;gt;&lt;br /&gt;    &amp;lt;/head&amp;gt;&lt;br /&gt;    &amp;lt;body&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;h1&amp;gt;Hello World!&amp;lt;/h1&amp;gt;&lt;br /&gt;        &amp;lt;form action=&quot;implementUpLoad.jsp&quot; method=&quot;POST&quot; enctype=&quot;multipart/form-data&quot;&amp;gt;&lt;br /&gt;            &amp;lt;input type=&quot;file&quot; name=&quot;files&quot; value=&quot;&quot; width=&quot;20&quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&quot;hidden&quot; name=&quot;fileupload&quot; value=&quot;go&quot; /&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;            &amp;lt;input type=&quot;submit&quot; value=&quot;Upload&quot; /&amp;gt;&lt;br /&gt;        &amp;lt;/form&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;注意:&amp;lt;form&amp;gt;中一定要加enctype=&quot;multipart/form-data&quot;&lt;br /&gt;4.再選寫一個implementUpLoad.jsp:&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;&lt;br /&gt;&amp;lt;%@page contentType=&quot;text/html&quot; pageEncoding=&quot;UTF-8&quot; import=&quot;com.oreilly.servlet.MultipartRequest&quot; %&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&lt;br /&gt;&quot;http://www.w3.org/TR/html4/loose.dtd&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;    &amp;lt;head&amp;gt;&lt;br /&gt;        &amp;lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;&amp;gt;&lt;br /&gt;        &amp;lt;title&amp;gt;JSP Page&amp;lt;/title&amp;gt;&lt;br /&gt;    &amp;lt;/head&amp;gt;&lt;br /&gt;    &amp;lt;body&amp;gt;&lt;br /&gt;        &amp;lt;h1&amp;gt;Hello World!&amp;lt;/h1&amp;gt;&lt;br /&gt;        &amp;lt;%&lt;br /&gt;        try {&lt;br /&gt;                String saveDirectory = &quot;C:\\htdocs\\JSP\\jsp\\web\\files\\&quot;;&lt;br /&gt;                int maxPostSize = 5 * 1024 * 1024;&lt;br /&gt;                MultipartRequest multi = new MultipartRequest(request, saveDirectory, maxPostSize, &quot;UTF-8&quot;);&lt;br /&gt;               &lt;br /&gt;                //MultipartRequest m=new MutipartRequest();&lt;br /&gt;                out.println(multi.getFileNames().nextElement());&lt;br /&gt;                out.println(multi.getFilesystemName((String)multi.getFileNames().nextElement()));&lt;br /&gt;        } catch (Exception e) {&lt;br /&gt;            out.println(e.getMessage());&lt;br /&gt;        }&lt;br /&gt;        %&amp;gt;&lt;br /&gt;    &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;資料來源:&lt;a href=&quot;http://caterpillar.onlyfun.net/Gossip/JSPServlet/FileUpload.htm&quot; target=&quot;_blank&quot;&gt;http://caterpillar.onlyfun.net/Gossip/JSPServlet/FileUpload.htm&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://fell0206.blogspot.com/feeds/176441168447179228/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3596191417578719121/176441168447179228' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/176441168447179228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/176441168447179228'/><link rel='alternate' type='text/html' href='http://fell0206.blogspot.com/2009/07/jspmultipartrequestfileupload.html' title='JSP+MultiPartRequest實作FileUpload'/><author><name>fell0206</name><uri>http://www.blogger.com/profile/09949035149047857632</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3596191417578719121.post-9071957805306884632</id><published>2009-07-09T09:33:00.000-07:00</published><updated>2009-07-09T09:37:05.801-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JavaBeans"/><category scheme="http://www.blogger.com/atom/ns#" term="JSP"/><title type='text'>JSP+JavaBeans</title><content type='html'>JavaBeans這玩意很神奇,也不錯玩,不過小弟我可也是玩了一星期才終於能使用&lt;jsp:useBean&gt;&lt;/jsp:useBean&gt;:&lt;br /&gt;1.先建立一個新的(我是建立C:\htdocs\JSP\jsp)&lt;br /&gt;2.到C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf(因人而異)底下有個server.xml檔,並在&lt;Host&gt;&lt;/Host&gt;之間加入&lt;Context path=&quot;/jsp&quot; docBase=&quot;C:\htdocs\JSP\jsp\web&quot; debug=&quot;0&quot; reloadable=&quot;true&quot; /&gt;&lt;br /&gt;註:&quot;path&quot;是虛擬的路徑名稱(http://localhost:8080/jsp)&lt;br /&gt; 　&quot;docBase&quot;是Web Application的原始路徑&lt;br /&gt; 　&quot;reloadable&quot;若為true,則當你的*.class有所變動時,可以不必將Tomcat重開&lt;br /&gt;3.先建立JavaBeans:&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;&lt;br /&gt;//setData.java&lt;br /&gt;package company;&lt;br /&gt;&lt;br /&gt;public class setData {&lt;br /&gt;&lt;br /&gt;    private String name = null;&lt;br /&gt;    private int age = 0;&lt;br /&gt;&lt;br /&gt;    public setData() {&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void setName(String in) {&lt;br /&gt;        this.name = in;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public String getName() {&lt;br /&gt;        return this.name;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void setAge(int age) {&lt;br /&gt;        this.age = age;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public int getAge() {&lt;br /&gt;        return this.age;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;之後在建立setData.jsp&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;&lt;br /&gt;&amp;lt;%@page contentType=&quot;text/html&quot; pageEncoding=&quot;UTF-8&quot;%&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&lt;br /&gt;   &quot;http://www.w3.org/TR/html4/loose.dtd&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;    &amp;lt;head&amp;gt;&lt;br /&gt;        &amp;lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;&amp;gt;&lt;br /&gt;        &amp;lt;title&amp;gt;JSP Page&amp;lt;/title&amp;gt;&lt;br /&gt;    &amp;lt;/head&amp;gt;&lt;br /&gt;    &amp;lt;body&amp;gt;&lt;br /&gt;        &amp;lt;%&lt;br /&gt;        if(request.getParameter(&quot;action&quot;).equalsIgnoreCase(&quot;go&quot;)){&lt;br /&gt;          %&amp;gt;&lt;br /&gt;          &amp;lt;jsp:useBean id=&quot;setData&quot; class=&quot;company.setData&quot; /&amp;gt;&lt;br /&gt;          &amp;lt;jsp:setProperty name=&quot;setData&quot; property=&quot;name&quot; param=&quot;name&quot; /&amp;gt;&lt;br /&gt;          &amp;lt;jsp:setProperty name=&quot;setData&quot; property=&quot;age&quot; param=&quot;age&quot; /&amp;gt;&lt;br /&gt;          &amp;lt;jsp:getProperty name=&quot;setData&quot; property=&quot;name&quot; /&amp;gt;&lt;br /&gt;          &amp;lt;jsp:getProperty name=&quot;setData&quot; property=&quot;age&quot; /&amp;gt;&lt;br /&gt;          &amp;lt;%&lt;br /&gt;        }&lt;br /&gt;        %&amp;gt;&lt;br /&gt;        &amp;lt;h1&amp;gt;Hello World!&amp;lt;/h1&amp;gt;&lt;br /&gt;        &amp;lt;form action=&quot;setData.jsp&quot; method=&quot;POST&quot;&amp;gt;&lt;br /&gt;            名字:&amp;lt;input type=&quot;text&quot; name=&quot;name&quot; value=&quot;&quot; /&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;            年齡:&amp;lt;input type=&quot;text&quot; name=&quot;age&quot; value=&quot;&quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&quot;hidden&quot; name=&quot;action&quot; value=&quot;go&quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&quot;submit&quot; value=&quot;Go&quot; /&amp;gt;&lt;br /&gt;        &amp;lt;/form&amp;gt;&lt;br /&gt;    &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;註:&quot;property&quot;的部份如果小寫不行請將其改成和所要呼叫的方法名稱同樣大小寫&lt;br /&gt;4.將setData.java compiler後,把setData.class COPY到WEB-INF\classes\company底下&lt;br /&gt;完成後即可用Brower進行測試,請注意,在JSP 2.0中,*.java必需要有package的指定.</content><link rel='replies' type='application/atom+xml' href='http://fell0206.blogspot.com/feeds/9071957805306884632/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3596191417578719121/9071957805306884632' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/9071957805306884632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/9071957805306884632'/><link rel='alternate' type='text/html' href='http://fell0206.blogspot.com/2009/07/jspjavabeans.html' title='JSP+JavaBeans'/><author><name>fell0206</name><uri>http://www.blogger.com/profile/09949035149047857632</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3596191417578719121.post-1546749941811091240</id><published>2009-07-05T02:46:00.000-07:00</published><updated>2009-07-05T02:49:04.673-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JSP"/><category scheme="http://www.blogger.com/atom/ns#" term="MySQL"/><title type='text'>簡意的WEB版SQL練習程式</title><content type='html'>看了許久,JSP終於看了一半上下了,雖然MySQL的基本應用大致上都會了,但多看一次就多一次收獲,所以就少稍為K一下,書附範例中,有附簡單的WEB版的練習介面,不過老是用別人的,自己怎麼會進步,所以我自己也寫了一個,我是用JNDI的方式去寫的:&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;&lt;br /&gt;&amp;lt;%@page contentType=&quot;text/html&quot; pageEncoding=&quot;UTF-8&quot; import=&quot;java.sql.*, javax.sql.*, javax.naming.*&quot;%&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&lt;br /&gt;&quot;http://www.w3.org/TR/html4/loose.dtd&quot;&amp;gt;&lt;br /&gt;&amp;lt;%!    Connection con = null;&lt;br /&gt;    Statement stmt = null;&lt;br /&gt;    ResultSet rs = null;&lt;br /&gt;    ResultSetMetaData rsmd = null;&lt;br /&gt;&lt;br /&gt;    public void jspInit() {&lt;br /&gt;        try {&lt;br /&gt;            Class.forName(&quot;com.mysql.jdbc.Driver&quot;);&lt;br /&gt;        } catch (Exception e) {&lt;br /&gt;            System.out.println(e.getMessage());&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void jspDestory() {&lt;br /&gt;        try {&lt;br /&gt;            stmt.close();&lt;br /&gt;            rs.close();&lt;br /&gt;            con.close();&lt;br /&gt;        } catch (Exception e) {&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;%&amp;gt;&lt;br /&gt;&amp;lt;% request.setCharacterEncoding(&quot;UTF-8&quot;);%&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;    &amp;lt;head&amp;gt;&lt;br /&gt;        &amp;lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;&amp;gt;&lt;br /&gt;        &amp;lt;title&amp;gt;JSP Page&amp;lt;/title&amp;gt;&lt;br /&gt;    &amp;lt;/head&amp;gt;&lt;br /&gt;    &amp;lt;body&amp;gt;&lt;br /&gt;        &amp;lt;table border=&quot;1&quot;&amp;gt;&lt;br /&gt;            &amp;lt;tbody&amp;gt;&lt;br /&gt;                &amp;lt;tr&amp;gt;&lt;br /&gt;                    &amp;lt;td&amp;gt;&amp;lt;center&amp;gt;[Result]&amp;lt;/center&amp;gt;&lt;br /&gt;                        &amp;lt;%&lt;br /&gt;        if (request.getParameter(&quot;client&quot;) != null) {&lt;br /&gt;            con = DriverManager.getConnection(&quot;jdbc:mysql://localhost:3306/mydb?user=root&amp;password=111111&quot;);&lt;br /&gt;            stmt = con.createStatement();&lt;br /&gt;            rs = stmt.executeQuery(request.getParameter(&quot;client&quot;));&lt;br /&gt;            rsmd = rs.getMetaData();&lt;br /&gt;                        %&amp;gt;&lt;br /&gt;                        &amp;lt;table border=&quot;1&quot;&amp;gt;&lt;br /&gt;                            &amp;lt;thead&amp;gt;&lt;br /&gt;                                &amp;lt;tr&amp;gt;&lt;br /&gt;                                    &amp;lt;%&lt;br /&gt;                            for (int i = 1; i &amp;lt;= rsmd.getColumnCount(); i++) {&lt;br /&gt;                                    %&amp;gt;&lt;br /&gt;                                    &amp;lt;th&amp;gt;&amp;lt;%=rsmd.getColumnLabel(i)%&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;                                    &amp;lt;%&lt;br /&gt;                            }&lt;br /&gt;                                    %&amp;gt;&lt;br /&gt;                                &amp;lt;/tr&amp;gt;&lt;br /&gt;                            &amp;lt;/thead&amp;gt;&lt;br /&gt;                            &amp;lt;tbody&amp;gt;&lt;br /&gt;                                &amp;lt;%&lt;br /&gt;                            while (rs.next()) {&lt;br /&gt;                                %&amp;gt;&lt;br /&gt;                                &amp;lt;tr&amp;gt;&lt;br /&gt;                                    &amp;lt;%&lt;br /&gt;                                    for (int i = 1; i &amp;lt;= rsmd.getColumnCount(); i++) {&lt;br /&gt;                                    %&amp;gt;&lt;br /&gt;                                    &amp;lt;td&amp;gt;&amp;lt;%=rs.getString(i)%&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;                                    &amp;lt;%&lt;br /&gt;                                    }&lt;br /&gt;                                    %&amp;gt;&lt;br /&gt;                                &amp;lt;/tr&amp;gt;&lt;br /&gt;                                &amp;lt;%&lt;br /&gt;                            }&lt;br /&gt;                                %&amp;gt;&lt;br /&gt;                            &amp;lt;/tbody&amp;gt;&lt;br /&gt;                        &amp;lt;/table&amp;gt;&lt;br /&gt;                        &amp;lt;%&lt;br /&gt;        }&lt;br /&gt;                        %&amp;gt;&lt;br /&gt;                    &amp;lt;/td&amp;gt;&lt;br /&gt;                &amp;lt;/tr&amp;gt;&lt;br /&gt;                &amp;lt;tr&amp;gt;&lt;br /&gt;                    &amp;lt;td&amp;gt;&amp;lt;form action=&quot;sqlTool.jsp&quot; method=&quot;POST&quot;&amp;gt;&lt;br /&gt;                            Practice area:&amp;lt;br&amp;gt;&lt;br /&gt;                            &amp;lt;textarea name=&quot;client&quot; rows=&quot;10&quot; cols=&quot;50&quot;&amp;gt;&amp;lt;%=request.getParameter(&quot;client&quot;)%&amp;gt;&amp;lt;/textarea&amp;gt;&lt;br /&gt;                    &amp;lt;input type=&quot;submit&quot; value=&quot;Test&quot; name=&quot;OK&quot; /&amp;gt;&amp;lt;/form&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;                &amp;lt;/tr&amp;gt;&lt;br /&gt;            &amp;lt;/tbody&amp;gt;&lt;br /&gt;        &amp;lt;/table&amp;gt;&lt;br /&gt;    &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://fell0206.blogspot.com/feeds/1546749941811091240/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3596191417578719121/1546749941811091240' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/1546749941811091240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/1546749941811091240'/><link rel='alternate' type='text/html' href='http://fell0206.blogspot.com/2009/07/websql.html' title='簡意的WEB版SQL練習程式'/><author><name>fell0206</name><uri>http://www.blogger.com/profile/09949035149047857632</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3596191417578719121.post-5358006078647306332</id><published>2009-07-05T02:32:00.000-07:00</published><updated>2009-07-05T02:43:21.479-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JSP"/><category scheme="http://www.blogger.com/atom/ns#" term="MySQL"/><title type='text'>讓JSP連MySQL設定過程 for WIN</title><content type='html'>在執行以下動作時,請確定以可以執行JSP的網頁:&lt;br /&gt;1.至MySQL的網站中找到&lt;a href=&quot;http://www.mysql.com/products/connector/&quot; target=&quot;_blank&quot;&gt;MySQL Connectors&lt;/a&gt;&lt;div&gt;2.將JDBC Driver for MySQL (Connector/J)下載下來&lt;/div&gt;&lt;div&gt;3.將抓下來的檔案放在Tomcat/lib/底下(以我的PC為例:C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib)&lt;/div&gt;&lt;div&gt;4.在&quot;環境變數&quot;中,將該檔加入即可&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fell0206.blogspot.com/feeds/5358006078647306332/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3596191417578719121/5358006078647306332' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/5358006078647306332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/5358006078647306332'/><link rel='alternate' type='text/html' href='http://fell0206.blogspot.com/2009/07/jspmysql-for-win.html' title='讓JSP連MySQL設定過程 for WIN'/><author><name>fell0206</name><uri>http://www.blogger.com/profile/09949035149047857632</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3596191417578719121.post-6253943472778999259</id><published>2009-06-23T23:58:00.000-07:00</published><updated>2009-06-24T00:07:51.298-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JSP"/><category scheme="http://www.blogger.com/atom/ns#" term="MySQL"/><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><title type='text'>MySQL for Windows啟動教學</title><content type='html'>近日在Win XP上裝了MySQL,但問題來了,透過[開始]-&gt;[程式集]-&gt;[MySQL]-&gt;[MySQL Server 5.1],並無任何的Start、Stop之類的選項,所以每當我一重開機,可能就要重新透過&quot;精靈&quot;來安裝一次,還好,在網路上找了許久,終於找到Command指令了,如下:(以下動作皆在DOS下操作(命令提式字元))&lt;br /&gt;&lt;pre name=&#39;code&#39; class=&#39;java&#39;&gt;&lt;br /&gt;//Start MySQL&lt;br /&gt;net start mysql&lt;br /&gt;&lt;br /&gt;//Stop MySQL&lt;br /&gt;net stop mysql&lt;br /&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://fell0206.blogspot.com/feeds/6253943472778999259/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3596191417578719121/6253943472778999259' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/6253943472778999259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/6253943472778999259'/><link rel='alternate' type='text/html' href='http://fell0206.blogspot.com/2009/06/mysql-for-windows.html' title='MySQL for Windows啟動教學'/><author><name>fell0206</name><uri>http://www.blogger.com/profile/09949035149047857632</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3596191417578719121.post-547449127048170605</id><published>2009-06-15T23:41:00.000-07:00</published><updated>2009-06-16T01:49:17.570-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="Socket"/><title type='text'>簡易的掃Port程式</title><content type='html'>小弟最近在學Java Socket,而Socket主要就是在做網路的相關操作,而以下是一個簡單的檢查電腦Port是否開啟的小程式:&lt;br /&gt;&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&lt;br /&gt;/*&lt;br /&gt; * To change this template, choose Tools | Templates&lt;br /&gt; * and open the template in the editor.&lt;br /&gt; */&lt;br /&gt;&lt;br /&gt;import java.net.*;&lt;br /&gt;import java.io.*;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; *&lt;br /&gt; * @author 111&lt;br /&gt; */&lt;br /&gt;public class ScanPort_DOS {&lt;br /&gt;&lt;br /&gt;    public ScanPort_DOS() {&lt;br /&gt;        for (int i = 0; i &lt; 1025; i++) {&lt;br /&gt;            try {&lt;br /&gt;                Socket sk = new Socket(&quot;127.0.0.1&quot;, i);&lt;br /&gt;                System.out.println(&quot;Port:&quot; + i + &quot; Open&quot;);&lt;br /&gt;            } catch (IOException e) {&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public static void main(String[] args) {&lt;br /&gt;        new ScanPort_DOS();&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;執行畫面如下:&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiV0ybWdNa530mp6BPsGi-SfSAAYzWKUl2KIE9EfTd5_7HNszshpeC25t2CLnYakK4e7ujxqGqVwld6H3ILgioSizLZ1h2KiXoXMUbQCXMnPRsDqbNhsrWXnhBy3jnO7iO7fMJ94rV-Ujo/s1600-h/ScanPort_DOS.JPG&quot;&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9zKeJZfpY2GvQQV_M1HXOHFA6BVRolqfvCuNMh4hfpYE79aD13biNosEhcvo0R09oZPjacc_H2fXmU2-_D0I_9ksmBgwlAitH34sraD8q_804_omw77aFQPJWkTxDFa6TpywE6IlHDxU/s1600-h/ScanPort_DOS.JPG&quot;&gt;&lt;img style=&quot;MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 206px; CURSOR: hand&quot; id=&quot;BLOGGER_PHOTO_ID_5347843924530307458&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9zKeJZfpY2GvQQV_M1HXOHFA6BVRolqfvCuNMh4hfpYE79aD13biNosEhcvo0R09oZPjacc_H2fXmU2-_D0I_9ksmBgwlAitH34sraD8q_804_omw77aFQPJWkTxDFa6TpywE6IlHDxU/s320/ScanPort_DOS.JPG&quot; /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://fell0206.blogspot.com/feeds/547449127048170605/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3596191417578719121/547449127048170605' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/547449127048170605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/547449127048170605'/><link rel='alternate' type='text/html' href='http://fell0206.blogspot.com/2009/06/port.html' title='簡易的掃Port程式'/><author><name>fell0206</name><uri>http://www.blogger.com/profile/09949035149047857632</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9zKeJZfpY2GvQQV_M1HXOHFA6BVRolqfvCuNMh4hfpYE79aD13biNosEhcvo0R09oZPjacc_H2fXmU2-_D0I_9ksmBgwlAitH34sraD8q_804_omw77aFQPJWkTxDFa6TpywE6IlHDxU/s72-c/ScanPort_DOS.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3596191417578719121.post-7030855936558800724</id><published>2009-05-09T20:30:00.000-07:00</published><updated>2009-05-09T20:37:35.511-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Virus"/><title type='text'>如何解lhgjyit0.dll?</title><content type='html'>近日小弟的PC某名奇妙的中了這種Virus,本來想說&quot;小紅傘&quot;刪掉了,應該就OK了!結果隔天開機,就完了,不斷跳出抓到Virus的視窗,後來在網路上找了一下解法,試了之後,PC就沒什麼問題了,在此分想我找到的解法:&lt;br /&gt;LHGJYIT0.DLL&lt;br /&gt;檢查方式：&lt;br /&gt;[開始/所有程式/附屬應用程式/命令提示字元]開啟一個「DOS視窗」。&lt;br /&gt;輸入&lt;br /&gt;c:&lt;br /&gt;attrib *.*&lt;br /&gt;檢查是否中毒。&lt;br /&gt;&lt;br /&gt;刪除方式：&lt;br /&gt;[一]&lt;br /&gt;[開始/執行]&lt;br /&gt;輸入「regedit」開啟「登錄編輯式」，&lt;br /&gt;依序找到「HCU\Software\Microsoft\Windows\CurrentVersion\Run」，在「dorfgwe」這個機碼按右鍵〔刪除〕機碼。&lt;br /&gt;&lt;br /&gt;[二]&lt;br /&gt;[開始/所有程式/附屬應用程式/命令提示字元]開啟一個「DOS視窗」。&lt;br /&gt;c:&lt;br /&gt;cd \windows\system32&lt;br /&gt;attrib -s -h -r uret*.exe&lt;br /&gt;del uret*.exe&lt;br /&gt;attrib -s -h -r lhg*.dll&lt;br /&gt;del lhg*.dll&lt;br /&gt;cd \&lt;br /&gt;attrib -s -h -r autorun.inf&lt;br /&gt;del autorun.inf&lt;br /&gt;&lt;br /&gt;attrib -s -h -r 6vu*.com&lt;br /&gt;del 6vu*.com&lt;br /&gt;&lt;br /&gt;6VU*.COM  DGF.EXE 等都是其病毒名稱。&lt;br /&gt;&lt;br /&gt;d: 同以上c:作法刪除autorun.inf和xxxx.com&lt;br /&gt;e: f: g: 如果還有的話也一樣&lt;br /&gt;&lt;br /&gt;資料來源:&lt;br /&gt;&lt;a href=&quot;http://blog.xuite.net/littlepan/Rocksoulforever/22319687&quot;&gt;搖滾吧靈魂&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.wretch.cc/blog/f19870421/10746217&quot;&gt;f19870421&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://fell0206.blogspot.com/feeds/7030855936558800724/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3596191417578719121/7030855936558800724' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/7030855936558800724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/7030855936558800724'/><link rel='alternate' type='text/html' href='http://fell0206.blogspot.com/2009/05/lhgjyit0dll.html' title='如何解lhgjyit0.dll?'/><author><name>fell0206</name><uri>http://www.blogger.com/profile/09949035149047857632</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3596191417578719121.post-2228980139650652804</id><published>2009-02-24T09:41:00.000-08:00</published><updated>2009-02-24T09:42:21.586-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Imformation"/><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft"/><title type='text'>傳Windows7 RC版官方發佈時間4月10日</title><content type='html'>作業系統一直是電腦使用者的關心焦點，軟在今年1月29日釋出Windows 7全民測試版後，這段期間並未有其他任何版本，最新傳出最終的RC版（release candidate）官方發佈日期為2009年4月10日，消息來源是來自微軟內部人員。&lt;br /&gt;領導Windows 7開發工作的執行總裁Steven Sinofsky一直對外表示，微軟現正專注於RC階段的研發，但沒有具體時間表。&lt;br /&gt;不過，微軟內部消息人士說，RC版正在測試當中，雖然2月底仍無法定型，但是如果不出現重大問題，則會按照官方內定的4月10日正常發布。&lt;br /&gt;到目前為止，微軟仍然堅持2010年第一季出貨Windows 7，但是根據報導，beta版非常穩定，優於Vista，因此市場仍是預估，Windows 7 RTM正式版將於今年底前上市，最快是在聖誕購物旺季前發布。&lt;br /&gt;此外，有網友使用Windows 7測試版後發現，Windows 7使用者帳戶管理系統（UAC）其中的一個訊息管理功能存有安全漏洞問題，可輕易被惡意程式以Visual Basic編碼發送假按鍵訊息的方式來開啟UAC介面，然後可關閉保護設定，甚至重新開機，進而取得系統帳戶最高權限。&lt;br /&gt;不過，微軟的回應是，這是從Vista使用UAC以來的更新，原本設計概念就是如此，並非所謂的安全漏洞，如果要如其所指那樣可不知不覺地關閉UAC，那麼駭客必須已經透過其他漏洞入侵電腦並植入惡意程式&lt;br /&gt;資料來源:&lt;a href=&quot;http://tw.news.yahoo.com/article/url/d/a/090224/17/1f0cv.html&quot; target=&quot;_blank&quot;&gt;http://tw.news.yahoo.com/article/url/d/a/090224/17/1f0cv.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://fell0206.blogspot.com/feeds/2228980139650652804/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3596191417578719121/2228980139650652804' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/2228980139650652804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/2228980139650652804'/><link rel='alternate' type='text/html' href='http://fell0206.blogspot.com/2009/02/windows7-rc410.html' title='傳Windows7 RC版官方發佈時間4月10日'/><author><name>fell0206</name><uri>http://www.blogger.com/profile/09949035149047857632</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3596191417578719121.post-747871031777353860</id><published>2009-02-24T09:38:00.000-08:00</published><updated>2009-02-24T09:40:43.041-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Virus"/><title type='text'>PDF檔案近來不要直接線上開啟 當機時就遭駭客植入木馬</title><content type='html'>趨勢科技今發佈一線上文件的駭客攻擊事件緊急提出警告，趨勢科技指出，駭客近來針對Adobe Acrobat相關系列產品展開安全漏洞攻擊，如果使用者在線上直接開啟PDF檔的文件，就可能造成電腦當機的現象，PDF檔案也無法開啟，在這個當下，就可能遭受駭客植入BKDR_NETCL.A、EXPL_EXECOD、AJS_SHELLCOD.JS、TROJ_AGENT.ZWQA、 TROJ_FAKEAV.LKQQ 等五隻惡意程式，要使用者格外小心，最近千萬不要直接在線上開啟PDF檔案。&lt;br /&gt;趨勢科技發現有關安全漏洞的產品包括Adobe Acrobat Pro 9.0.0、Adobe Acrobat Reader 9.0.0、Adobe Acrobat Pro Extended 9.0.0、Adobe Acrobat Standard 9.0.0等產品，除了9.0版本之外，更早期的版本也都在安全漏洞的攻擊之中。&lt;br /&gt;使用者的電腦一旦被植入木馬，除了可能被盜竊個人資料之外，使用者的電腦更可能成為駭客發送垃圾郵件的僵屍電腦。&lt;br /&gt;趨勢科技也提醒使用者，除了近期不要在線上直接開啟PDF文件檔之外，也盡快用掃毒軟體進行掃毒，並且隨時留意Adobe官方所釋出的安全漏洞修補程式，以隨時更新。&lt;br /&gt;資料來源:&lt;a href=&quot;http://tw.news.yahoo.com/article/url/d/a/090224/35/1ezt9.html&quot; target=&quot;_blank&quot;&gt;http://tw.news.yahoo.com/article/url/d/a/090224/35/1ezt9.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://fell0206.blogspot.com/feeds/747871031777353860/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3596191417578719121/747871031777353860' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/747871031777353860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/747871031777353860'/><link rel='alternate' type='text/html' href='http://fell0206.blogspot.com/2009/02/pdf.html' title='PDF檔案近來不要直接線上開啟 當機時就遭駭客植入木馬'/><author><name>fell0206</name><uri>http://www.blogger.com/profile/09949035149047857632</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3596191417578719121.post-8096899071229308562</id><published>2009-02-21T04:03:00.000-08:00</published><updated>2009-02-21T04:16:53.718-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Excel"/><category scheme="http://www.blogger.com/atom/ns#" term="Other"/><title type='text'>Excel的圖表無法移動?</title><content type='html'>今日女友問我一個問題,主要就是她在練乙檢的時候,為什麼所產生的圖表無法移動?好比說&quot;圖例無法移動&quot;,不過我和Excel不太熟,經過幾次嘗試後,我決定上網找解法,後來在微軟的網站上找到了答案:&lt;br /&gt;&lt;strong&gt;當您建立圖表，以根據樞紐分析表報表時，您無法移動或調整某些樞紐分析圖物件。&lt;/strong&gt;&lt;br /&gt;所以我的方法是將資料COPY出來,再用COPY出來的資料當成圖表的Data Source,這樣就解決了.&lt;br /&gt;資料來源:&lt;a href=&quot;http://support.microsoft.com/kb/199201/zh-tw&quot; target=&quot;_blank&quot;&gt;http://support.microsoft.com/kb/199201/zh-tw&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://fell0206.blogspot.com/feeds/8096899071229308562/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3596191417578719121/8096899071229308562' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/8096899071229308562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/8096899071229308562'/><link rel='alternate' type='text/html' href='http://fell0206.blogspot.com/2009/02/excel.html' title='Excel的圖表無法移動?'/><author><name>fell0206</name><uri>http://www.blogger.com/profile/09949035149047857632</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3596191417578719121.post-3172667687354060639</id><published>2009-02-07T21:21:00.000-08:00</published><updated>2009-02-07T21:35:52.613-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><title type='text'>PHP寄信亂碼如何處理?</title><content type='html'>日前被老師告知,線上回覆系統的寄信功能,主旨部份出現了亂碼,這在PHP中是個麻煩的問題,但既然出現了問題,總是要解決,於是在網路上找了一段時間,終於被我找到了,主要是透過以下兩個函式:&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;php&quot;&gt;&lt;br /&gt;mb_internal_encoding();&lt;br /&gt;mb_send_mail();//寄出信件&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;以下是一般的寄件方式:&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;php&quot;&gt;&lt;br /&gt;$to=$addredd;&lt;br /&gt;$subject = &quot;Re:XXX&quot;;&lt;br /&gt;$message = &quot;Your PASSWORD is:&quot;.$ps.&quot; Please change your PASSWORD.&quot;;&lt;br /&gt;$from = &quot;admin@project.com&quot;;&lt;br /&gt;$headers = &quot;From: $from&quot;;&lt;br /&gt;mail($to,$subject,$message,$headers);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;用以上的方法會出有亂碼產生,只要修改一下,就OK了:&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;php&quot;&gt;&lt;br /&gt;$to=$addredd;&lt;br /&gt;$subject = &quot;Re:XXX&quot;;&lt;br /&gt;$message = &quot;Your PASSWORD is:&quot;.$ps.&quot; Please change your PASSWORD.&quot;;&lt;br /&gt;$from = &quot;admin@project.com&quot;;&lt;br /&gt;$headers = &quot;From: $from&quot;;&lt;br /&gt;mb_internal_encoding(&quot;BIG-5&quot;);//設定編碼方式&lt;br /&gt;mb_send_mail($to,$subject,$message,$headers);//寄出信件&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;資料來源:&lt;a href=&quot;http://www.wretch.cc/blog/Linpy/10919198&quot;&gt;http://www.wretch.cc/blog/Linpy/10919198&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://fell0206.blogspot.com/feeds/3172667687354060639/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3596191417578719121/3172667687354060639' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/3172667687354060639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/3172667687354060639'/><link rel='alternate' type='text/html' href='http://fell0206.blogspot.com/2009/02/php.html' title='PHP寄信亂碼如何處理?'/><author><name>fell0206</name><uri>http://www.blogger.com/profile/09949035149047857632</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3596191417578719121.post-8345088469850026520</id><published>2009-01-24T08:15:00.000-08:00</published><updated>2009-01-24T08:22:11.358-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Imformation"/><category scheme="http://www.blogger.com/atom/ns#" term="Other"/><category scheme="http://www.blogger.com/atom/ns#" term="Surprise"/><title type='text'>MSN Web Messenger</title><content type='html'>最近小弟發現微軟推出了Web版的MSN,經小弟試用,還不錯,但用FireFox似乎無法打字,不過用IE就沒問題了:&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Web Messenger 和 Messenger 有什麼不同？&lt;/span&gt;&lt;br /&gt;MSN Messenger 是擁有完整功能的即時傳訊軟體。您可以安裝在自己或您有權限安裝的電腦上。MSN Web Messenger 則是讓您不必安裝任何軟體就可以在瀏覽器上迅速簡單地使用即時傳訊的基本功能。&lt;br /&gt;資料來源：&lt;a href=&quot;http://webmessenger.msn.com/default.aspx?R=1&quot; target=&quot;_blank&quot;&gt;http://webmessenger.msn.com/default.aspx?R=1&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://fell0206.blogspot.com/feeds/8345088469850026520/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3596191417578719121/8345088469850026520' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/8345088469850026520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/8345088469850026520'/><link rel='alternate' type='text/html' href='http://fell0206.blogspot.com/2009/01/msn-web-messenger.html' title='MSN Web Messenger'/><author><name>fell0206</name><uri>http://www.blogger.com/profile/09949035149047857632</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3596191417578719121.post-95819111162786475</id><published>2009-01-18T17:39:00.000-08:00</published><updated>2009-01-18T17:44:56.512-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><category scheme="http://www.blogger.com/atom/ns#" term="Virus"/><title type='text'>快速刪除kavo.exe!</title><content type='html'>之前因無法登入Yahoo即時通,上網查了一下,發現是中了kavo的病毒,而小弟我有找到一位大大所寫出來的小程式,很方便,它會不定期更新:&lt;br /&gt;&lt;a href=&quot;http://www.webrush.net/game76420/p_20080819024613316222&quot; target=&quot;_blank&quot;&gt;書維的部落格&lt;/a&gt;&lt;br /&gt;資料來源:&lt;a href=&quot;http://www.webrush.net/game76420/p_20080819024613316222&quot; target=&quot;_blank&quot;&gt;書維的部落格&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://fell0206.blogspot.com/feeds/95819111162786475/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3596191417578719121/95819111162786475' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/95819111162786475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/95819111162786475'/><link rel='alternate' type='text/html' href='http://fell0206.blogspot.com/2009/01/kavoexe.html' title='快速刪除kavo.exe!'/><author><name>fell0206</name><uri>http://www.blogger.com/profile/09949035149047857632</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3596191417578719121.post-4539687612012222935</id><published>2009-01-11T06:23:00.000-08:00</published><updated>2009-01-11T06:26:00.497-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cloud Computing"/><title type='text'>Google雲端運算的關鍵：從軟體層突破硬體限制</title><content type='html'>文/王宏仁 (記者) 2008-05-19 &lt;br /&gt;Google與Yahoo相繼在臺灣推廣雲端運算，培養平行運算的開發人力。Google建議中小企業應該善用雲端運算的服務，而Yahoo也建議企業可使用雲端運算處理大量批次資料。 &lt;br /&gt;繼上個月Yahoo來臺推廣雲端運算之後，Google全球副總裁李開復也趁Google臺灣辦公室落成的同時，發表演講介紹Google的雲端運算服務。&lt;br /&gt;李開復表示，雲端運算的特色是以服務為中心來創造軟體應用。他說：「包括6項特性：以用戶為中心、任務為中心、性能強大、智慧化、廉價硬體、平行處理。」他進一步解釋，當使用者透過瀏覽器使用Google服務時，Google透過平行處理技術，將使用者的指令分派到上千臺電腦上執行，讓使用者存取大量資料時，又能有很高的效率，例如Gmail使用雲端運算的技術，即使有上百萬使用者，登入不用幾秒鐘就能完成密碼確認。&lt;br /&gt;為了能讓網路應用服務處理大量使用者和大量資訊，Google雲端運算的前提，假定每個系統每天都有可能故障，再利用軟體層來創造容錯，並且將機器設備標準化，隨著資料量增加，只需要不斷擴充機器，幾乎不需要修改原來的應用程式。這個軟體層包括3項技術：Google文件系統（GFS）、分散式資料庫Google BigTable，以及MapReduce。&lt;br /&gt;透過雲端運算技術，Google能做出供全球使用的服務，這也讓Google找到產品免費的營運模式。李開復認為中小企業可以善用這些免費產品，將繁瑣的IT日常服務，例如企業郵件轉移到Google或其他服務供應商，不需要自行維護系統。&lt;br /&gt;這並非是Google第一次在臺灣介紹雲端技術，今年初Google已經舉辦過雲端運算技術的研討會，同時也和臺灣大學、交通大學的教授合作，在大學部課程中，教授相關技術。&lt;br /&gt;除了Google在臺推廣雲端運算技術之外，稍早在四月初時，Yahoo也從印度分公司派出雲端運算的開源平臺Hadoop作者之一Vivek Ratan，來臺向開發人員介紹雲端運算技術與Hadoop使用經驗。Vivek說：「任何企業有需要批次處理的巨量資料，都可以利用Hadoop，自行建置一套雲端運算平臺來作資料探勘的分析。」目前最大規模的Hadoop應用，是Yahoo結合上千臺伺服器，使用1萬多個Linux核心來處理5 Petabytes的網頁索引資料，不過，Vivek表示目前使用的企業，大多使用20~100臺伺服器，就可以建置出夠用的雲端運算環境。&lt;br /&gt;Google和Yahoo還將在臺灣舉辦開發者日，更進一步的介紹更多雲端運算技術的細節。Google將於6月14日在臺北國際會議中心舉辦臺北程式開發日，Yahoo則預定於今年下半年舉辦。文⊙王宏仁&lt;br /&gt;資料來源:&lt;br /&gt;&lt;a href=&quot;http://www.ithome.com.tw/itadm/article.php?c=48970&quot; target=&quot;_blank&quot;&gt;http://www.ithome.com.tw/itadm/article.php?c=48970&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://fell0206.blogspot.com/feeds/4539687612012222935/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3596191417578719121/4539687612012222935' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/4539687612012222935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/4539687612012222935'/><link rel='alternate' type='text/html' href='http://fell0206.blogspot.com/2009/01/google.html' title='Google雲端運算的關鍵：從軟體層突破硬體限制'/><author><name>fell0206</name><uri>http://www.blogger.com/profile/09949035149047857632</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3596191417578719121.post-3197515524406907699</id><published>2009-01-11T06:21:00.000-08:00</published><updated>2009-01-11T06:22:47.681-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cloud Computing"/><title type='text'>雲端運算</title><content type='html'>文 / 蔡學鏞&lt;br /&gt;&lt;br /&gt;★ 這是舊文章的改版&lt;br /&gt;&lt;br /&gt;雲（Cloud）是網路的象徵，所以雲端運算（Cloud Computing），最廣義的解釋就是「網路運算」。這恐怕是目前大家對於雲端運算的最大公約數，在這之外，大家對於雲端運算的理解和定義，都不太一樣。這篇文章試圖用最淺顯的方式，向大家說明我所知道的雲端運算。&lt;br /&gt;&lt;br /&gt;【雲端的組成與架構】&lt;br /&gt;網路是由許多伺服器所組成，雲端運算的基礎是大量的伺服器。如果只用一部超級電腦當伺服器，一樣可以提供相當大的運算威力，這樣可以算是雲端嗎？恐怕不行，因為雲端運算強調的是許多伺服器聯合起來提供強大的運算能力。只有一部超級電腦或少數幾部電腦，恐怕太薄弱，無法形成雲，充其量是「水蒸氣」。&lt;br /&gt;&lt;br /&gt;良好的雲端運算架構方式，必須具備規模彈性、容錯、平衡負載：&lt;br /&gt;1 當運算規模增加，雲端要可以彈性變大，只要加上新的節點就可以了，這樣的能力稱為水準擴充（horizontal scalability）。&lt;br /&gt;2 資料重複（redundancy）存放在不同位置，確保資料安全。&lt;br /&gt;3 讓伺服器之間的負載盡量平衡，免得某些伺服器太忙，某些卻太悠閒。&lt;br /&gt;&lt;br /&gt;【雲端的前世今生】&lt;br /&gt;既然雲端運算是將許多電腦聯合起來提供運算能力，那麼就會用到網格運算（grid computing）。比較知名的網格運算應該是SETI（尋找外星人）計畫，幾年前SETI流行時，許多人的電腦都下載安裝了SETI程式，奉獻出電腦多餘的運算能力，為尋找外星人這種無聊之舉貢獻心力。&lt;br /&gt;&lt;br /&gt;以往的網格運算似乎是供專家使用居多，著重在需要複雜運算的「單一任務」，例如基因定序、核爆模擬。但雲端運算則比較偏大眾應用，相當高比例的大眾應用其實不需要進行複雜的運算，但是由於「大眾」相當多，所以累積起來的運算需求也相當可觀。所以在應用上，雲端運算可以被視為平民化的網格運算。&lt;br /&gt;&lt;br /&gt;除了上述的差別，雲端運算和網格運算的差別還有兩點。第一，為了方便管理，並充分運用伺服器的效能，雲端運算也經常會使用到「虛擬化」技術。第二，以往的網格運算通常也只使用專屬的應用協定和資料格式，但雲端運算則受到近年Web潮流的影響很深。&lt;br /&gt;&lt;br /&gt;【雲端的操作介面】&lt;br /&gt;雲端運算的願景是以Web為前端，資料全都放在後端，不放在使用者手上。如此一來使用者可以不用擔心不同裝置上資料同步化的問題，也可以隨時取用資料（如果網路沒斷線的話）。既然資料都放在雲端，運算都在雲端進行也就理所當然。因為這樣的效率最好，可以減少資料在使用者和雲端之間的傳輸。&lt;br /&gt;&lt;br /&gt;至於Web前端，微軟和Adobe等公司會希望你使用他們各自的RIA技術，但IBM、Google、Apple等沒有RIA技術的廠商，則會希望你使用Web瀏覽器（JavaScript/CSS/HTML），以免被（其他）廠商綁死。&lt;br /&gt;&lt;br /&gt;操作介面的程式碼透過Web Browser動態地送到客戶端執行，重要的邏輯部分放在Web伺服器上。這樣的運作方式，其實就是SaaS。所以雲端運算和SaaS是相輔相成的技術概念。&lt;br /&gt;&lt;br /&gt;除了Web瀏覽器和RIA之外，許多標準的應用也會隨著雲端運算的興起，開始支援從雲端開啟文件，或寫入文件到雲端，這些讀寫的動作會透過標準的HTTP協定、FTP協定、或WebDAV來達成。說不定以後軟體在「File」選單中，除了「Save」、「Save As」之外，還會多出一個「Save To Cloud」。&lt;br /&gt;&lt;br /&gt;【雲端的隱憂】&lt;br /&gt;但是雲端畢竟是在遠方，資料的存取速度自然遠比不上自己電腦上的硬碟。所以除非客戶端連線到雲端的速度夠快，否則這會成為推廣雲端運算的障礙。更不用提萬一像Google App Engine來個大斷線、或者太平洋海底光纖斷線，頓時白雲變烏雲，你可就求救無門了。&lt;br /&gt;&lt;br /&gt;在雲端的廠商會將服務列在網頁上，讓你選擇要執行的程式。這些雲端上的程式都可以設定參數，以記錄你的名稱、喜好，以提供更好的服務。甚至過去的一舉一動，也會被記錄下來，你的隱私資料成為廠商的資產。如果公司利用雲端處理ERP/CRM等資料，那麼公司的運作機密以及客戶資料也都會被雲端的廠商知道。是的，雲端廠商都會強調他們重視顧客的權益，這就看你信不信了。&lt;br /&gt;&lt;br /&gt;除了可以使用廠商原本就提供的雲端程式，利用參數設定來符合自己需求之外，你也可以上傳程式到雲端。Google App Engine允許你將程式上傳到雲端，在雲端執行。使用Google App Engine，可以省去你建置與管理伺服器的困擾。上傳程式一樣有暴露機密的可能，如果你是一家搜尋引擎的公司，你發明瞭比Google更準確的搜尋演算法，你敢把這樣的服務放到Google的雲端上，只是為了省去「建置與管理伺服器的困擾」嗎？&lt;br /&gt;&lt;br /&gt;【雲端對軟體開發者的影響】&lt;br /&gt;你想用什麼方式實踐你的雲端系統，會受到雲端供應商（Cloud Provider）的平台限制。&lt;br /&gt;&lt;br /&gt;雲端供應商提供這類的服務，都會限定所使用的語言和框架。Google目前只支援Python和相關的Web框架。以後才會支援其他語言和框架。Python是最適合雲端的語言嗎？恐怕不是，但應該已經符合大眾的需求。&lt;br /&gt;&lt;br /&gt;你的Python程式會被Google複製到不同的伺服器上各自執行，這樣的程式無法協同完成一件複雜的任務（例如基因定序）。比較適合雲端的語言其實是函數式語言，例如Erlang。而微軟預計會以F#當作雲端運算的語言。&lt;br /&gt;&lt;br /&gt;另外，最厲害的雲端運算設計方式，甚至會向Mobile Agent技術借鏡，讓程式碼可以流動。我認為能結合Mobile Agent的雲端，才是真正先進的雲端。&lt;br /&gt;&lt;br /&gt;【雲端的商業模式】&lt;br /&gt;雲端運算會讓軟體產業由原本的「銷售套裝軟體」改成「銷售服務與租賃軟體」。在這樣的商業模式之下，牽涉到的業者包括了ISP（Internet Service Provider）、ASP（Application Service Procider）、DSP（Data Service Provider）、以及Cloud Provider，形成一個緊密的產業結構，由ISP提供網路（例如ADSL）、ASP提供軟件、DSP提供資料、Cloud Provider提供運算能力。&lt;br /&gt;&lt;br /&gt;【為何雲端紅了】&lt;br /&gt;雲端運算「這個名詞」在這兩年會這麼紅，主要是因為Web的興起所帶動的。近年Web化的趨勢是將資料都放在伺服器上，既然資料都在伺服器上，運算最好要在接近資料的地方進行，所以運算也在伺服器上才是比較好的作法。運算完成之後，將運算後的結果傳遞到客戶端即可。伺服器需要龐大的運算能力才能應付眾多使用者所提出的運算需求，所以需要將許多伺服器串接起來。&lt;br /&gt;&lt;br /&gt;剛剛提到，運算必須要是在伺服器上進行，而不是在客戶端進行。把所有的資料都送到客戶端，然後才在客戶端進行處理，這是不合理的，因為：&lt;br /&gt;1. 資料量相當大，傳輸的速度會相當慢&lt;br /&gt;2. 客戶端的電腦不見得有運行此程式的能力&lt;br /&gt;3. 有資料保密和程式邏輯保密的風險。&lt;br /&gt;從這個角度來看，雲端運算勢在必行，要紅是遲早的事。儘管目前雲端運算有一點渾沌不明，但我不認為雲端運算會是曇花一現。&lt;br /&gt;&lt;br /&gt;【雲端何時成熟】&lt;br /&gt;儘管雲端運算不會只是曇花一現，但是要多久的時間才能成熟，就相當難以估計。我個人認為目前雲端運算還只是在萌發時期，要到達成熟還有很長的一段時間，雲端運算需要企業做出相當多改變，加上目前的國際經濟局勢相當糟糕，可能會持續好幾年的時間，在這段時間內，多數企業會保守因應新技術和新市場，所以沒有幾年以上的時間，我們很難看到雲端運算的實際成績。&lt;br /&gt;&lt;br /&gt;綜觀目前的狀況，雲端運算正在一團雲霧之中，渾沌未明。雲端運算目前充滿不確定因素，太多事情的發展很難預料。我認為，妄想漫步在雲端，而太早踏入，小心你一腳踩空。&lt;br /&gt;&lt;br /&gt;當經濟局勢穩定，且提倡雲端運算的這些廠商能夠彼此坐下來談，定義出一套雲端運算的標準時（Protocol、API…），或許才是大多數的企業應該投入雲端運算的時候。&lt;br /&gt;資料來源:&lt;br /&gt;&lt;a href=&quot;http://jerrylovesrebol.blogspot.com/2008/12/blog-post_02.html&quot; target=&quot;_blank&quot;&gt;http://jerrylovesrebol.blogspot.com/2008/12/blog-post_02.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://fell0206.blogspot.com/feeds/3197515524406907699/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3596191417578719121/3197515524406907699' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/3197515524406907699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3596191417578719121/posts/default/3197515524406907699'/><link rel='alternate' type='text/html' href='http://fell0206.blogspot.com/2009/01/blog-post_11.html' title='雲端運算'/><author><name>fell0206</name><uri>http://www.blogger.com/profile/09949035149047857632</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>