當前位置:首頁 » 網頁前端 » j2eewebprofile
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

j2eewebprofile

發布時間: 2022-10-10 08:47:55

❶ J2EE框架是什麼它的框架主要指什麼,在編程開發中的作用是什麼

框架說白了就是JAVA工作者多年以來總結出的一些開發標准。讓我們可以以成功的經驗模式來開發我們自已的系統,一般使用框架的好處是
·在好的框架下,開發者只需要寫一些必須的代碼;他們不需要直接接觸底層的API。 這一點很重要。

·經過良好設計的框架可以為程序提供清晰的結構並且提高程序的內聚性。好清晰的結構使得其他人可以更容易加入項目。

·一個容易使用的框架可以通過一些例子和文檔為用戶提供最佳實踐。

·採用成功的框架的代碼比自己的代碼容易測試

J2EE本身提供了一些框架。比如, Enterprise Java-Beans (EJB) container或者 Servlet engine 而這些框架一般在中小工程中我們都不會使用,會讓我們把大量的時間浪費在開發框架上。
而現在比較流行開源框架,主要是struts,hibernate,spring等
比如struts是在原有mvc基礎上實現在代碼分離等功能,非常好用。
而hibernate可以把我們的關系型資料庫轉換成我們在JAVA中的面像對像來使用。從而讓我們在開發時不需要直接寫sql語句,比如database.getName();就可以直接把資料庫中的用戶名取出來。
Spring
J2EE框架被大規模地運用到項目中,而項目總要負責這些框架以及自己業務代碼的連接,使之真正融合到一起。Spring就是專注於這個問題的,它和Hibernate融合的很好。
正像我所寫的一樣,這三種框架在一起並不沖突,所以現在最常用的框架就是
struts+hibernate+spring就像我們蓋房子一樣,先把框架搭好,我們在在上面寫代碼就很規范。
嘮栳叨叨的寫這么多,只是我個人對框架的理解,JAVA是一個大的體系,想要完全了解還需要日久的積累。我能提供你的只有這么多了

❷ j2ee伺服器有哪些

j2ee伺服器有哪些

眾所周知,J2EE應用伺服器百花齊放,種類眾多。那麼J2EE應用伺服器有哪些?又有哪些功能呢?一起來看看吧!

從功能實現上劃分:

有實現完整J2EE規范(full profile)的Weblogic, WebSphere, GlassFish

有實現web應用規范(web profile)的 TomEE, JBoss/WildFly

有基本的Servlet及Jsp規范的Web容器(Web Container) Tomcat, Jetty, Resin

回顧過去的2015年,各應用伺服器市場佔有率各有千秋。

下圖為各個應用伺服器使用率餅圖

我們看到,在眾多J2EE應用伺服器中,Tomcat使用率達到58.66%,穩坐第一。

相較2014年,Tomcat使用率大幅增長,增長將近19%。

整體而言,Tomcat做為Servlet和Jsp規范的參考實現(Reference implementation , 簡稱RI),一般都會在第一時間實現規范的新特性並通過Oracle的CTS 測試認證。目前最新的Tomcat 9.0,雖還是alpha版,但已經實現了Servlet 4.0草案,感興趣的朋友,可以下載嘗鮮哦!

Tomcat是一個實現了JAVA EE標準的最小的WEB伺服器,是Apache 軟體基金會的Jakarta 項目中的一個核心項目,由Apache、Sun 和其他一些公司及個人共同開發而成。因為Tomcat 技術先進、性能穩定,而且開源免費,因而深受Java 愛好者的喜愛並得到了部分軟體開發商的認可,成為目前比較流行的Web 應用伺服器。學習JavaWeb開發一般都使用Tomcat伺服器,該伺服器支持全部JSP以及Servlet規范,啟動界面如圖:

Tomcat 是一款非常優秀的 Java Web 伺服器,以致於很多開源 Java 應用伺服器(如 JOnAS) 直接集成它作為 servlet 容器。

Tomcat的總體結構

Tomcat中主要涉及Server,Service,Engine,Connector,Host,Context組件,之前用過Tomcat的童鞋是不是覺得這些組件的名稱有點似曾相識的趕腳,沒趕腳?!您再想想。好吧,不用你想了,我來告訴你吧。其實在Tomcat二進制分發包解壓後,在conf目錄中有一個server.xml文件,你打開它瞄兩眼看看,是不是發現server.xml文件中已經包含了上述的幾個名稱。

Tomcat 集群源碼的類圖

從圖中我們可以看出 Tomcat 集群包括以下幾個方面的內容:

Session: Session 分為 StandardSession 與ClusterSession 兩種,後者用於 Session 復制。

Session Manager: 有用於集群 Session 管理的ClusterSession,也有用於對 Session 進行一般日常管理的,如 PersistentManager,BackupManager,SimpleTcpReplicationManager。

組通迅框架:SessionManager調用組通訊框架進行 Session 的.傳輸,Tomcat採用的組通

訊框架是 tribe,目前 tribe 已被獨立為開放的 apache 工程。

Cluster: 方便集群管理而派生出的邏輯概念,可將實際物理機劃分為一個 Cluster,也可 將一台物理機上不同埠的實例劃分為一個 Cluster,它有一個簡單的實現類 SimpleTcpCluster。

1.1 Session

伺服器集群通常操縱兩種session:

1. Stickysessions: 盡量讓同一個客戶請求由同一台伺服器來處理,這樣 sticky sessions 就是 存在於單機伺服器中接受客戶端請求的 session,它不需要進行 Session 復制,如果這個 單機失敗的話,用戶必須重新登錄網站。

2. Replicatedsessions: 在一台伺服器中的 session 狀態被復制到集群的其他伺服器上,無論 何時,只要 session 改變了,session 數據都要重新全部或部分(依據復制策略)被復制 到其他伺服器上。

Tomcat 支持以下三種 session 持久性類型:

1. 內存復制:在 JVM 內存中復制 session狀態,使用 Tomcat自帶的 SimpleTcpCluster 和SimpleTcpClusterManager類。

2. 資料庫持久性:在這種類型中,session 狀態保存在一個關系資料庫中,伺服器使用org.apache.catalina.session.JDBCManager類從資料庫中獲取 Session 信息。

3. 基於文件的持久性:這里使用類org.apache.catalina.session.FileManager 把session 狀態保存到一個文件系統。

Session Manager

Tomcat 通過 org.apache.catalina.Manager 來管理 Session,Manager 介面總是和 Context Container 相關聯。它主要負責 session 的建立、更新和銷毀。該介面中一些重要的方法有:

