想必大家在使用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的选择完全是个人偏好,只是明白了本质能有更好的选择。    

java web项目和java项目的区别(看清IDE本质)的更多相关文章

  1. java web简易网上书店项目系列,使用MVC模式(servlet+jstl+dbutils),开篇

    一. 针对很多java web初学者入门困难的问题,笔者利用一个小型web项目,一步一步的展示java web开发方法,每一个章节引入一些java web开发的重点知识,让同学们可以将java web ...

  2. Java Web系列:Java Web 项目基础

    1.Java Web 模块结构 JSP文件和AXPX文件类似,路径和URL一一对应,都会被动态编译为单独class.Java Web和ASP.NET的核心是分别是Servlet和IHttpHandle ...

  3. Java Web 拦截器和过滤器的区别

    一.AOP:面向切面编程,Java Web中有两个常用的技术:拦截器.过滤器 二.拦截器 1.定义:在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作 2.原理:大部分时候,拦截器方法都 ...

  4. java web 过滤器跟拦截器的区别和使用

    注:文章整理自知乎大牛以及百度网友(电脑网络分类达人 吕明),特此感谢! 一.过滤器 1.什么是过滤器? 过滤器是一个程序,它先于与之相关的servlet或JSP页面运行在服务器上.过滤器可附加到一个 ...

  5. Java Web include指令和动作的区别

  6. java web基础学习 Forward和Redirect区别

    Forward和Redirect代表了两种请求转发方式:直接转发和间接转发.对应到代码里,分别是RequestDispatcher类的forward()方法和HttpServletRequest类的s ...

  7. java web mysql.jar java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

    java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 折腾了一上午,找到了这错误的原因.哎……悲剧! 确认包已经被导入web工程目录. 原来是 ...

  8. java web 学习笔记 - Java Bean

    1. Java Bean 是一个简单的 java 类,一般放在WEB-INF下的 classes目录下(如果没有则需要手工新建) 一个简单的Bean包括属性,getter ,setter方法,如果没有 ...

  9. Docker学习笔记之搭建 Java Web 项目运行环境

    0x00 概述 Java Web 泛指以 Java 程序为基础向外提供 Web 服务的技术及相关工具,狭义上来说,我们也可以说 Java Web 是由 Servlet 程序提供的 Web 服务. 对我 ...

随机推荐

  1. 5、Java并发性和多线程-相同线程

    以下内容转自http://tutorials.jenkov.com/java-concurrency/same-threading.html(使用谷歌翻译): 相同线程(同一线程)是一种并发模型,其中 ...

  2. 有用 .htaccess 使用方法大全

    这里收集的是各种有用的 .htaccess 代码片段,你能想到的使用方法差点儿全在这里. 免责声明: 尽管将这些代码片段直接复制到你的 .htaccess 文件中,绝大多数情况下都是好用的,但也有极个 ...

  3. Android百度地图SDK 导航初始化和地图初始化引起的冲突

    如题,相同是百度地图SDK开发过程中遇到的一个问题.交代下背景: 开发了一款内嵌百度地图的应用,因此里面差点儿相同将眼下百度地图SDK开放的主要功能都用到了,定位,地图显示,覆盖物标示.POI搜索,行 ...

  4. Live555研究之中的一个 源码编译

                                                Live555研究之中的一个 源代码编译 Live555 是一个为流媒体提供解决方式的跨平台的C++开源项目,它 ...

  5. C#实现马尔科夫模型例子

    已知条件:三个缸N状态,每个缸中不同颜色球的个数M状态值,时间轴T,观察值序列O 参数:状态值序列,转移概率序列 求:概率 后台代码如下 , M = ;//N状态,M状态值 (0橙色,1绿色,2蓝色, ...

  6. Android数据存储之IO

    Android开发中免不了数据本地的存储,今天我们来说一说怎样利用IO流来进行数据存储. 这里我们通过模拟一个QQ登陆界面的小demo来实际操作IO流. 功能描写叙述:点击button能够保存用户输入 ...

  7. SoapUI项目书写自我规范

    -->Assertions 判断某个节点存在(_input_name, _button_name) -->Resource 文件夹命名 值去掉红色部分信息 https://mercury- ...

  8. hdoj--1205--吃糖果(规律)

     吃糖果 Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Sub ...

  9. anaconda安装python三方包,以tensorflow为例

    Anaconda概述 Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存.切 ...

  10. mst

    https://www.zybuluo.com/ysner/note/1245941 题面 给一个\(n\)点完全图,点权均小于\(2^m\).定义边权等于两端点点权的与和(即\(a_i\&b ...