開發(fā)Java EE應(yīng)用程序

2018-09-11 13:49 更新

開發(fā)Java EE應(yīng)用程序

本教程說明了Java EE應(yīng)用程序開發(fā)工作流程。

我們將要開發(fā)的應(yīng)用程序?qū)⑹亲钚〉?。它將是一個(gè)JSP頁面Java Web應(yīng)用程序。但是,此處顯示的IntelliJ IDEA功能適用于任何復(fù)雜的Java EE應(yīng)用程序。

開始之前

確保您的計(jì)算機(jī)上安裝了以下軟件:

  • IntelliJ IDEA ULTIMATE版。
  • GlassFish Server,版本3.0.1或更高版本。 下載GlassFish。(您可以使用任何其他支持Java EE的應(yīng)用程序服務(wù)器。此處僅使用GlassFish作為示例。)
  • 一個(gè)Web瀏覽器。

創(chuàng)建一個(gè)項(xiàng)目

  1. 單擊歡迎界面上的創(chuàng)建新項(xiàng)目(Create New Project),或選擇:文件|新建|項(xiàng)目(File | New | Project)?!靶陆?xiàng)目”向?qū)⒋蜷_。
  2. 在左側(cè)窗格中,選擇Java Enterprise。
  3. 指定要使用的JDK(Project SDK字段):從列表中選擇一個(gè),單擊“新建”并選擇JDK安裝文件夾,或單擊Download JDK。
  4. 指定應(yīng)用程序服務(wù)器。(我們將使用GlassFish Server。)
    如果尚未在IntelliJ IDEA中定義GlassFish,請單擊Application Server字段右側(cè)的新建,然后選擇Glassfish Server。
    在Glassfish服務(wù)器對話框中,指定GlassFish Server安裝目錄。
  5. 在“其他庫和框架(Additional Libraries and Frameworks)”下,選中“Web應(yīng)用程序”復(fù)選框。
    HWJEE009NewProjectFirstPageFinal
    單擊“下一步”。
  6. 指定新項(xiàng)目的名稱(例如,JavaEEHelloWorld)。
    HWJEE010NewProjectName
    單擊“完成”并在IntelliJ IDEA創(chuàng)建項(xiàng)目時(shí)等待。

探索項(xiàng)目結(jié)構(gòu)

創(chuàng)建項(xiàng)目后,您將在“項(xiàng)目”工具窗口中看到與此類似的內(nèi)容。

HWJEE011ProjectInit
  • JavaEEHelloWorld是一個(gè)模塊文件夾(在本例中與項(xiàng)目文件夾重合)。該.idea文件夾和JavaEEHelloWorld.iml文件分別包含項(xiàng)目和模塊的配置數(shù)據(jù)。該src文件夾用于Java源代碼。該web文件夾用于應(yīng)用程序的Web部分。此文件夾包含部署描述符WEB-INF/web.xml和index.jsp用作應(yīng)用程序起始頁的文件。
  • 外部庫包含用于處理GlassFish的JDK和JAR文件。

開發(fā)源代碼

我們的應(yīng)用程序?qū)⑹且粋€(gè)JSP頁面應(yīng)用程序。它唯一的功能就是輸出:Hello,World!

  1. 打開index.jsp以進(jìn)行編輯:在“項(xiàng)目”工具窗口中選擇文件,然后按F4。
  2. 在<body>和</body>之間輸入:Hello, World!
    HWJEEIndexJSPHelloWorld
    此步驟的代碼已準(zhǔn)備就緒。

運(yùn)行應(yīng)用程序

在工作區(qū)的右上角,單擊 。

HWJEE019Run

IntelliJ IDEA編譯您的源代碼并構(gòu)建應(yīng)用程序工件。

之后,將打開“運(yùn)行”工具窗口。IntelliJ IDEA啟動服務(wù)器并將工件部署到其上。

HWJEE020RunToolWindow

最后,您的默認(rèn)Web瀏覽器啟動,您將看到應(yīng)用程序輸出:Hello, World!。

HWJEE021HelloWorldInBrowser

修改代碼并觀察更改

  1. 在index.jsp中,將“Hello, World!”改為“Hello!”。
    HWJEE022ModifyCode
  2. 在“運(yùn)行”工具窗口中,單擊“更新”( )。
    HWJEE023RunToolWindowUpdate
  3. 在Update對話框中,選擇Update resources并單擊OK。
    HWJEE024UpdateDialog
  4. 切換到Web瀏覽器并重新加載頁面以查看更改。
    HWJEE025HelloInBrowser