用戶在 Servlet 中通過 javax.servlet.http.HttpServletRequest 介面的 getSession 方法獲得 Session,而該介面的實現位於 org.apache.catalina.connector.Request 類中的 doGetSession 方 法中,在該方法中通過 org.apache.catalina.Manager 來獲得 Session , doGetSession 方法的 部分代碼如下:

組通訊框架--Tribe

組通訊框架 Tribe 在 Tomcat 中的位置可如下圖

如圖所示,Tribe 的核心主要是 Channel 類,由此看出,它採用 NIO 進行 Socket 通訊,運用

了組播,事件、心跳檢測等技術,下面我們來著重看看代碼中 Tomcat 是如何與 Tribe 衍接首先在 SimpleTcpReplication 類中的實現 Manager 介面的 start 方法中:

Cluster

Cluster 用於管理集群中的 Session 復制,它有一個簡單的實現類 SimpleTcpCluster。

;

❸ 什麼是J2EE和J2ME它們是用來干什麼的

J2EE和JAVA有關系

一、准備篇

1 什麼是J2EE?它和普通的Java有什麼不同?
答:J2EE全稱為Java2 Platform, Enterprise Edition。
「J2EE平台本質上是一個分布式的伺服器應用程序設計環境——一個Java環境,它提供了:
·宿主應用的一個運行基礎框架環境。
·一套用來創建應用的Java擴展API。」(引自《J2EE伺服器端高級編程》)

2 J2EE好學嗎?
答:J2EE是很多技術的集合體,並且還在成長中。
你會遇到很多專有名詞:比如(X)HTML,Servlet/JSP,JDBC,JMS,JNDI,EJB,XML,Web Service……。
尤其是XML和Web Service正在快速成長。幸運的是,你不需要等到學會所有技術後再開始編程。
大體上J2EE可以分成3個主要應用:Servlet/JSP,EJB,XML/Web Service 和一些支撐技術例如JDBC和JNDI。
你可以一個一個的學。

3 J2EE有什麼用?
答:用來建設大型的分布式企業級應用程序。或者用更時髦的名詞說就是「電子商務」應用程序。
這些企業可能大到擁有中心資料庫伺服器,Web伺服器集群和遍布全國的辦公終端,也可能小到只不過想做一個網站。

4 學J2EE有前途嗎?
答:在這一市場目前只有一種技術可以和J2EE競爭,那就是Microsoft的.NET。
相對來說.NET要「新」一些而J2EE要「老」一些。
但是.NET只能用於Windows平台(Microsoft聲稱要開發C#在Linux上的虛擬機但是尚未兌現該諾言),
考慮到Linux的發展勢頭,你可以相信.NET不會一統天下。

5 據說J2EE的性能不如.NET好,是真的嗎?
答:在Sun公司提供的樣常式序Pet Store上,Microsoft聲稱不如相同的.NET程序好。
而Sun公司反駁說這一程序不能真正體現J2EE的性能,並且指責Microsoft在資料庫上做了優化。
作者沒有學習過.NET因而不能妄下斷言。
無論如何,大型分布式程序中的性能瓶頸通常首先來自於錯誤的設計。

6 聽你說了這么多,我想學著玩玩。
答:除非你想靠它當飯吃或者作為技術儲備,否則請不要浪費你的時間。
Flash要好玩得多。計算機游戲就更加好玩了。

7 學習J2EE該怎麼開始?
答:首先,下載一個J2EE伺服器。其次,去java.sun.com下載J2EE的API。第三,找一本好的參考書。最後,找一個順手的IDE。
J2EE伺服器。你可以用Sun的J2EE SDK(免費),或者Weblogic(性能最好,但是太大,而且作者不推薦盜版行為),或者JBoss(免費,就是文檔太少),或者JRun(開發版免費,作者用這個)。參考書作者感覺Wrox的《J2EE伺服器端高級編程》不錯,但是太老(作者手頭的是2001年中文版)。你還需要去下載一些最新的技術資料(當然肯定是英文的)。
IDE如果你的機器配置夠好(內存至少512M以上,256M或以下請勿考慮),可以用IBM的WSAD,不然就繼續用Eclipse或者其他。
你也可以經常去水木清華的Java版逛逛,但是在發貼前先看看精華區里有沒有你要的答案。

8 我下了一個J2EE伺服器但是不會配置。
答:請認真閱讀隨機指導文檔,不同的伺服器的配置都不一樣,作者愛莫能助。

9 我發現你沒有提到Tomcat。
答:Tomcat只是一個Web伺服器,更准確地說主要只是一個Web Container。
如果你想要學習EJB的話,Tomcat無法滿足你的需要。

二、 Servlet/JSP篇

10 什麼是Servlet?
答:一個Servlet是一個Java類。它處理Http(s)請求並作出響應,包括返回一個HTML頁面或轉交給其他URL處理。
Servlet必須運行在一個Web Container例如Tomcat中。
Servlet必須是javax.servlet.http.HttpServlet的子類,
你可以繼承doGet()或者doPost()方法,兩者分別對應於Http(s)中的Get請求和Post請求。

11 我怎麼獲得Http請求里的參數?
答:HttpRequest的getParameter()方法。例如:String paramValue = request.getParameter("paramName");

12 我怎麼返回結果?
答:你可以利用相關API打開一個輸出流,並向流中直接寫入一個HTML頁面。
但是作者完全不贊成這樣做。一方面這樣做會很羅嗦。
另一方面從Model-View-Controller模式(在《J2EE核心模式》中被歸為Front Controller模式)的觀點來看,
你應當提供一些HTML或者JSP作為視圖(view),而Servlet則根據請求參數決定轉到哪一個視圖。
你可以利用response.sendRedirect(...)方法或request.getDispatcher(...).forward()方法來實現。

13 sendRedirect()和forward()有什麼不同?
答:sendRedirect()是向瀏覽器發送一個redirect通知,瀏覽器重定向到新的URL。
而forward是在伺服器端直接轉到新的URL,對於瀏覽器是透明的。
前者瀏覽器的地址欄顯示的是新的URL,後者瀏覽器的地址欄顯示的是Servlet的URL。
因而當目標URL會自動刷新時,兩者會造成一些差別。

14 我寫了一個Servlet程序,怎麼運行它?
答:開發J2EE程序有一個部署(deploy)的概念,實際上是開發——部署——運行的三部曲。
大多數伺服器支持Hot deploy。你只需要在相應的Application目錄(具體路徑依賴於伺服器)下面
建立一個符合WAR或EAR格式(參見16,17)的目錄,啟動伺服器,就可以通過瀏覽器訪問了。
特別的,你的Servlet的class文件應當放在/WEB-INF/classes目錄中。
注意J2EE SDK不支持Hot deploy,你需要通過它的deploy tool來部署。
Tomcat只支持WAR格式。

15 EAR和WAR有什麼不同?
答:EAR是一個完整的J2EE應用程序,包括Web部分和EJB部分。
WAR只是其中的Web部分。

16 EAR格式是怎樣的?
答:一個EAR可以包含任意多個WAR或EJB JAR,並且包含一個META-INF的目錄。
在/META-INF中包含了一個application.xml,其中描述了這個EAR包含哪些模塊,以及安全性配置。
細節請看參考書。

17 WAR格式是怎樣的?
答:一個WAR包含一個WEB-INF的目錄,這個目錄下包含classes目錄,lib目錄和web.xml。
/WEB-INF/classes存放按package組織的class文件,/WEB-INF/lib目錄存放jar文件,
web.xml描述了很多東西,請讀參考書。

18 我的普通HTML文件應當放在哪裡?
答:放在除了/WEB-INF以外的其他地方。

19 我訪問不到servlet,甚至連HTML文件都訪問不到!
答:第一你沒啟動伺服器。第二你敲錯了埠。第三你沒有正確配置context-path。
第四你的伺服器不支持auto reload或者你關閉了這一選項,你得重啟伺服器。
第五確認你沒有把HTML放在/WEB-INF目錄下,那是訪問不到的。

20 我能訪問HTML但是訪問不到servlet。
答:請檢查你的web.xml文件。確保你正確定義了<servlet>和<servlet-mapping>元素。
前者標識了一個servlet,後者將一個相對於context-path的URL映射到一個servlet。
在Tomcat中你可以通過/context-path/servlet/package/servletname的形式訪問servlet,
但是這只是Tomcat的便捷訪問方式,並不是正式規范。
細節請看參考書。

21 什麼是JSP?它和Servlet有什麼區別?
答:你可以將JSP當做一個可擴充的HTML來對待。
雖然在本質上JSP文件會被伺服器自動翻譯為相應的Servlet來執行。
可以說Servlet是面向Java程序員而JSP是面向HTML程序員的,除此之外兩者功能完全等價。

22 我的JSP顯示的漢字是亂碼。
答:在你的JSP開頭加上一行 <%@ page contentType="text/html; charset=gb2312"%>
如果你已經聲明了page我想你知道該怎麼修改。

23 JSP文件存放在哪裡?
答:除了/WEB-INF下的任何地方。

24 在JSP裡面怎麼引用Java Bean。
答:首先,確認你要引用的類在/WEB-INF/classes下或在/WEB-INF/lib的某個jar內。
其次,在JSP里加一行 <jsp:useBean id="..." scope="..." class="..."/>
具體解釋請看參考書。

25 我想在servlet間傳遞數據。
答:利用session。在Servlet/JSP中,你可以在4個地方保存數據。
1) page,本頁面。
2) session,用來存放客戶相關的信息,比如購物車,對應介面為javax.servlet.http.HttpSession。
session機制實際上是cookie和URL Rewrite的抽象,伺服器會自動使用cookie或URL Rewrite來實現。
3) request,可以在forward()時傳遞信息,對應介面為javax.servlet.http.HttpRequest。
4) application,或稱context,存放全局信息,對應介面為javax.servlet.ServletContext。

