java project是java工程,不包括JSP等前台页面的代码 大部分是CS结构的工程和一些jar包
web project是web工程,是BS结构的系统 web project部署到服务器上
任何用户均可以经过浏览器来访问 就想你访问的百度这个网站同样
一、当你是web应用时,好比说要建个网站,须要发布到服务器时,应该要建Web Project
二、当你是作分布式系统时,也就是你作的只是一个服务,对外发布也只是一个服务的时候,须要创建Web Services Project(不理解能够先研究下webservices)
三、当你仅仅是须要JDK来运行一些本地代码的时候,只须要建Java Project就能够啦饿
想必你们在使用MyEclipse时对这两个概念不去深究。只知道是Java EE类的基本都是Web项目,而Java应用程序就是Java项目。并且不少人都愿意使用MyEclipse做为开发工具,且不说你们费尽心思去破解这个东西,并且那么多插件在启动时的加载速度和内存占用,你甘心这么玩嘛?不甘心?继续阅读本文!无所谓,您能够去作点其余事情不要浪费时间在这里。固然本文不去解释如何优化MyEclipse,相关说明你们更能够Google一下。javascript
本人使用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的选择彻底是我的偏好,只是明白了本质能有更好的选择。java