探索運(yùn)行配置

在創(chuàng)建項(xiàng)目時(shí),我們將GlassFish指定為應(yīng)用程序服務(wù)器。因此,IntelliJ IDEA為GlassFish創(chuàng)建了一個(gè)運(yùn)行配置。

當(dāng)我們執(zhí)行“運(yùn)行”命令( )時(shí),我們啟動了運(yùn)行配置?,F(xiàn)在讓我們看看運(yùn)行配置,看看它的設(shè)置如何映射到我們剛剛觀察到的事件。

  1. 單擊運(yùn)行配置選擇器,然后選擇“編輯配置(Edit Configurations)”。
    HWJEE026EditConfigurations
    將打開“運(yùn)行/調(diào)試配置(Run/Debug Configurations)”對話框,并顯示GlassFish運(yùn)行配置的設(shè)置。
    HWJEE027RunDebugConfigurations
    "啟動前任務(wù)列表"(在對話框的下部)指定應(yīng)編譯應(yīng)用程序代碼,并在執(zhí)行運(yùn)行配置之前生成相應(yīng)的工件。
    HWJEE028RunConfigBeforeLaunch 
  2. 選擇“啟動/連接(Startup/Connection)”選項(xiàng)卡以查看服務(wù)器在運(yùn)行,調(diào)試和代碼覆蓋模式下的啟動方式。
    HWJEE030RunConfigStartupConnection
  3. 選擇“部署(Deployment)”選項(xiàng)卡以查看服務(wù)器啟動后部署的工件。
    HWJEE029RunConfigDeployment
  4. 返回“服務(wù)器(Server)”選項(xiàng)卡。
    打開瀏覽器下的設(shè)置指定在啟動后(即在服務(wù)器啟動并將工件部署到其上之后),默認(rèn)Web瀏覽器應(yīng)該啟動并轉(zhuǎn)到指定的URL(http://localhost:8080/JavaEEHelloWorld_war_exploded)。
    “更新”操作右側(cè)的設(shè)置指定在“運(yùn)行”工具窗口單擊 更新圖標(biāo)時(shí),應(yīng)顯示“更新”對話框,默認(rèn)情況下應(yīng)使用“更新資源”選項(xiàng)。(上次使用的更新選項(xiàng)將成為默認(rèn)選項(xiàng))。
    HWJEE028RunConfigServer
  5. 單擊“確定”。

探索工件配置

在創(chuàng)建項(xiàng)目時(shí),我們表示我們將開發(fā)一個(gè)Web應(yīng)用程序。因此,IntelliJ IDEA創(chuàng)建了用于構(gòu)建Web應(yīng)用程序工件的配置。我們來看看這個(gè)配置。

  1. 打開“項(xiàng)目結(jié)構(gòu)”對話框: 文件|項(xiàng)目結(jié)構(gòu)(File|Project Structure),或使用:Ctrl+Shift+Alt+S。
  2. 在“項(xiàng)目設(shè)置”下,選擇“工件”??捎玫墓ぜ渲蔑@示在右側(cè)窗格中的 圖標(biāo)一般添加svg圖標(biāo)一般刪除svg。(目前只有一種配置。)
    HWJEE032ProjectStructureArtifacts
    工件設(shè)置顯示在對話框的右側(cè)部分。
    HWJEE033ProjectStructureArtifactSettings
    類型;工件類型是Web Application:Exploded。這是一個(gè)解壓縮的Web應(yīng)用程序歸檔(WAR),一種可以部署到Web服務(wù)器上的目錄結(jié)構(gòu)。
    輸出目錄;構(gòu)造時(shí),工件被放入 <project_folder>/out/artifacts/JavaEEHelloWorld_war_exploded。
    輸出布局;工件結(jié)構(gòu)顯示在“輸出布局(Output Layout)”選項(xiàng)卡的左側(cè)窗格中 。
    所述<output root>對應(yīng)于輸出目錄。其他元素具有以下含義:
    • 'JavaEEHelloWorld' compile output表示編譯的Java類,其源位于src目錄中。
    • 這些放在輸出目錄中的WEB-INF/classes;'Web' facet resources代表web目錄的內(nèi)容。

將應(yīng)用程序打包到WAR文件中

當(dāng)您對應(yīng)用程序感到滿意時(shí)進(jìn)入舞臺,您可能希望將其置于WAR (Web應(yīng)用程序存檔)中。為此,您應(yīng)該創(chuàng)建適當(dāng)?shù)墓ぜ渲?,然后?gòu)建工件:

  1. 單擊 圖標(biāo)一般添加svg,指向Web Application: Archive,然后選擇“JavaEEHelloWorld:war explosion”。
    HWJEE034ProjectStructureNewArtifact
    將創(chuàng)建一個(gè)新的工件配置,其設(shè)置將顯示在對話框的右側(cè)。
    HWJEE035ProjectStructureNewArtifactSettings
  2. 為存檔創(chuàng)建清單文件:單擊Create Manifest,并同意IntelliJ IDEA(web/META-INF/MANIFEST.MF)建議的位置。
  3. 在Project Structure對話框中單擊OK。
  4. 選擇:構(gòu)建|構(gòu)建工件(Build | Build Artifacts)。
    HWJEE036BuildArtifacts
  5. 在Build Artifact彈出窗口中,指向JavaEEHelloWorld:war并選擇Build。
    HWJEE037BuildArtifactPopup
    現(xiàn)在,如果您查看該out/artifacts/JavaEEHelloWorld_war文件夾,您將在那里看到存檔文件。
    HWJEE038ArtifactInProjectToolWindow