26 怎麼調用cookie?
答:作者建議使用session,你總是會遇到某些禁用cookie的用戶。這時session會自動使用URL重寫來實現。

27 怎麼在JSP裡面實現文件下載?
答:實際上這是一個HTML的問題。答案是一個超鏈接<a>。

28 怎麼實現文件上傳
答:客戶端是HTML問題,在form中設置method為post,enctype為multi-part/form-data,加一個<input type="file">。
而在接收的servlet中只是一個I/O問題。

29 我想讓頁面自動刷新,比如聊天室。
答:這是一個HTML問題,在<head>部分中加一條<meta http-equiv="refresh" content="5" url="...">。
這是所謂的Clinet-push,客戶端刷新技術。

30 我想讓用戶登錄以後才能訪問頁面。
答:使用聲明式安全措施。
你只需要在web.xml中定義安全形色(Role),並定義受保護的URL集合只能由特定Role訪問。
大多數伺服器支持基於資料庫的用戶映射,你只要在相應資料庫中建立兩張表並配置伺服器就可以了。
注意J2EE SDK不支持基於資料庫的用戶映射。
細節請看參考書和伺服器文檔。

31 我想要能注冊用戶。
答:參看30。在接受注冊請求的Servlet中執行寫入資料庫操作即可。

32 怎麼在JSP中訪問資料庫?
答:標准做法是使用DAO模式,定義一個Java bean來訪問資料庫並在JSP中使用。
然而,當你的資料庫模式很簡單時,你可以使用JSTL中的<sql:query>標簽來快速訪問。

33 什麼是JSTL?
答:JSTL是Jsp Standard Tag Library的縮寫。這是一組通用標簽並將成為JSP 2.0的一部分。
其中包含賦值<c:set>,分支<c:if>,循環<c:forEach>,查詢資料庫<sql:query>,更新資料庫<sql:update>
等。目前你需要像添加自定義標簽庫一樣來添加JSTL,但是可以預計JSP 2.0會將JSTL作為組成部分。
標簽庫可以在http://jakarta.apache.org下載。注意JSTL需要在支持JSP1.2或更高版本的容器下運行。
幫助文件可以閱讀sun的JSTL正式規范。

=======================================================
j2me入門--什麼是J2ME及J2ME基礎知識

Java發展歷史
相信熟悉Java 演進歷史的人或多或少都聽說過,Java 技術一開始並非就叫做 Java ,而是叫做OAK ,而且最早的時候就是為了嵌入式系統而設計的一項產品。後來因為網際網路的發達,而OAK 的諸多特性剛好又適合用在網路上(例如可移植性、編譯後程序碼很小),因為商標已被注冊的關系,因此 OAK 被改名成Java ,從此因緣際會地成了網路上的閃亮巨星,並隨著時間越來越成熟,也慢慢地產生了許多非原本預期中的相關運用。雖然 Java 已經被用到許多企業級軟體上,可是其實骨子裡面還是非常適合用在嵌入式系統之中。

