java project是java工程,不包括JSP等前台頁面的代碼 大部分是CS結構的工程和一些jar包
web project是web工程,是BS結構的系統 web project部署到服務器上
任何用戶都可以通過瀏覽器來訪問 就想你訪問的百度這個網站一樣
1、當你是web應用時,比如說要建個網站,需要發布到服務器時,應該要建Web Project
2、當你是做分布式系統時,也就是你做的只是一個服務,對外發布也只是一個服務的時候,需要建立Web Services Project(不理解可以先研究下webservices)
3、當你僅僅是需要JDK來運行一些本地代碼的時候,只需要建Java Project就可以啦餓
想必大家在使用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的選擇完全是個人偏好,只是明白了本質能有更好的選擇。