1. 程式人生 > >web專案和Java專案的區別

web專案和Java專案的區別

本人使用Classic Eclipse+所需外掛(如WTP,SVN)+Tomcat6構建的開發環境,不僅外掛按需安裝,而且執行速度快,佔用記憶體小。 
    現在只是說說Java Project和Web Project,那麼二者有區別麼?回答:沒有!都是Java語言的應用,只是應用場合不同罷了,那麼他們的本質到底是什麼?回答:編譯後路徑!虛擬機器執 行的是class檔案而不是java檔案,那麼我們不管是何種專案都是寫的java檔案,怎麼就不一樣了呢?分成java和web兩種了呢? 
    從.classpath檔案入手來看,這個檔案在每個專案目錄下都是存在的,很少有人開啟看吧,那麼我們就來一起看吧。這是一個XML檔案,使用文字編輯器開啟即可。 
這裡展示一個web專案的.classpath,當然高手一眼就可以看出其作用了 
Xml程式碼 

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

<?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的選擇完全是個人偏好,只是明白了本質能有更好的選擇。