雖然從Java 1.0 發表之後,Java 就被廣泛地使用在桌上型應用程序以及Applet 的開發上,但是,從Java 1.1 開始,Java又回到了它一開始的老路--也就是嵌入式系統方面的應用,在當時Sun Microsystems 發表了Embedded Java 與Personal Java(也有人簡稱為PJava)這兩項規格。其中Embedded Java 是為了資源十分有限,而且沒有顯示設備的嵌入式裝置而設計; Personal Java 則是為了在能夠與網際網路連線、並擁有顯示系統(例如彩色LCD)的消費性電子裝置而設計。接著Java 的版本演進到Java 2 ,這時為了再明顯區分各種Java 的應用,所以分割出了J2EE 、J2SE、以及 J2ME 三種版本。這三種版本的各種特性我們已經在前面已經詳細地描述,在此不再贅述。不過請大家記住,由於 Java 2將Java 的應用區分成三大塊,使得 Java 程序語言的發展不會再像Java 1.1時如樹枝狀般擴散出去,這么一來有助於大家對 Java 各種應用的澄清,而不會造成今後越發展下去越不可收拾的混亂局面。額外向大家一提的是,後來Personal Java 發展到1.2 版的時候,也採用了一些Java 2 平台上與安全性有關的設計。

J2ME
J2ME 在設計其規格的時候,遵循著「對於各種不同的裝置而造出一個單一的開發系統是沒有意義的事」這個基本原則。於是 J2ME 先將所有的嵌入式裝置大體上區分為兩種 :一種是運算功能有限、電力供應也有限的嵌入式裝置(比方說PDA 、手機);另外一種則是運算能力相對較佳、並請在電力供應上相對比較充足的嵌入式裝置 (比方說冷氣機、電冰箱、電視機上盒 (set-top box))。因為這兩種型態的嵌入式裝置,所以Java 引入了一個叫做Configuration 的概念,然後把上述運算功能有限、電力有限的嵌入式裝置定義在Connected Limited Device Configuration(CLDC)規格之中;而另外一種裝置則規范為 Connected Device Configuration(CDC)規格。也就是說, J2ME 先把所有的嵌入式裝置利用Configuration 的概念區隔成兩種抽象的型態。

其實在這里大家可以把Configuration 當作是J2ME 對於兩種類型嵌入式裝置的規格,而這些規格之中定義了這些裝置至少要符合的運算能力、供電能力、記憶體大小等規范,同時也定了一組在這些裝置上執行的 Java程序所能使用的類別函式庫、這些規范之中所定義的類別函式庫為 Java標准核心類別函式庫的子集合以及與該型態裝置特性相符的擴充類別函式庫。比方就CLDC 的規范來說,可以支援的核心類別函式庫為java.lang.*、java.io.*、java.util.*,而支援的擴充類別函式庫為java.microedition.io.*。區分出兩種主要的Configuration 之後,J2ME 接著在定義出Profile的概念。Profile 是架構在Configuration 之上的規格。之所以有Profile的概念,是為了要更明確地區分出各種嵌入式裝置上Java 程序該如何開發以及它們應該具有哪些功能。因此Profile 之中定義了與特定嵌入式裝置非常相關的擴充類別函式庫,而 Java 程序在各種嵌入式裝置上的使用者介面該如何呈現就是定義在Profile 里頭。Profile 之中所定義的擴充類別函式庫是根據底層Configuration 內所定義的核心類別函式庫所建立。

雖然J2ME標准繁多,但只要把握住標准劃分的原因就很容易掌握。在這個技術飛速發展的領域,我們不能把眼光局限於標準的字面含義,而要靈活掌握,把握其精神。比如,CLDC和CDC的定義中具體的最小內存需求僅僅是"最小的",隨著硬體能力的飛速發展,很有可能一些界限會變得模糊。PDA本來應該屬於CLDC的范圍,但是Compaq的iPaq上卻實現了CDC。以後的下一代PDA有64M內存並不意外,在其上實現CDC也是完全可能的。但是,從功能的角度,應該還是CLDC以及PDA Profile更適合於PDA的條件。到那時,具體的實現就要看廠商和開發者的選擇了。還需要注意的是,由於Profile是建於Configuration之上,作為對Configuration的擴展,因此Profile必須Configuration的支持。有的文章在講到MIDP的內存需求時,說MIDP需要最少256K,這是指MIDP本身。而有的文章說MIDP需要最少768K,那時因為把作為基礎的CLDC所需要的512K算進去了。

CLDC
CLDC是針對少於512KB內存footprint的設備的配置。CLDC採用的是KVM,它是高度優化的JVM方式,他針對的是16比特或32比特的微處理器,160到512 KB內存為基礎的低端,網路連接,電池驅動的設備。典型的內存要求是128KB做有來存儲KVM和相關的庫。更多關於KVM的信息可以從Sun公司的KVM白頁中得到。

就網路化而言,CLDC針對的是有限的和間歇性的無線連接設備,所有在J2ME CLDC之上運行的應用軟體都應能在其他任何高端的Java VM上運行。當然,這需要CLDC庫的支持。CLDC配置關注於I/O,網路化,安全問題,國際化問題和核心Java庫等相關的領域。

與事件處理,用戶和應用程序的互動,應用程序生存期管理等內容相關的領域是由Profile來處理的。使用界面定義(對於特定的設備,如傳呼機,行動電話和PDA)也在Profile層的范圍之內,它建立在頂端之上,並使用J2ME配置。Mobile Information Device Profile (MIDP)是一個J2ME profile,它定義了使用CLDC配置設備的用戶界面相關的規范。

CLDC從J2SE獲得絕大多數的類,但一些針對小內存footprint設備的新類並不是從J2SE APIs獲得的。關於類從J2SE 做繼承和新CLDC類的具體信息,可參考CLDC規范1.0a版本的6.2和6.3中的內容。Java語言規范中的一些例外是沒有浮點支持,沒有類實例的完成化支持和有限的錯誤處理能力。

在這里提到CLDC HotSpot應用也是具有相關性的,它相當於使用CLDC配置的設備的KVM中Java VM的替換。根據Sun公司,CLDC HotSpot執行VM是一個高性能的JVM(32位,採用CLDC v1.0規范)。他在相同的內存footprint上運行時提供比KVM高出一個數量級的更佳的性能。

CDC:完全的Java平台
CDC是應用在具有較大內存,特別是2MB以上的設備上的,CDC針對有限和間歇的無線連接設備,CDC與CVM和Foundation profile共同定義了完全的J2ME環境。

CVM是為用戶和嵌入設備設計的完全功能性JVM,它支持所有的Java 2 v1.3 VM安全防護,JNI, JVMDI, RMI,弱引用功能和庫。本質上說,CVM具有所有一個駐留桌面系統的JVM所具有的功能。

CDC由J2SE中最小的Java數據包組成。Foundation profile由用戶設備所需要的保持類庫和APIs所組成。因此,如果你工作在一個以CDC為基礎的J2ME環境下,你就需要更新你代碼以使APIs更新換代。

