1. 程式人生 > >JAVA工程與java web工程的區別

JAVA工程與java web工程的區別

從網上找到的,這些個知識可以用於對原本用於java工程,想應用於web工程的開發工具修改 ----也可以理解為對java工程的eclipse理解擴充套件

想必大家在使用MyEclipse時對這兩個概念不去深究。只知道是Java EE類的基本都是Web專案,而Java應用程式就是Java專案。而且很多人都願意使用MyEclipse作為開發工具,且不說大家費盡心思去破解這個東西,而且那麼多外掛在啟動時的載入速度和記憶體佔用,你甘心這麼玩嘛?不甘心?繼續閱讀本文!無所謂,您可以去做點其他事情不要浪費時間在這裡。當然本文不去解釋如何優化MyEclipse,相關說明大家更可以Google一下。
    本人使用Classic Eclipse+所需外掛(如WTP,SVN)+Tomcat6構建的開發環境,不僅外掛按需安裝,而且執行速度快,佔用記憶體小。
    現在只是說說Java Project和Web Project,那麼二者有區別麼?回答:沒有!都是Java語言的應用,只是應用場合不同罷了,那麼他們的本質到底是什麼?回答:編譯後路徑!虛擬機器執行的是class檔案而不是java檔案,那麼我們不管是何種專案都是寫的java檔案,怎麼就不一樣了呢?分成java和web兩種了呢?
    從.classpath檔案入手來看,這個檔案在每個專案目錄下都是存在的,很少有人開啟看吧,那麼我們就來一起看吧。這是一個XML檔案,使用文字編輯器開啟即可。
這裡展示一個web專案的.classpath,當然高手一眼就可以看出其作用了
Xml程式碼

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="resources"/>
<classpathentry kind="src" path="test"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="lib/servlet-api.jar"/>
<classpathentry kind="lib" path="webapp/WEB-INF/lib/struts2-core-2.1.8.1.jar"/>
     ……
<classpathentry kind="output" path="webapp/WEB-INF/classes"/>
</classpath>


    XML文件包含一個根元素,就是classpath,類路徑,那麼這裡麵包含了什麼資訊呢?子元素是classpathentry,kind屬性區別了種類資訊,src原始碼,con你看看後面的path就知道是JRE容器的資訊。lib是專案依賴的第三方類庫,output是src編譯後的位置。
    既然是web專案,那麼就是WEB-INF/classes目錄,可能用MyEclipse的同學會說他們那裡是WebRoot或者是WebContext而不是webapp,有區別麼?回答:完全沒有!
    既然看到了編譯路徑的本來面目後,還區分什麼java專案和web專案麼?回答:不區分!普通的java 專案你這樣寫就行了:<classpathentry kind="output" path="bin"/>,看看Eclipse是不是這樣生成的?這個問題解決了吧。
    再說說webapp目錄命名的問題,這個無所謂啊,web專案是要釋出到伺服器上的對吧,那麼伺服器讀取的是類檔案和頁面檔案吧,它不管原始檔,它也無法去理解原始檔。那麼webapp目錄的命名有何關係呢?只要讓伺服器找到不就行了。
    希望對學習者有所幫助。當然IDE的選擇完全是個人偏好,只是明白了本質能有更好的選擇。