將工件部署到正在運(yùn)行的服務(wù)器上

有時(shí)您需要將應(yīng)用程序部署到正在運(yùn)行的服務(wù)器上。本節(jié)提供了一個(gè)操作示例。

不啟動服務(wù)器的服務(wù)器運(yùn)行配置稱為遠(yuǎn)程。例如,可以使用這樣的運(yùn)行配置來將應(yīng)用程序部署到已經(jīng)運(yùn)行的服務(wù)器。

讓我們創(chuàng)建一個(gè)運(yùn)行配置,用于將WAR工件部署到正在運(yùn)行的服務(wù)器,并查看它是如何工作的。(到目前為止,服務(wù)器已由前面討論的運(yùn)行配置啟動 。)

  1. 單擊運(yùn)行配置選擇器,然后選擇“編輯配置”。
    HWJEE026EditConfigurations
  2. 單擊 圖標(biāo)一般添加svg,指向GlassFish Server并選擇遠(yuǎn)程(Remote)。
    HWJEE039NewRemoteServerRunConfig
  3. 將運(yùn)行配置名稱未命名更改為更合理的名稱(例如,GlassFishRemote)。
    HWJEE040RunConfigName
  4. 指定要部署到服務(wù)器的工件:選擇“部署”選項(xiàng)卡,單擊 圖標(biāo)一般添加svg并選擇“工件(Artifact)”。
    HWJEE041DeploymentPlusArtifact
    在打開的對話框中,選擇WAR工件。
    HWJEE042SelectArtifact
    結(jié)果應(yīng)該類似于:
    HWJEE043ArtifactDefined
  5. 在“運(yùn)行/調(diào)試配置”對話框中 單擊“確定”?,F(xiàn)在讓我們看看這個(gè)運(yùn)行配置是如何工作的。
  6. 執(zhí)行運(yùn)行配置:單擊icons toolwindows toolWindowRun svg。
    HWJEE044Run
    運(yùn)行配置輸出顯示在“運(yùn)行”工具窗口中。
    HWJEE045RunToolWindow
    片刻之后,Web瀏覽器中的新選項(xiàng)卡將打開,您可以在那里看到應(yīng)用程序輸出。
    HWJEE046HelloInBrowser

將應(yīng)用程序打包到EAR中:使用Java EE Application支持

要將Java EE應(yīng)用程序打包到EAR中,您應(yīng)該:

  1. 創(chuàng)建Java EE部署描述符application.xml。
  2. 配置EAR工件。
  3. 構(gòu)建該工件。