CDC是CLDC的一個擴展集,所以在兩種配置之間存在著向上的兼容性。CDC和Foundation profile也提供了對使用PersonalJava實時規范開發的應用程序的完全兼容。

J2ME的平台無關性主要指的是設備的宿主操作系統平台。由於Java平台建築於虛擬機之上,只要不同的操作系統上的虛擬機滿足同樣的規范和標准,對於虛擬機以上的層次是平台無關的。這使得針對某一Configuration或者Profile的應用可以運行於所有實現了這一Configuration或者Profile的操作系統平台。舉例來說,目前已經有網站開始收集基於MIDP的程序--MIDlet,提供下載和收費,各種支持MIDP的設備都可以使用,這包括數量巨大的智能手機和幾乎所有的PDA(Palm OS和Pocket PC)。

相關站點
Java 2 Micro Edition

http://www.javasoft.com/j2me/

JDC J2ME Tech Tips

http://developer.java.sun.com/developer/J2METechTips/

CLDC & KVM

http://www.javasoft.com/procts/cldc/

❹ j2ee屬於什麼軟體架構風格

【J2EE 體系結構簡介】J2EE是針對web服務、業務對象、數據訪問和消息傳送的一組規范。這組應用編程介面(API)確定了web應用與駐留它們的伺服器之間的通信方式。J2EE注重兩件事,一是建立標准,使web應用的部署與伺服器無關;二是使伺服器能控制組件的生命周期和其它資源,以便能夠處理擴展、並發、事務處理管理和安全性等問題。
J2EE平台為設計、開發、安裝和部署企業應用提供基於組件的方法。這種方法不但能降低成本,還能快速跟蹤設計和實施。J2EE平台能提供多層分布式應用模型,重復利用組件,提供統一安全模式,並靈活地控制事務處理。藉助J2EE,不但能更快地將客戶解決方案推向市場,還能使基於J2EE組件、不依賴於平台的解決方案不被鎖定到任何廠商的產品和API上。
J2EE規范定義了以下幾種組件:
1、應用客戶端組件;
2、Enterprise JavaBeans 組件;
3、Servlets 和Java Server Pages(JSP) 組件(也稱為web組件);
4、 小應用程序 (Applet) 。
多層分布式應用模型意味著應用邏輯將根據功能分成幾個部分,用戶可以在相同或不同的伺服器上安裝由不同應用組件組成的J2EE應用。應用組件的安裝位置取決於應用組件在多層J2EE環境中屬於哪一層。
A、客戶端層
可以是在客戶端層內運行的瀏覽器、基於Java的程序或者其它web型編程環境——在公司防火牆內部和外部。
B、應用伺服器層
一般情況下,此層包含支持客戶端請求的表示邏輯和業務邏輯 。表示層由顯示HTML頁面的JSP頁面和servlets實現。業務邏輯通過RMI對象和EJB實現。EJB依靠Container實現事務處理、生命周期和狀態管理、資源池、安全等問題,簡言之, Container就是EJB依賴執行的運行環境。
C、後端層
此層是現有應用和數據倉庫的組合,也稱為企業信息系統(EIS)層,因為它可以包含企業資源規劃(ERP)、大型主機事務處理、資料庫系統及其它遺留下來的信 息系統等許多系統。

❺ Java EE 6 SDK with JDK 7 U3 Oracle GlassFish Server 3.1.2 Java EE 6 SDK Java EE 6 SDK Web Profile

(1) Java EE 6 SDK with JDK 7 U3 Oracle GlassFish Server 3.1.2
(2) Java EE 6 SDK Java EE 6 SDK Web Profile

(1)帶有一個Application Server應用伺服器;(2)沒有

(2)比起(1)來說少了一些東西比如:JMS, JavaMail,JAX-WS,JAX-RS,JAXB,JACC,JCA等。
而且(2)中的EJB是簡化版了的。

❻ j2ee技術體系架構

j2ee技術體系架構

J2EE是一套全然不同於傳統應用開發的技術架構,包含許多組件,主要可簡化且規范應用系統的開發與部署,進而提高可移植性、安全與再用價值。下面是我整理的關於j2ee技術體系架構,歡迎大家參考!

SOA 是一種分布式的軟體模型。SOA 的主要組件包括 服務、動態發現和 消息。

服務是能夠通過網路訪問的可調用常式。服務公開了一個介面契約,它定義了服務的行為以及接受和返回的消息。術語 服務常與術語 提供者互換使用,後者專門用於表示提供服務的實體。

介面通常在公共注冊中心或者目錄中發布,並在那裡按照所提供的'不同服務進行分類,就像電話簿黃頁中列出的企業和電話號碼一樣。客戶(服務消費者)能夠根據不同的分類特徵通過動態查詢服務來查找特定的服務。這個過程被稱為服務的 動態發現。

服務消費者或者客戶通過 消息來消費服務。因為介面契約是獨立於平台和語言的,消息通常用符合 XML 模式的 XML 文檔來構造。

Web 服務作為 SOA

Web 服務建立在開放標准和獨立於平台的協議的基礎之上。Web 服務通過 HTTP 使用 SOAP(一種基於 XML 的協議),以便在服務提供者和消費者之間進行通信。服務通過 WSDL(Web Service Definition Language)定義的介面來公開,WSDL 的語義用 XML 定義。UDDI 是一種語言無關的協議,用於和注冊中心進行交互以及查找服務。所有這些特性都使得 Web 服務成為開發 SOA 應用程序的優秀選擇。

使用 J2EE 1.4 平台開發 SOA/Web 服務框架

1.4 版的 J2EE 平台通過新的 JAX-RPC 1.1 API 提供了完整的 Web 服務支持,這種 API 支持基於 servlet 和企業 bean 的服務端點。JAX-RPC 1.1 基於 WSDL 和 SOAP 協議提供了與 Web 服務的互操作性。J2EE 1.4 平台也支持 Web Services for J2EE 規范(JSR 921),後者定義了 Web 服務的部署需求並利用了 JAX-RPC 編程模型。除了幾種 Web 服務 API 之外,J2EE 1.4 平台還聲稱支持 WS-I Basic Profile 1.0。WS-I Basic Profile 標准讓 Web 服務克服了不同編程語言、操作系統和供應商平台之間的障礙,從而使多種應用程序之間能夠交互(關於 WS-I 的更多信息,請參閱 參考資料部分。)

