?? 28-3.cfm.htm
字號:
<FONT FACE="宋體" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY">IwriteCookie </FONT></TD>
<TD WIDTH="67%" VALIGN="TOP">
<FONT FACE="宋體" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY">設置Cookie的內容</FONT></TD>
</TR>
</TABLE>
<FONT FACE="宋體" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY"> </P>
</FONT><B><FONT FACE="宋體" LANG="ZH-CN"><P ALIGN="JUSTIFY">建立組件</P>
</B></FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY"> 使用Explorer創建一個Asp Unleashed 文件夾,它假設在C盤上以c:\AspUnleashed的形式出現。</P>
<P ALIGN="JUSTIFY"> 啟動Visual Studio或J++,選擇File|new顯示工作區對話框,單擊Workspace表欄,輸入Chaper28作為工作區名稱,將路徑設為:c:\AspUnleashed\chapter28,如圖28.1所示。(如果你已嘗試了Visual Basic例子的話,這個工作區已存在)。</P>
<P ALIGN="JUSTIFY"> 在工作里需要一個Java項目工程,選擇File|New,單擊Projects表頭,從列表中選擇Java Project并輸入JavaSoaringSites作為項目工程名,如圖28.2所示,確保選擇Add to Current Workspace單選按鈕。</P>
<P ALIGN="JUSTIFY"> 最后創建Java源文件,再次選擇File|New,單擊Files表頭,從列表中選擇JavaSource File并輸入JsoaringSites作為文件名,如圖28.3所示。</P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"><IMG SRC="Image15.gif" tppabs="http://210.74.168.175/guide/asp/part28/Image15.gif" WIDTH=602 HEIGHT=373><B>圖28.1 創建chapter28工作區</P>
<P ALIGN="JUSTIFY">圖28.2 在chapter28工作區內創建JavaSoaringSites項目工程</P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"> </P>
</B><P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY">列表28.1是一個簡單的Java日程表組件,錯誤-陷阱在例子中省略,為的是突出重點,在列表28.4只將顯示用Visual Basic編寫的組件代碼。</P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY">表28.1 JsoaringSites.java</P>
<P ALIGN="JUSTIFY"><HR ALIGN="RIGHT" SIZE=1>// JSoaringSites// This small Java example demonstrates how to create an// ASP component in Java</P>
<P ALIGN="JUSTIFY">import com.ms.com.*;import asp.*;</P>
<P ALIGN="JUSTIFY">class JSoaringSites{ IResponse m_iResponse = null; IRequest m_iRequest = null; String m_sReturnString = ""; </P>
<P ALIGN="JUSTIFY">public void OnStartPage(IScriptingContext objScriptContext) { m_iResponse = objScriptContext.getResponse(); m_iRequest = objScriptContext.getRequest(); }</P>
<P ALIGN="JUSTIFY"> public void OnEndPage() { m_iResponse = null; m_iRequest = null; }</P>
<P ALIGN="JUSTIFY"> public void ListSoaringSites(String sState) { Variant vOutput = new Variant(); vOutput.putString("Requested State: "+sState); m_iResponse.Write(vOutput); m_sReturnString = "<P>"; if (sState.equalsIgnoreCase("WA")) { m_sReturnString += "Arlington, WA<BR>"; m_sReturnString += "Burlington, WA<BR>"; m_sReturnString += "Pullman, WA<BR>"; m_sReturnString += "Richland, WA<BR>"; m_sReturnString += "Wenatchee, WA<BR>"; m_sReturnString += "Yakima, WA<BR>"; } else if (sState.equalsIgnoreCase("WI")) m_sReturnString += "<BR>West Bend, WI<BR>"; else m_sReturnString += "No sites found for "+sState; vOutput.putString(m_sReturnString); m_iResponse.Write(vOutput); }}</P>
<P ALIGN="JUSTIFY"><HR ALIGN="LEFT" SIZE=1> 其中的兩行代碼是Java 的基本組成元素。import com.ms.com.*和import asp.*語句同C中的include文件相似,這個兩語句分別引用了你先前安裝的COM和ASP類庫。</P>
<P ALIGN="JUSTIFY"> On Start Page和On End Page是兩個特殊的事件,它們在當組件初始化和終止時自動執行。ASP自動調用它們,而不需要你為它們特殊考慮。事實上,這個組件可以根本不改動這兩個事件的內容。但是,在這個例子里你可以修改其代碼以便特定的需要,例如你可能希望當網頁打開時組件初始化就進行數據庫打開操作。</P>
<P ALIGN="JUSTIFY"> 通過使用equalsIgnoreCase 我們就可以將任何大小寫組合匹配作為有效輸入,因此wa,Wa,和WA都可以作為Washington的縮寫。</P>
<P ALIGN="JUSTIFY">我們的例子中只涉及到兩個州的信息,所以通過選擇語句可以避免許多不必要的代碼,但在現實生活中,不可能用大量的if語句來列出開展滑翔機活動的州,這個組件代碼應重新改寫使用數據庫查詢語句,但在這里我們可以這樣寫</P>
<P ALIGN="JUSTIFY">當輸入這些代碼或從CD上拷貝之后,接下來構建此Java組件,然后將這個組件拷貝到WinNT\Java\TrustLib目錄下,以命令行形式顯示(確信在TrustLib目錄下):</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">“</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>\Program Files\DevStudio\VJ\Bin\Javareg</FONT><FONT SIZE=3>”</P>
</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY">/register/class:JsoaringSites/progid:chapter28.JSoaringSites</P>
<P ALIGN="JUSTIFY"> </P>
<B><P ALIGN="JUSTIFY">注意</P>
</B><P ALIGN="JUSTIFY"> 如果你已經注冊登記了組件,不要忘記在登記最近的組件之前首先鍵入以下的命令行來注銷先前的組件:</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">“</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>\ProgvamFiles\DevStudio\VJ\Bin\Javareg</FONT><FONT SIZE=3>”</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3> /unregister/calss:JsoaringSites/progid:chapter28.JsoaringSites</P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY">通過使用OLEView.exe確保沒有其它的組件在你的Java\bin中注冊。出于某些原因,可能與Visual J++ 1.1不能從所有目錄都注冊成功組件有關——所以注銷工作有時不起作用。如果你在OLEView中發現對這個class的其它引用,唯一的辦法是搜索到所有的引用這個class的登記文件,然后手來工地刪除它們。每個class有三個引用文件。</P>
<P ALIGN="JUSTIFY"> </P>
<B><P ALIGN="JUSTIFY">技巧</P>
</B><P ALIGN="JUSTIFY"> OleView是一個很好的跟蹤工具。但有時區分問題很困難,究竟是注冊/構造問題,還是ASP的問題呢?當你在OleView中雙擊一個class時,你創建了COM對象的一個實例。</P>
<P ALIGN="JUSTIFY"> 如果對象注冊正確,OleView將顯示與組件相聯系的COM接口,如果OleView顯出一個錯誤信息,可能是一個構造/注冊問題。</P>
<P ALIGN="JUSTIFY"> </P>
<B><P ALIGN="JUSTIFY">注意</P>
</B><P ALIGN="JUSTIFY"> 在Java1.1或更高版本里,你不需要將你的組件復制到一個公共目錄中去,因為注冊過程將產生一個你實際所在注冊路徑的映射,這樣你就可以避免將你所有組件都保存在同一公共目錄中去時可能碰到的麻煩。因為沒有一種工具可以顯示組件是在哪個路徑下注冊的。</P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY">以下的兩個ASP頁將使用組件,第一頁是一個簡單的表單,用來接受用戶輸入的不同州的選擇。第二頁將處理請求并將其傳遞給Java組件,因為在Java組件中只有兩個州(Washigton 和Wisconsin),所以大多數查詢簡單地返回No Sites found信息。</P>
<P ALIGN="JUSTIFY">列表28.2說明了Soaring Sites組件是如何使用的。其中的HTML代碼詢問用戶選擇一個要搜尋滑翔運動俱樂部的州,然后用戶的請求通過HTML的FORM對象傳遞到列表28.3的代碼。</P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY">列表28.2 JavaSoaringSites.asp</P>
<P ALIGN="JUSTIFY"><HR ALIGN="LEFT" SIZE=1></P>
<P ALIGN="JUSTIFY"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Final//EN"><HTML><HEAD> <TITLE>Soaring Sites Results</TITLE></HEAD></P>
<P ALIGN="JUSTIFY"><BODY BGCOLOR="#FFFFFF"><FONT SIZE="2" FACE="Verdana, Arial, Helvetica"></P>
<P ALIGN="JUSTIFY"><CENTER><H1>Soaring Sites</H1></CENTER></P>
<P ALIGN="JUSTIFY"><HR Color="Red"><FORM ACTION="JavaSoaringSitesAction.asp"> Enter a state abbreviation to search for a site: &nbsp; <INPUT NAME="State" SIZE="2"><BR> <INPUT TYPE="SUBMIT"></FORM></P>
<P ALIGN="JUSTIFY"><HR ALIGN="LEFT" SIZE=1></BODY></HTML></P>
<P ALIGN="JUSTIFY">列表28.3顯示了Jsoaring Sites真正的調用過程,HTML代碼從REQUEST對象(一個內建ASP組件)獲得用戶的請求并將信息通過調用ListSoaringSites方法,來傳遞給在定制的組件。組件本身將格式化的結果以HTML代碼形成返回給頁面。</P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY">列表28.3 JavaSoaringSitesAction.asp</P>
<P ALIGN="JUSTIFY"><HR ALIGN="LEFT" SIZE=1></P>
<P ALIGN="JUSTIFY"><% Option Explicit %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><HTML><HEAD> <TITLE>Soaring Sites Results</TITLE></HEAD></P>
<P ALIGN="JUSTIFY"><BODY BGCOLOR="#FFFFFF"><FONT SIZE="2" FACE="Verdana, Arial, Helvetica"></P>
<P ALIGN="JUSTIFY"><CENTER><H1>Soaring Sites</H1></CENTER><HR Color="Red"></P>
<P ALIGN="JUSTIFY"><%Dim SoaringSitesSet SoaringSites = Server.CreateObject("Chapter28.JSoaringSites")SoaringSites.ListSoaringSites Request("State")Set SoaringSites = Nothing%></P>
<P ALIGN="JUSTIFY"></BODY></HTML></P>
<B><P ALIGN="JUSTIFY">技巧</P>
</B><P ALIGN="JUSTIFY"> 你可以跳過組件注冊,Microsoft已經將這個功能附加在Java 組件中,通過以下形式實現。</P>
<P ALIGN="JUSTIFY">Set SoaringSites=Server.Create Object(</FONT><FONT SIZE=3>“</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>Java:Chapter28.JsoaringSites</FONT><FONT SIZE=3>”</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>)</P>
<P ALIGN="JUSTIFY"> 當這本書出版的時候,這項功能還沒有,所以在這章中的例子沒有使用這種增強功能。</P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"> </P></FONT></BODY>
</HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -