<!--3.2.1 WordPress 404 Handler-->
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>羽毛の家</title>
	<atom:link href="http://www.yumao.name/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.yumao.name</link>
	<description>Yumao′s Blog</description>
	<lastBuildDate>Sat, 19 May 2012 00:59:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Hello Struts2</title>
		<link>http://www.yumao.name/read/hello-struts2/</link>
		<comments>http://www.yumao.name/read/hello-struts2/#comments</comments>
		<pubDate>Sat, 19 May 2012 00:55:12 +0000</pubDate>
		<dc:creator>Yumao</dc:creator>
				<category><![CDATA[Java Language]]></category>
		<category><![CDATA[action]]></category>
		<category><![CDATA[jsp]]></category>
		<category><![CDATA[ognl]]></category>
		<category><![CDATA[struts]]></category>
		<category><![CDATA[struts2]]></category>

		<guid isPermaLink="false">http://www.yumao.name/?p=1057</guid>
		<description><![CDATA[序 1)為什麼需要Struts框架 企業需求,利用Struts框架可以簡化開發 2)如何學習Struts 先學習如何使用,有餘力再了解一些實現原理. 1.MVC設計思想在JavaWeb開發當中的使用 1&#41;什麼是MVC? 是一種設計思想,非常優秀的設計思想.根據職責不同將應用程序的組件分成三部分. Model模型:負責業務數據和業務處理. View視圖:負責顯示和接收用戶輸入. Controller控制器:協調模型和視圖 2&#41;MVC在JavaWeb中的體現 Model:DAO,Entity,Util View:JSP Controller:Servlet 示例程序:ShoppingCart,控制器過於複雜,包含大量的if...else, 不適合大型複雜程序的開發. 採用XML+Servlet+Action結構改造控制實現 *3&#41;MVC工作的基本流程 a.客戶端發請求,請求交給前端控制器處理 b.前端控制器維護一個XML配置文件 &#40;XML定義了請求和Action之間的對應關係&#41; c.前端控制根據請求調用相應的Action組件,執行請求處理 d.Action處理完畢,可以將處理結果存放到Request e.控制器調用相應的視圖JSP,進行響應處理 4&#41;Struts框架封裝了上述主要流程和結構 &#160; 2.Struts2入門示例 HelloWorld 1&#41;Struts2發展史 Struts1.2 WebWork--&#62;xwork&#40;命令模式實現&#41; Struts2 2&#41;入門示例 a.引入框架開發包&#40;5個核心包&#41; 2.1.8版本 struts2-core-2.1.8.jar xwork-core-2.1.6.jar commons-fileupload-1.2.1.jar freemarker-2.3.15.jar&#40;模板視圖技術,等價於JSP功能&#41; ognl-2.7.3.jar&#40;與EL相似,但是功能強大&#41; b.在web.xml中添加控制器配置 &#60;filter&#62; &#60;filter-name&#62;strutsfilter&#60;/filter-name&#62; &#60;filter-class&#62; org.apache.struts2.dispatcher.ng.filter. StrutsPrepareAndExecuteFilter &#60;/filter-class&#62; &#60;/filter&#62; &#60;filter-mapping&#62; &#60;filter-name&#62;strutsfilter&#60;/filter-name&#62; &#60;url-pattern&#62;//*&#60;/url-pattern&#62; &#60;/filter-mapping&#62; c.創建Action 創建WelcomeAction類,添加默認execute方法 [...]]]></description>
		<wfw:commentRss>http://www.yumao.name/read/hello-struts2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hello JQuery Day01~Day03</title>
		<link>http://www.yumao.name/read/hello-jqery-day01day03/</link>
		<comments>http://www.yumao.name/read/hello-jqery-day01day03/#comments</comments>
		<pubDate>Thu, 17 May 2012 01:39:09 +0000</pubDate>
		<dc:creator>Yumao</dc:creator>
				<category><![CDATA[Java Language]]></category>
		<category><![CDATA[jq]]></category>
		<category><![CDATA[jqery]]></category>

		<guid isPermaLink="false">http://www.yumao.name/?p=1053</guid>
		<description><![CDATA[一、jQuery基礎 1、jQuery是什麼? jQuery是一個js框架，其主要思想是，通過 選擇器查找到對應的節點，然後對這個節點進行 封裝(封裝成一個jQuery對象)。通過調用jQuery 對象的屬性或者方法來實現對節點的操作。這樣做的 好處是：第一，將不同的瀏覽器之間的差異屏蔽起來了。 第二，代碼更加簡潔，維護方便。 2、jQuery編程的步驟 step1: 使用選擇器查找節點 step2: 調用jQuery對象的方法或者屬性 選擇器：jQuery模仿css選擇器語法，創建的一套 用於查找節點的規則。 3、jQuery對象與dom節點 1)dom節點如何轉換成jQuery對象 調用$()函數，比如 $(obj); 2)jQuery對象如何轉換成dom節點 方式一: $obj.get(0) 方式二: $obj.get()[0] 3) jQuery與其它js框架如何共存? 使用conflict()函數。 二、選擇器 1、選擇器是什麼? jQuery模仿css選擇器語法，創建的一套 用於查找節點的規則。 2、基本選擇器 #id .class element selector1,select2..selectn * 3、層次選擇器 select1 select2 select1>select2 select1+select2 select1~select2 4、過濾選擇器 (1)基本過濾選擇器 :first :last :not(selector) :even dd :eq(index) :gt(index) :lt(index) (2)內容過濾選擇器 :contains(text) [...]]]></description>
		<wfw:commentRss>http://www.yumao.name/read/hello-jqery-day01day03/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hello Ajax Day02</title>
		<link>http://www.yumao.name/read/hello-ajax-day02/</link>
		<comments>http://www.yumao.name/read/hello-ajax-day02/#comments</comments>
		<pubDate>Wed, 09 May 2012 11:12:22 +0000</pubDate>
		<dc:creator>Yumao</dc:creator>
				<category><![CDATA[Java Language]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[encoding]]></category>
		<category><![CDATA[json]]></category>

		<guid isPermaLink="false">http://www.yumao.name/?p=1049</guid>
		<description><![CDATA[1、緩存問題: 當採用get方式向服務器請求時，ie瀏覽器會先嘗試 從緩存當中查找數據，如果找到，不再向服務器發請求。 解決方式: 在請求地址後面添加一個隨機數。 採用post方式向服務器發請求，也可以解決 這個問題。 2、採用post方式發請求 step1 獲得XMLHttpRequest對象 var xhr = getXhr(); step2 發送請求 xhr.open(‘post’,&#8217;check_username.do’,true); //在默認情況下，xhr對象生成的http請求數據 //包不會包含content-type消息頭。 //setRequestHeader的作用是，在生成的 //http請求數據包當中，添加content-type消息頭。 xhr.setRequestHeader(‘content-type’, ‘application/x-www-form-urlencoded’); xhr.send(‘username=zs’); step3 服務器處理請求 step4 在監聽器裡面處理服務器返回的數據 3、編碼問題 1)如果鏈接地址包含了中文，如何處理？ 瀏覽器都會對鏈接地址中的中文進行 編碼(一定會採用utf-8進行編碼) 解決方式: 可以通過修改tomcat_home/conf/ server.xml文件，添加"URIEncoding="utf-8″ 2)如果鏈接地址包含了中文參數，如何處理？ 瀏覽器會對中文參數進行編碼，具體採用 何種編碼，要看打開這個頁面的編碼是什麼。 解決方式: step1: 修改tomcat_home/conf/ server.xml文件，添加"URIEncoding="utf-8″ step2: 在jsp文件當中，添加 3)在ajax應用當中，當使用get方式向服務器 發送請求時，ie使用gbk編碼對請求數據進行編碼, firefox,chrome使用utf-8進行編碼。 解決方式: step1 修改tomcat_home/conf/ server.xml文件，添加"URIEncoding="utf-8″ step2 對請求地址使用encodeURI函數進行處理， 該函數會對地址中的中文進行編碼(採用utf-8)。 如果使用post方式向服務器發請求，瀏覽器都會採用 [...]]]></description>
		<wfw:commentRss>http://www.yumao.name/read/hello-ajax-day02/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hello Ajax Day01</title>
		<link>http://www.yumao.name/read/hello-ajax-day01/</link>
		<comments>http://www.yumao.name/read/hello-ajax-day01/#comments</comments>
		<pubDate>Wed, 09 May 2012 11:08:19 +0000</pubDate>
		<dc:creator>Yumao</dc:creator>
				<category><![CDATA[Java Language]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[onreadystatechange]]></category>
		<category><![CDATA[readt State]]></category>
		<category><![CDATA[responseXML]]></category>
		<category><![CDATA[status]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.yumao.name/?p=1045</guid>
		<description><![CDATA[1、ajax是什麼?(asynchronous javascript and xml) 異步的javascript和xml。 在傳統(沒有使用ajax技術)的web應用當中, 當用戶點擊提交按鈕，提交了某個頁面，此時， 瀏覽器會將表單中的數據打包之後發送給服務器， 同時，瀏覽器會將整個頁面銷毀。用戶只能等 待服務器返回一個新的頁面，不能做其它任何事情。 為了解決傳統的web應用當中的"等待-響應-等待“ 的弊端，需要瀏覽器可以通過異步的方式向服務器 發請求。ajax技術可以讓瀏覽器異步地向服務器發 請求：其本質是通過瀏覽器內置的一個對象( XmlHttpRequest)異步地向服務器發請求(發送請求 的同時，瀏覽器不會銷毀之前的頁面，此時，用戶 仍然可以對之前的頁面做其它的操作，也就是說， 不打斷用戶的操作)。服務器返回一些數據(不是一個 新的頁面，是部分的數據)給XmlHttpRequest對象， 接下來，通過dom操作(需要使用服務器 返回的數據，可以通過XmlHttpRequest對象獲得)， 來更新頁面。整個過程，頁面無刷新。 2、ajax編程 1) XmlHttpRequest對象： a,如何獲得XmlHttpRequet對象 因為XmlHttpRequest沒有標準化，所以 要區分瀏覽器來獲得該對象。 function getXhr(){ var xhr = null; if(window.XMLHttpRequest){ //非ie瀏覽器 xhr = new XMLHttpRequest(); }else{ //ie瀏覽器 xhr = new ActiveXObject("Microsoft.XMLhttp"); } return xhr; } b,常用的屬性 onreadystatechange:註冊監聽器(即給 XmlHttpRequest對象綁訂事件處理代碼)。 responseText:獲得服務器返回的文本數據。 responseXML:獲得服務器返回的xml數據。 [...]]]></description>
		<wfw:commentRss>http://www.yumao.name/read/hello-ajax-day01/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello JSP Day06</title>
		<link>http://www.yumao.name/read/hello-jsp-day06/</link>
		<comments>http://www.yumao.name/read/hello-jsp-day06/#comments</comments>
		<pubDate>Tue, 08 May 2012 00:41:53 +0000</pubDate>
		<dc:creator>Yumao</dc:creator>
				<category><![CDATA[Java Language]]></category>
		<category><![CDATA[el]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jsp]]></category>
		<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">http://www.yumao.name/?p=1043</guid>
		<description><![CDATA[&#60;c:out default=&#34;&#34; escapeXml=&#34;&#34;&#62; 輸出el表達式的值。 default:指定一個缺省值，當找不到對應的值時 使用該值來輸出。 escapeXml: 當值為true,將&#62;,&#60;等用相應的實體來替換。 &#60;c:set var=&#34;rs&#34; value=&#34;${1+1}&#34; scope=&#34;request&#34;/&#62;: 相當於request.setAttribute&#40;&#34;rs&#34;,2&#41;; &#60;c:remove var=&#34;rs&#34; scope=&#34;request&#34;/&#62;: 相當於request.removeAttribute&#40;&#34;rs&#34;&#41;; &#60;c:catch var=&#34;msg&#34;&#62; 處理異常 相當於pageContext.setAttribute&#40;&#34;msg&#34;,描述錯誤 信息的字符串&#41;。 &#60;c:url value=&#34;&#34;&#62; 作用1：當用戶禁止cookie以後，會在地址後添加 sessionId。value屬性指定一個地址。 作用2：在使用絕對路徑時，會自動在路徑前 添加應用名。 &#60;a href=&#34;&#60;c:url value='/a.jsp'/&#62;&#34;&#62;&#60;/a&#62; &#60;form action=&#34;&#60;c:url value='/abc.do'/&#62;&#34;&#62; &#60;c:import url=&#34;&#34;&#62; &#60;c:redirect url=&#34;&#34; &#62; 重定向，url指定重寫向的地址。如果用戶禁止 cookie，會自動在地址後添加sessionId,如果使用 絕對路徑，會自動添加應用名。 &#160; 2、自定義標籤 step1 寫一個java類，繼承SimpleTagSupport。 step2 override doTag方法，在該方法里，編寫 處理邏輯。 step3 描述標籤。在.tld文件當中描述。這個文件 實際上是一個xml文件，需要放到WEB-INF下或者 放到META-INF下。可以參考c.tld文件。 &#60;body-content&#62;值可以是: [...]]]></description>
		<wfw:commentRss>http://www.yumao.name/read/hello-jsp-day06/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GT630M 635M 600M Win7 32bit Driver</title>
		<link>http://www.yumao.name/read/gtmwin7-32bit-driver/</link>
		<comments>http://www.yumao.name/read/gtmwin7-32bit-driver/#comments</comments>
		<pubDate>Mon, 07 May 2012 00:47:27 +0000</pubDate>
		<dc:creator>Yumao</dc:creator>
				<category><![CDATA[扯]]></category>
		<category><![CDATA[32bit]]></category>
		<category><![CDATA[32位]]></category>
		<category><![CDATA[driver]]></category>
		<category><![CDATA[gt600m]]></category>
		<category><![CDATA[gt630m]]></category>
		<category><![CDATA[gt635m]]></category>
		<category><![CDATA[win7]]></category>
		<category><![CDATA[驅動]]></category>

		<guid isPermaLink="false">http://www.yumao.name/?p=1042</guid>
		<description><![CDATA[恩 週末幫人弄電腦的時候發現此類驅動只能找到64Bit版的 連XP版和32bit 渣7版的都沒有 那麼我就在這裏放出下此版本驅動吧 此驅動爲nVidia官方通用驅動 適用於任意GTM系列顯示卡 適用的操作系統爲win7 32bit 下載地址:http://kuai.xunlei.com/d/KVVZSXMNIZPA]]></description>
		<wfw:commentRss>http://www.yumao.name/read/gtmwin7-32bit-driver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello JSP Day05</title>
		<link>http://www.yumao.name/read/hello-jsp-day05/</link>
		<comments>http://www.yumao.name/read/hello-jsp-day05/#comments</comments>
		<pubDate>Sat, 05 May 2012 01:09:21 +0000</pubDate>
		<dc:creator>Yumao</dc:creator>
				<category><![CDATA[Java Language]]></category>
		<category><![CDATA[el]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jsp]]></category>
		<category><![CDATA[jstl]]></category>

		<guid isPermaLink="false">http://www.yumao.name/?p=1040</guid>
		<description><![CDATA[一、jsp基礎 1、什麼是jsp? 2、如何寫一個jsp文件? 1)寫一個以.jsp為後綴的文件 2)添加如下的組成元素: a, html(html,css,javascript) b, java代碼: 方式一 java代碼片斷: &#60;% %&#62; 方式二 jsp表達式: &#60;%= %&#62; 方式三 jsp聲明 &#60;%! %&#62; c, 使用隱含對象 即在jsp文件里直接使用的對象。 out request response session application pageContext: PageContext類的實例，容器會 為每一個jsp實例創建唯一的一個pageContext 實例。主要有兩個作用： 作用1,綁訂數據 setAttribute,getAttribute,removeAttribute 注意，某個jsp實例綁訂數據到pageContext 上，只有它自己能訪問。 作用2, 找到其它隱含對象。 config: ServletConfig實例 exception: 獲取jsp出錯信息。 比如，某個jsp文件&#40;比如jsp05.jsp&#41;有 運行過程當中，有可能出錯，則可以 採用如下方式來處理： step1,在jsp05.jsp文件當中，使用 &#60;%@page errorPage=&#34;error.jsp&#34;%&#62; 指定一個錯誤處理頁面&#40;error.jsp&#41;。 step2,在error.jsp文件當中，使用 &#60;%@page isErrorPage=&#34;true&#34;%&#62;, 然後使用exception.getMessage方法 輸出錯誤信息。 [...]]]></description>
		<wfw:commentRss>http://www.yumao.name/read/hello-jsp-day05/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello JSP Day04</title>
		<link>http://www.yumao.name/read/hello-jsp-day04/</link>
		<comments>http://www.yumao.name/read/hello-jsp-day04/#comments</comments>
		<pubDate>Thu, 03 May 2012 09:16:30 +0000</pubDate>
		<dc:creator>Yumao</dc:creator>
				<category><![CDATA[Java Language]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jsp]]></category>
		<category><![CDATA[servler]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://www.yumao.name/?p=1038</guid>
		<description><![CDATA[1、上傳文件(擴展) step1 在form表單當中，添加 input type="file",並且，設置表單 的提交方式為"post", 設置 enctype="multipart/form-data" enctype屬性會生成一個消息頭 content-type，發送給服務器。其作用 是，告訴瀏覽器，對錶單中的數據如何 編碼，另外，也通知服務器，它編碼的方式。 enctype的缺省值是 "application/x-www-form-urlencoded"，要求 瀏覽器對錶單中的數據按照url編碼方式 (即打開該頁面的編碼是什麼，就採用該編碼 對錶單中的數據進行編碼)對錶單中的數據進行編碼。 enctype的值如果設置成"multipart/form-data",要求 瀏覽器對錶單中的數據不再進行編碼，直接以二進制 字節數組的方式發送給服務器，此時， 直接使用request.getParameter方法不能獲取任何 數據。服務器端需要先獲取原始的二進制流， 分析這個二進制流(字節數組)。 step2、在服務器端，一般使用一些工具來分析 原始的二進制流，比如 commons-fileupload.jar 2、servlet的線程安全問題 (1)產生線程安全問題的原因: 默認情況下，某個Servlet在容器當中，只有一個 實例(不管有多少個請求)。 如果有多個請求到達容器，容器會啟動多個線程 來處理請求，此時，就有可能多個線程會同時訪問 某個servlet實例，如果這些線程訪問了線程不安全的 資源(比如修改了servlet的某個屬性值)，就會產 生線程安全問題。 (2)如何解決? a, 使用synchronized加鎖，不要對整個 service方法加鎖，而是對訪問臨界資源的 代碼加鎖。 b, 讓servlet實現SingleThreadModel接口。 容器會為實現了這個接口的servlet創建多個實例。 不建議使用。 c, 盡量避免對servlet屬性值進行修改。 servlet知識點小結 一、servlet基礎 1、什麼是servlet? 2、如何開發一個servlet? 3、什麼是servlet容器? 4、了解http協議 二、servlet核心 1、servlet核心類與接口 a,Servlet接口 [...]]]></description>
		<wfw:commentRss>http://www.yumao.name/read/hello-jsp-day04/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello JSP Day03</title>
		<link>http://www.yumao.name/read/hello-jsp-day03/</link>
		<comments>http://www.yumao.name/read/hello-jsp-day03/#comments</comments>
		<pubDate>Wed, 02 May 2012 15:23:15 +0000</pubDate>
		<dc:creator>Yumao</dc:creator>
				<category><![CDATA[Java Language]]></category>
		<category><![CDATA[encodeurl]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[jsp]]></category>
		<category><![CDATA[resoinse]]></category>
		<category><![CDATA[sendredirect]]></category>
		<category><![CDATA[session]]></category>
		<category><![CDATA[sessionid]]></category>

		<guid isPermaLink="false">http://www.yumao.name/?p=1033</guid>
		<description><![CDATA[1、用于禁止cookie以後，如何繼續使用session (1)什麼是url重寫? 在要訪問的組件地址後面添加sessionId。 比如，要訪問 "count"這個地址，需要在"count" 後面添加上sessionId，變成 "sessionId;jsessionid=CFEFDA0BD57D9314B 4C883A056064327″。 (2)如何進行url重寫 //會在url後面添加上sessionId //鏈接、表單提交 a, String response.encodeURL(String url); 比如: &#60;form action=&#34;&#60;%=response.encodeURL(&#34;some.do&#34;)%&#62;&#34;&#62; //會在url後面添加上sessionId //重定向 b, String response.encodeRedirectURL(String url); 比如: response.sendRedirect( response.encodeRedirectURL("abc.do")); 2、過濾器 (1)過濾器是什麼？ Servlet規範當中定義的一種特殊的類， 其作用是對容器的調用過程進行攔截並處理。 (2)編程 step1 寫一個java類，實現Filter接口。 step2 在doFilter方法里，實現過濾的邏輯。 step3 在web.xml配置過濾器。 (3)配置初始化參數 step1 在web.xml中，使用 配置初始化參數 step2 使用FilterConfig.getInitParameter(String paramName);獲得初始化參數值。 (4)過濾器的優先級 如果有多個過濾器都滿足過濾條件，此時， 過濾器按照的配置的先後 順序來執行。 (5)過濾器的優點 a,將一些通用的處理邏輯(比如權限處理、 日誌、安全、編碼等等)寫在過濾器類里同， 方便代碼的維護。 b,可以實現代碼的"可插拔性"。增加或者減少 某個模塊，不會影響到整個程序的正常執行。 [...]]]></description>
		<wfw:commentRss>http://www.yumao.name/read/hello-jsp-day03/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello JSP Day02</title>
		<link>http://www.yumao.name/read/hello-jsp-day02/</link>
		<comments>http://www.yumao.name/read/hello-jsp-day02/#comments</comments>
		<pubDate>Sat, 28 Apr 2012 12:17:01 +0000</pubDate>
		<dc:creator>Yumao</dc:creator>
				<category><![CDATA[Java Language]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jsp]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://www.yumao.name/?p=1030</guid>
		<description><![CDATA[1、驗證碼: (1)生成驗證碼圖片 step1 設置正確的消息頭 response.setContentType("image/jpeg"); step2 使用java.awt包中的類生成圖片 step3 壓縮輸出 (2)使用驗證碼 step1 將生成驗證碼的servlet(CheckcodeServlet) 放到相應的工程裡面。 step2 修改ChechcodeServlet,添加 HttpSession session = request.getSession(); session.setAttribute("number", number); step3 在jsp文件中，添加驗證碼圖片和文本 輸入框。 step4 在服務器端比較用戶提交的驗證碼與 session中綁訂的驗證碼。 2、購物車 (1)商品列表 step1 建表 create table t_computer( id int primary key auto_increment, model varchar(50), pic varchar(50), prodInfo varchar(255), price double ); insert into t_computer(model,pic,prodInfo,price) values(‘x200′,’x200.jpg’,&#8217;good’,1000); insert into t_computer(model,pic,prodInfo,price) [...]]]></description>
		<wfw:commentRss>http://www.yumao.name/read/hello-jsp-day02/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