在 J2EE 1.4 下,Web 服務客戶可以通過兩種方式訪問 J2EE 應用程序。客戶可以訪問用 JAX-RPC API 創建的 Web 服務;在幕後 JAX-RPC 使用 servlet 來實現 Web 服務。Web 服務客戶也可以通過 bean 的服務端點介面訪問無狀態會話 bean。Web 服務客戶不能訪問其他類型的企業 beans。第二種選擇——公開無狀態 EJB 組件作為 Web 服務——有很多優勢:

利用現有的業務邏輯和流程:在許多企業中,現有的業務邏輯可能已經使用 EJB 組件編寫,通過 Web 服務公開它可能是實現從外界訪問這些服務的最佳選擇。EJB 端點是一種很好的選擇,因為它使業務邏輯和端點位於同一層上。

並發支持:作為無狀態會話 bean 實現的 EJB 服務端點不必擔心多線程訪問,因為 EJB 容器必須串列化對無狀態會話 bean 任何特定實例的請求。

對服務的安全訪問:企業 beans 允許在部署描述符中聲明不同方法級別的安全特性。方法級別角色被映射到實際的主體域(principal domain)。使用 EJB 組件作為 Web 服務端點,把這種方法級別的安全性也帶給了 Web 服務客戶。

事務問題:EJB 服務端點在部署描述符規定的事務上下文中運行。容器處理事務,因此 bean 開發人員不需要編寫事務處理代碼。

可伸縮性:幾乎所有 EJB 容器都提供了對無狀態會話 bean 群集的支持。因此當負載增加時,可以向群集中增加機器,Web 服務請求可以定向到這些不同的伺服器。通過把 Web 服務模型化為 EJB 端點,可以使服務具有可伸縮性,並增強了可靠性。

池與資源管理:EJB 容器提供了無狀態會話 bean 池。這改進了資源利用和內存管理。通過把 Web 服務模型化為 EJB 端點,這種特性很容易擴展,使 Web 服務能夠有效地響應多個客戶請求。

;

❼ j2ee是什麼

