web專案和Java專案的區別
阿新 • • 發佈:2019-01-28
本人使用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的選擇完全是個人偏好,只是明白了本質能有更好的選擇。
現在只是說說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的選擇完全是個人偏好,只是明白了本質能有更好的選擇。