java web項目和java項目的區別(看清IDE本質)


想必大家在使用MyEclipse時對這兩個概念不去深究。只知道是Java EE類的基本都是Web項目,而Java應用程序就是Java項目。而且很多人都願意使用MyEclipse作為開發工具,且不說大家費盡心思去破解這個 東西,而且那么多插件在啟動時的加載速度和內存占用,你甘心這么玩嘛?不甘心?繼續閱讀本文!無所謂,您可以去做點其他事情不要浪費時間在這里。當然本文 不去解釋如何優化MyEclipse,相關說明大家更可以Google一下。 

Web項目是網頁的編碼,像jsp,servlet,struts這類的,但是java項目的話,是AWT,SWING這類的編碼。最主要的區別是Web項目中的JAVA文件是tomcat服務器來觸發的,但是java項目里的是Main()方法來開始的。還有一點是Web項目需要服務器。
     本人使用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的選擇完全是個人偏好,只是明白了本質能有更好的選擇。    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM