Java 项目和 Web 项目的区别

Java项目主要面向桌面应用,基于awt、swing,通常为CS架构,而JavaWeb项目是BS架构,涉及JSP、Servlet等,部署在服务器上供多用户访问。JavaWeb项目的触发依赖于服务器,如Tomcat,而Java项目由main()启动。两者在Eclipse中的区别主要体现在编译后的输出路径,Java项目输出到bin,Web项目到WEB-INF/classes。理解这点,就能清晰地区分两者。
  1. Java Web 项目是基于 Java EE 类的;而 Java 项目是基于 Java 应用程序的。
  2. Java 项目主要面向桌面程序的应用,主要是 awt、swing 这类的编码,不包括 JSP 等前台页面的代码,大部分是 CS 架构的工程和一些 jar 包。
    JavaWeb 项目是 BS 架构的系统,是网页的编码,像 Jsp、Servlet、Struts这类的,JavaWeb 项目部署到服务器上,任何用户都可以通过浏览器来访问。
  3. JavaWeb 项目中的 Java 文件是 tomcat 服务器来触发的,脱离了 web 服务器就无法启动。而 Java 项目是由 main() 来开始的,直接依赖 JVM 就能被编译执行。
  4. Java Web 项目需要服务器;而 Java 项目不需要服务器。
  5. 在 eclipse 中 Java Web 项目可以转换为 Java 项目,进而可以转回到 Java Web 项目。
  6. Java 项目多数应用请求响应通过按钮的事件驱动来发起(Web项目也有)。JavaWeb 项目衍生了很多框架应用。多数请求响应应用超链接 URL 来发起(Java项目也有)。
  7. 如果说 Java 项目代码多半在本地,Web 项目的代码基本是在远程服务端。比如要建个网站,需要发布到服务器时,应为 JavaWeb 项目。当做分布式系统时,也就是做的只是一个服务,对外发布也只是一个服务的时候,需要建立 Web Services Project。当仅仅是需要 JDK 来运行一些本地代码的时候,只需要建 Java Project 就可以了。

Java Project 和 Web Project 其实都是 Java 语言的应用,只是应用场合不同罢了,那么本质到底是什么?编译后路径!虚拟机执行的是 class 文件而不是 Java 文件,然而不论哪种项目都是写的 Java 文件,怎么就分成 Java 项目和 JavaWeb 项目了呢?
.classpath 文件,这个文件在每个项目目录下都是存在的。这里展示一个 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="uu" 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 源码,uu 看后面的 path 就知道是 JRE 容器的信息。lib 是项目依赖的第三方类库,output 是 src 编译后的位置。
既然是 web 项目,那么就是 WEB-INF/classes 目录。MyEclipse 的是 WebRoot 或者是 WebContext 而不是 webapp,这其实没有区别。
看懂了编译路径的本质,就不用区分 Java 项目和 web 项目了。普通的 Java 项目这样写就行了<classpathentry kind="output" path="bin"/>,看看 Eclipse 是不是这样生成的?问题迎刃而解。
Web 项目是要发布到服务器上的,服务器读取的是类文件和页面文件,它不管源文件,它也无法去理解源文件。所以 webapp 目录的命名如何没有关系,只要让服务器找到就行了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JFS_Study

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值