j2ee
J2EE Java2平台企業版(Java 2 Platform,Enterprise Edition)
J2EE是一套全然不同於傳統應用開發的技術架構,包含許多組件,主要可簡化且規范應用系統的開發與部署,進而提高可移植性、安全與再用價值。
J2EE核心是一組技術規范與指南,其中所包含的各類組件、服務架構及技術層次,均有共通的標准及規格,讓各種依循J2EE架構的不同平台之間,存在良好的兼容性,解決過去企業後端使用的信息產品彼此之間無法兼容,導致企業內部或外部難以互通的窘境。
在J2EE架構下,開發人員可依循規范基礎,進而開發企業級應用;而不同J2EE供貨商,同會支持不同J2EE版本內所擬定的標准,以確保不同J2EE平台與產品之間的兼容性。換言之,植基J2EE架構的應用系統,基本上可部署在不同的應用伺服器之上,無需或者只須要進行少量的代碼修改,即能大幅提高應用系統的可移植性(Portability)。
J2EE主由升陽(SUN)與IBM等廠商協同業界共同擬定而成的技術規范,以企業與企業之間的運算為導向的JAVA開發環境。J2EE架構定義各類不同組件,如Web Component、EJB Component…等,而各類組件可以再用(reuse),讓已開發完成的組件,或者是經由市面采購而得的組件,均能進一步組裝成不同的系統。
對於開發人員而言,只需要專注於各種應用系統的商業邏輯與架構設計,至於底層繁瑣的程序撰寫工作,可搭配不同的開發平台,以讓應用系統的開發與部署效率大幅提升。
J2EE的核心規范是 Enterprise Java Beans(EJBs)。EJB依照特性的不同,目前共分為三種,分別是Session Bean、Entity Bean,以及 Message Driven Bean 。其中 Session Bean 與Entity Bean 算是EJB的始祖,這兩種EJB規格在EJB 1.x版本推出時就已經存在,而Message Driven Bean則是出現在EJB 2.0的規格之中。
目前業界許多程序設計師,或者是網頁設計人員,多利用JSP/Servlet的便利性,進而在J2EE伺服器之上開發相關的應用,或是整合公司內部的各種資源。
Java 2平台依照應用領域的不同,共分為三大版本,分別是J2EE、標准版本J2SE(Java 2 Platform, Standard Edition)、微型版本J2ME(Java 2 Platform, Micro Edition),以及Java Card等。
從整體上講,J2EE是使用Java技術開發企業級應用的一種事實上的工業標准(Sun公司出於其自身利益的考慮,至今沒有將Java及其相關技術納入標准化組織的體系),它是Java技術不斷適應和促進企業級應用過程中的產物。Sun推出J2EE的目的是為了克服傳統Client/Server模式的弊病,迎合Browser/Server架構的潮流,為應用Java技術開發伺服器端應用提供一個平台獨立的、可移植的、多用戶的、安全的和基於標準的企業級平台,從而簡化企業應用的開發、管理和部署。J2EE是一個標准,而不是一個現成的產品。各個平台開發商按照J2EE規范分別開發了不同的J2EE應用伺服器,J2EE應用伺服器是J2EE企業級應用的部署平台。由於它們都遵循了J2EE規范,因此,使用J2EE技術開發的企業級應用可以部署在各種J2EE應用伺服器上。
為了推廣並規范化使用J2EE架構企業級應用的體系架構,Sun同時給出了一個建議性的J2EE應用設計模型:J2EE Blueprints。J2EE Blueprints提供了實施J2EE企業級應用的體系架構、設計模式和相關的代碼,通過應用J2EE Blueprints所描述的體系模型,能夠部分簡化架構企業級應用這項復雜的工作。J2EE Blueprints是開發人員設計和優化J2EE組件的基本原則,同時為圍繞開發工作進行職能分工給出了指導性策略,以幫助應用開發設計人員合理地分配技術資源。
J2EE組成了一個完整企業級應用的不同部分納入不同的容器(Container),每個容器中都包含若干組件(這些組件是需要部署在相應容器中的),同時各種組件都能使用各種J2EE Service/API。J2EE容器包括:
◆ Web容器 伺服器端容器,包括兩種組件JSP和Servlet,JSP和Servlet都是Web伺服器的功能擴展,接受Web請求,返回動態的Web頁面。Web容器中的組件可使用EJB容器中的組件完成復雜的商務邏輯。
◆ EJB容器 伺服器端容器,包含的組件為EJB(Enterprise JavaBeans),它是J2EE的核心之一,主要用於伺服器端的商業邏輯的實現。EJB規范定義了一個開發和部署分布式商業邏輯的框架,以簡化企業級應用的開發,使其較容易地具備可伸縮性、可移植性、分布式事務處理、多用戶和安全性等。
◆ Applet容器 客戶端容器,包含的組件為Applet。Applet是嵌在瀏覽器中的一種輕量級客戶端,一般而言,僅當使用Web頁面無法充分地表現數據或應用界面的時候,才使用它。Applet是一種替代Web頁面的手段,我們僅能夠使用J2SE開發Applet,Applet無法使用J2EE的各種Service和API,這是為了安全性的考慮。
◆ Application Client容器 客戶端容器,包含的組件為Application Client。Application Client相對Applet而言是一種較重量級的客戶端,它能夠使用J2EE的大多數Service和API。
通過這四個容器,J2EE能夠靈活地實現前面描述的企業級應用的架構。
在View部分,J2EE提供了三種手段:Web容器中的JSP(或Servlet)、Applet和Application Client,分別能夠實現面向瀏覽器的數據表現和面向桌面應用的數據表現。Web容器中的Servlet是實現Controller部分業務流程式控制制的主要手段;而EJB則主要針對Model部分的業務邏輯實現。至於與各種企業資源和企業級應用相連接,則是依靠J2EE的各種服務和API。
在J2EE的各種服務和API中,JDBC和JCA用於企業資源(各種企業信息系統和資料庫等)的連接,JAX-RPC、JAXR和SAAJ則是實現Web Services和Web Services連接的基本支持。
J2EE的各種組件
我們就J2EE的各種組件、服務和API,進行更加詳細的闡述,看看在開發不同類型的企業級應用時,根據各自需求和目標的不同,應當如何靈活使用並組合不同的組件和服務。
· Servlet
Servlet是Java平台上的CGI技術。Servlet在伺服器端運行,動態地生成Web頁面。與傳統的CGI和許多其它類似CGI的技術相比,Java Servlet具有更高的效率並更容易使用。對於Servlet,重復的請求不會導致同一程序的多次轉載,它是依靠線程的方式來支持並發訪問的。
· JSP
JSP(Java Server Page)是一種實現普通靜態HTML和動態頁面輸出混合編碼的技術。從這一點來看,非常類似Microsoft ASP、PHP等技術。藉助形式上的內容和外觀表現的分離,Web頁面製作的任務可以比較方便地劃分給頁面設計人員和程序員,並方便地通過JSP來合成。在運行時態,JSP將會被首先轉換成Servlet,並以Servlet的形態編譯運行,因此它的效率和功能與Servlet相比沒有差別,一樣具有很高的效率。
· EJB
EJB定義了一組可重用的組件:Enterprise Beans。開發人員可以利用這些組件,像搭積木一樣建立分布式應用。在裝配組件時,所有的Enterprise Beans都需要配置到EJB伺服器(一般的Weblogic、WebSphere等J2EE應用伺服器都是EJB伺服器)中。EJB伺服器作為容器和低層平台的橋梁管理著EJB容器,並向該容器提供訪問系統服務的能力。所有的EJB實例都運行在EJB容器中。EJB容器提供了系統級的服務,控制了EJB的生命周期。EJB容器為它的開發人員代管了諸如安全性、遠程連接、生命周期管理及事務管理等技術環節,簡化了商業邏輯的開發。EJB中定義了三種Enterprise Beans:
◆ Session Beans
◆ Entity Beans
◆ Message-driven Beans
· JDBC
JDBC(Java Database Connectivity,Java資料庫連接)API是一個標准SQL(Structured Query Language,結構化查詢語言)資料庫訪問介面,它使資料庫開發人員能夠用標准Java API編寫資料庫應用程序。JDBC API主要用來連接資料庫和直接調用SQL命令執行各種SQL語句。利用JDBC API可以執行一般的SQL語句、動態SQL語句及帶IN和OUT參數的存儲過程。Java中的JDBC相當與Microsoft平台中的ODBC(Open Database Connectivity)。
· JMS
JMS(Java Message Service,Java消息服務)是一組Java應用介面,它提供創建、發送、接收、讀取消息的服務。JMS API定義了一組公共的應用程序介面和相應語法,使得Java應用能夠和各種消息中間件進行通信,這些消息中間件包括IBM MQ-Series、Microsoft MSMQ及純Java的SonicMQ。通過使用JMS API,開發人員無需掌握不同消息產品的使用方法,也可以使用統一的JMS API來操縱各種消息中間件。通過使用JMS,能夠最大限度地提升消息應用的可移植性。 JMS既支持點對點的消息通信,也支持發布/訂閱式的消息通信。
· JNDI
由於J2EE應用程序組件一般分布在不同的機器上,所以需要一種機制以便於組件客戶使用者查找和引用組件及資源。在J2EE體系中,使用JNDI(Java Naming and Directory Interface)定位各種對象,這些對象包括EJB、資料庫驅動、JDBC數據源及消息連接等。JNDI API為應用程序提供了一個統一的介面來完成標準的目錄操作,如通過對象屬性來查找和定位該對象。由於JNDI是獨立於目錄協議的,應用還可以使用JNDI訪問各種特定的目錄服務,如LDAP、NDS和DNS等。
· JTA
JTA(Java Transaction API)提供了J2EE中處理事務的標准介面,它支持事務的開始、回滾和提交。同時在一般的J2EE平台上,總提供一個JTS(Java Transaction Service)作為標準的事務處理服務,開發人員可以使用JTA來使用JTS。
· JCA
JCA(J2EE Connector Architecture)是J2EE體系架構的一部分,為開發人員提供了一套連接各種企業信息系統(EIS,包括ERP、SCM、CRM等)的體系架構,對於EIS開發商而言,它們只需要開發一套基於JCA的EIS連接適配器,開發人員就能夠在任何的J2EE應用伺服器中連接並使用它。基於JCA的連接適配器的實現,需要涉及J2EE中的事務管理、安全管理及連接管理等服務組件。
· JMX
JMX(Java Management Extensions)的前身是JMAPI。JMX致力於解決分布式系統管理的問題。JMX是一種應用編程介面、可擴展對象和方法的集合體,可以跨越各種異構操作系統平台、系統體系結構和網路傳輸協議,開發無縫集成的面向系統、網路和服務的管理應用。JMX是一個完整的網路管理應用程序開發環境,它同時提供了廠商需要收集的完整的特性清單、可生成資源清單表格、圖形化的用戶介面;訪問SNMP的網路API;主機間遠程過程調用;資料庫訪問方法等。
· JAAS
JAAS(Java Authentication and Authorization Service)實現了一個Java版本的標准Pluggable Authentication Mole(PAM)的框架。JAAS可用來進行用戶身份的鑒定,從而能夠可靠並安全地確定誰在執行Java代碼。同時JAAS還能通過對用戶進行授權,實現基於用戶的訪問控制。
· JACC
JACC(Java Authorization Service Provider Contract for Containers)在J2EE應用伺服器和特定的授權認證伺服器之間定義了一個連接的協約,以便將各種授權認證伺服器插入到J2EE產品中去。
· JAX-RPC
通過使用JAX-RPC(Java API for XML-based RPC),已有的Java類或Java應用都能夠被重新包裝,並以Web Services的形式發布。JAX-RPC提供了將RPC參數(in/out)編碼和解碼的API,使開發人員可以方便地使用SOAP消息來完成RPC調用。同樣,對於那些使用EJB(Enterprise JavaBeans)的商業應用而言,同樣可以使用JAX-RPC來包裝成Web服務,而這個Web Servoce的WSDL界面是與原先的EJB的方法是對應一致的。JAX-RPC為用戶包裝了Web服務的部署和實現,對Web服務的開發人員而言,SOAP/WSDL變得透明,這有利於加速Web服務的開發周期。
· JAXR
JAXR(Java API for XML Registries)提供了與多種類型注冊服務進行交互的API。JAXR運行客戶端訪問與JAXR規范相兼容的Web Servcices,這里的Web Services即為注冊服務。一般來說,注冊服務總是以Web Services的形式運行的。JAXR支持三種注冊服務類型:JAXR Pluggable Provider、Registry-specific JAXR Provider、JAXR Bridge Provider(支持UDDI Registry和ebXML Registry/Repository等)。
· SAAJ
SAAJ(SOAP with Attachemnts API for Java)是JAX-RPC的一個增強,為進行低層次的SOAP消息操縱提供了支持。
企業級應用示例
下面我們通過假設一個企業應用的J2EE實現,來了解各種組件和服務的應用。假設應用對象是計算機產品的生產商/零售商的銷售系統,這個銷售系統能夠通過自己的網站發布產品信息,同時也能將產品目錄傳送給計算機產品交易市場。銷售系統能夠在線接受訂單(來自自己的Web網站或者來自計算機產品交易市場),並隨後轉入內部企業管理系統進行相關的後續處理。
參見圖3,這個企業應用可以這種方式架構。該企業應用的核心是產品目錄管理和產品定購管理這兩個業務邏輯,使用EJB加以實現,並部署在EJB容器中。由於產品目錄和定購信息都需要持久化,因此使用JDBC連接資料庫,並使用JTA來完成資料庫存取事務。
圖3 J2EE應用示例
然後使用JSP/Servlet來實現應用的Web表現:在線產品目錄瀏覽和在線定購。為了將產品目錄發送給特定的交易市場,使用JMS實現非同步的基於消息的產品目錄傳輸。為了使得更多的其它外部交易市場能夠集成產品目錄和定購業務,需要使用Web Services技術包裝商業邏輯的實現。由於產品定購管理需要由公司內部雇員進行處理,因此需要集成公司內部的用戶系統和訪問控制服務以方便雇員的使用,使用JACC集成內部的訪問控制服務,使用JNDI集成內部的用戶目錄,並使用JAAS進行訪問控制。由於產品訂購事務會觸發後續的企業ERP系統的相關操作(包括倉儲、財務、生產等),需要使用JCA連接企業ERP。
最後為了將這個應用納入到企業整體的系統管理體系中去,使用Application Client架構了一個管理客戶端(與其它企業應用管理應用部署在一台機器上),並通過JMX管理這個企業應用。