正如我們將要看到的,IntelliJ IDEA為您執(zhí)行大部分這些任務(wù),作為其Java EE應(yīng)用程序支持的一部分:

  1. 在“項(xiàng)目”工具窗口中,右鍵單擊模塊文件夾,然后選擇“添加框架支持”。
    HWJEE051AddFrameworkSupport
  2. 在打開的對話框中,選中JavaEE Application復(fù)選框,然后單擊“確定”。
    HWJEE052JavaEEAppSupport
    請注意META-INF/application.xml在模塊文件夾中創(chuàng)建的描述符文件。
    HWJEE053AppXMLInProject
  3. 在編輯器中打開文件(F4)。
    HWJEE054AppXMLInEditor
    目前,該文件幾乎是空的。
  4. 現(xiàn)在讓我們看一下工件配置。
    請注意,出現(xiàn)了一個(gè)新配置,一個(gè)用于分解EAR工件的配置。
    HWJEE055Artifacts
    目前,只有JavaEE Application facet資源(META-INF/application.xml)包含在工件中。 HWJEE056ExplodedEARInitial
  5. 讓我們將分解的WAR工件的副本添加到EAR工件結(jié)構(gòu)中。為此,在“可用元素(Available Elements)”下,展開“工件(Artifacts)”節(jié)點(diǎn),然后雙擊分解的WAR工件。以下是得到的結(jié)果。
    HWJEE057ExplodedEARWithWAR
    (獲得相同結(jié)果的另一種方法是: 圖標(biāo)一般添加svg|工件|JavaEEHelloWorld: war exploded( icons general add svg | Artifact | JavaEEHelloWorld: war exploded))
  6. 請注意,消息Web facet未在application.xml中注冊。單擊“修復(fù)”。(稍后,我們將看看application.xml這個(gè)快速修復(fù)所做的更改。)
  7. 為EAR工件創(chuàng)建配置:  icons general add svg|JavaEE Application: Archive|For 'JavaEEHelloWorld:ear exploded'。
    HWJEE058NewEAR
  8. 要創(chuàng)建清單文件,請單擊“創(chuàng)建清單”并同意默認(rèn)文件位置(<project_folder>/META-INF/MANIFEST.MF)。
    HWJEE059EARStructure
  9. 在Project Structure對話框中單擊“確定”。
    看到你application.xml已經(jīng)改變了。這是應(yīng)用快速修復(fù)的結(jié)果。
    HWJEE060AppXMLChanged
    現(xiàn)在讓我們創(chuàng)建一個(gè)用于構(gòu)建和部署EAR工件的運(yùn)行配置。
  10. 單擊運(yùn)行配置選擇器,然后選擇“編輯配置”。然后,在“運(yùn)行/調(diào)試配置”對話框中,選擇: 圖標(biāo)一般添加svg|GlassFish Server|遠(yuǎn)程( icons general add svg| GlassFish Server | Remote)。
  11. 為運(yùn)行配置指定描述性名稱,例如,GlassFishRemoteEAR。
    HWJEE061NewRunConfigName
  12. 在部署列表中包含EAR工件:切換到Deployment選項(xiàng)卡并選擇: 圖標(biāo)一般添加svg |工件|JavaEEHelloWorld:ear。
    請注意,Build'JavaEEHelloWorld:ear'工件任務(wù)自動包含在Before啟動任務(wù)列表中。
    HWJEE062RunConfigDeployEAR
  13. 切換到“ 服務(wù)器”選項(xiàng)卡,然后在“打開瀏覽器(Open browser)”部分中檢查URL 。位于http://localhost:8080/下的部分應(yīng)該對應(yīng)于您的application.xml中的<context-root>元素。
    HWJEE063RunConfigURL
  14. 在“運(yùn)行/調(diào)試配置”對話框中單擊“確定”。
  15. 執(zhí)行run配置( icons toolwindows toolWindowRun svg)。
    和以前一樣,在“運(yùn)行”工具窗口中打開另一個(gè)選項(xiàng)卡,顯示運(yùn)行配置輸出。
    HWJEE064RunEAR
    然后,應(yīng)用程序輸出顯示在瀏覽器中。
    HWJEE065EARHelloInBrowser
    現(xiàn)在,如果您查看“項(xiàng)目”工具窗口,您將在out/artifacts/JavaEEHelloWorld_ear文件夾中看到您的存檔文件。
    HWJEE066EARInProject

查看其他功能(工具窗口和facets)

作為其Web應(yīng)用程序和Java EE應(yīng)用程序支持的一部分,IntelliJ IDEA:

  • 制作了Web和JavaEE:App工具窗口。
  • 創(chuàng)建了Web和Java EE Application facets。

工具窗口;要打開工具窗口,您可以選擇:視圖|工具窗口|Web(View | Tool Windows | Web),或視圖|工具窗口|JavaEE:App( View | Tool Windows | JavaEE:App)。

簡而言之,Web和JavaEE:App工具窗口提供的功能類似于Project工具窗口,但僅分別用于Web和Java EE Application facets資源。

facets;要查看或編輯facets設(shè)置,請打開“項(xiàng)目結(jié)構(gòu)”對話框,選擇“模塊”,然后在模塊節(jié)點(diǎn)下選擇“Web”或“javaEEApplication”。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號