學習j2ee初有領悟的小總結 - 中國WEB開發者網絡 (http://www.webasp.net) -- 技術教程 (http://www.webasp.net/article/) --- 學習j2ee初有領悟的小總結 (http://www.webasp.net/article/18/17755.htm) |
| -- 作者:未知 -- 發佈日期: 2005-04-20 |
|
總覺得j2ee tutorial書寫的很好,但是很零散,令初學者不得要領。 本文就筆者研習一段時間的j2ee並結合這本書寫一些東西。 1.國際化 比如我有名叫Messages_*.properties的資源包。 管理客戶端: public BankAdmin(Locale currentLocale) messages = ResourceBundle.getBundle("Messages",currentLocale); web客戶端: 從請求中提取區域信息(由瀏覽器的語言偏好設置),打開對應的資源包,然後把該包作為一個會話的屬性存儲起來: ResourceBundle messages = (ResourceBundle)session.getAttribute("messages"); if(messages==null){ Locale locale = request.getLocale(); messages = ResourceBundle.getBundle("Messages",locale); session.setAttribute("messages",messages); } 注意:為顯示中文,程序裡部件需選擇指定字體,如在顯示中文時使用"MS Song"不然界面會有方框。 2.Context是接口(所有命名操作都與其有關),initialContext是類,直接繼承於Object 3.RequestDispather 接受客戶端請求並發送到任何服務器上資源,能包裝servlets但是servlet容器能生成RequestDispatcher封裝任何類型的資源。 4.deploytool中的幾個重要的選項卡 首先注意的是不是所有選項卡都是對於每個組件都有用。 1).Env. Enties 環境入口,設置環境變量(和程序邏輯無關且經常變動的內容),調用環境變量通過JNDI Naming方式, ic.lookup("java:comp/env/變量名").存儲在企業Bean的配置描述符中,允許定制企業Bean的業務邏輯而無需改動源碼的名字值對。 2).Ejb Refs 在coded name中輸入企業Bean的應用名字。是JNDI查找Client的邏輯名字。如果在JNDI的lookup中查找企業Bean的應用像這樣 : java:comp/env/ejb/OtherBean 則輸入ejb/OtherBean 3).Resource Refs resource reference name是JNDI查找的資源的邏輯名稱。有六種類型: DataSource是jdbc/ Session mail/ URL url/ QueueConnectionFactory和TopicConnectionFactory jms/ ConnectionFactory env/ 註:QueueConnectionFactory和TopicConnectionFactory,ConnectionFactory 需要用戶名和密碼請寫到用戶名和密碼域中, Cloudscape 不需要用戶名和密碼。 4).Resource Environment Refs 對於在代碼中出現jms/的 5.如果組件應用了本地實體Bean,則需要在Enterprise Bean Name域中給出來被引用Bean的名字。 6.傳遞企業Bean的對象引用 例如你可以通過引用使企業Bean可以調用另一個企業Bean的方法。你無法訪問this引用因為它指向在EJB容器中運行的Bean實例,只有容器可 以直接調用Bean實例的方法。客戶端通過遠程接口實現對像間接調用Bean的方法,通過這些對像(遠程接口實現對像)的引用企業Bean可以互 相訪問。 會話Bean調用SessionContext接口定義的getEJBObject方法獲得它的遠程接口對像引用。 實體Bean調用的是EntityContext接口定義的getEJBObject方法。 這兩個借口提供企業Bean訪問EJB容器管理的上下文對象。 典型情況下,企業Bean通過setSessionContext方法保存它的上下文對象。下面的代碼片斷說明了會話Bean如何使用這些方法: public class WagonBean implements SessionBean { SessionContext context; ... public void setSessionContext(SessionContext sc) { this.context = sc; } ... public void passItOn(Basket basket) { ... basket.copyItems(context.getEJBObject()); } 7.META-INF必須用大寫。 8.include(request,response) 目的:加入一個資源。 從web組件中返回的響應包含,如:版權信息和標示信息 資源分為:靜態和web組件 9.service服務方法通常模式 從請求中提取信息---訪問外部資源---然後基於這些信息發佈響應 發佈響應步驟:1.響應頭 2.從響應得到輸出流 3.輸出流中寫入響應體 10.對一個不懂的工具看他的幫助是最直接的手段,別的什麼也比不上。 |
| webasp.net |