❽ J2EE 如何手動建立一個Web工程

手工方式開發一個web應用的步驟:
1) 創建一個目錄Servlet,進入這個目錄,創建一個WEB-INF目錄
2) 進入WEB-INF目錄,創建classes和lib目錄以及web.xml
3) 配置環境變數
環境變數:指系統啟動時需要載入的一些常用的配置以及軟體。

linux用戶:
1) 打開一個終端
2) vi .bashrc
//CATALINA_HOME=/opt/jakarta-tomcat-5.0.28
CATALINA_HOME=/home/briup/jakarta-tomcat-5.0.28
CLASSPATH=.:$CATALINA_HOME/common/lib/servlet-api.jar
export CATALINA_HOME CLASSPATH
3) 保存退出
4) . ./.bashrc
5) echo $CLASSPATH(查看配置是否生效)

windows用戶:
1) 右擊我的電腦-->高級--->環境變數
2) 在CLASSPATH的環境變數上增加一個CATALINA_HOME 和CLASSPATH
CATALINA_HOME=C:\jakarta-tomcat-5.0.28
CLASSPATH=.;%CATALINA_HOME%\common\lib\servlet-api.jar

4) 編寫一個myFirstServlet.java
package com;
import javax.servlet.http.*;
import java.io.*;
public class MyFirstServlet extends HttpServlet {
public void doGet(HttpServletRequest req,HttpServletResponse res)
throws IOException,ServletException{
String name = req.getParameter("name");
Date date = new Date();
//指明MIME
res.setContentType("text/html");
//獲得輸出流
PrintWriter pw = res.getWriter();
//構建客戶頁面
pw.println("<html>");
pw.println("<head>");
pw.println("<title>MyFirstServlet</title>");
pw.println("</head>");
pw.println("<body>");
pw.println("<h1>");
pw.println("currentSystemTime:"+date);
pw.println("</h1>");
pw.println("<h2> hello, "+name+"!</h2>");
pw.println("</body>");
pw.println("</html>");

pw.flush();
pw.close();
}
public void doPost(HttpServletRequest req,HttpServletResponse res)
throws IOException,ServletException{
doGet(req,res);
}
}
5) 在web.xml中描述這個servlet
<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4"

xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<servlet>
<servlet-name>firstServlet</servlet-name>
<servlet-class>com.MyFirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>firstServlet</servlet-name>
<url-pattern>/basic/hello</url-pattern>
</servlet-mapping>

</web-app>
6)編譯
javac -d WebRoot/WEB-INF/classes -cp WebRoot/WEB-INF/lib/servlet-api.jar
src/com/MyFirstServlet.java
7) 新建文件夾和工程名字一樣,將webRoot 下的內容全部拷貝到tomcat 下的webapps
目錄下
8) 啟動tomcat
進入tomcat 下的bin目錄,啟動方式:
linux用戶:
右擊滑鼠 --> 打開終端 --> 運行 ./startup.sh 啟動tomcat
運行 ./shutdown.sh 關閉tomcat
windows用戶:
雙擊startup.bat 啟動tomcat
雙擊shutdown.sh關閉tomcat
9) 在地址欄中輸入URL訪問
http://localhost:8080/servlet/basic/hello?name=xuxiang

❾ j2ee是做什麼的

一般就是做做網站編程等企業用的功能。