zoukankan      html  css  js  c++  java
  • 转载 j2ee j2se j2me 区别,mvc 和ssh联系理解

    [转]J2SE J2EE J2ME的区别 以及 MVC与SSH对应关系

    2014-3-6阅读322 评论0

    J2SE J2EE J2ME的区别
    多数编程语言都有预选编译好的类库以支持各种特定的功能,在Java中,类库以包(package)的形式提供,不同版本的Java提供不同的包,以面向特定的应用。

    Java2平台包括标准版(J2SE)、企业版(J2EE)和微缩版(J2ME)三个版本:
    Standard Edition(标准版) J2SE 包含那些构成Java语言核心的类。
    比如:数据库连接、接口定义、输入/输出、网络编程
    Enterprise Edition(企业版) J2EE 包含J2SE 中的类,并且还包含用于开发企业级应用的类。
    比如:EJB、servlet、JSP、XML、事务控制
    Micro Edition(微缩版) J2ME 包含J2SE中一部分类,用于消费类电子产品的软件开发。
    比如:呼机、智能卡、手机、PDA、机顶盒

    他们的范围是:J2SE包含于J2EE中,J2ME包含了J2SE的核心类,但新添加了一些专有类

    应用场合,API的覆盖范围各不相同。
    笼统的讲,可以这样理解:
    J2SE是基础;
    压缩一点,再增加一些CLDC等方面的特性就是J2ME;
    扩充一点,再增加一些EJB等企业应用方面的特性就是J2EE。

    补充一点J2EE更恰当的说,应该是JAVA2企业开发的技术规范,不仅仅是比标准版多了一些类。
    jdk,j2ee,j2se,j2me的概念区别
    1.
    JDK是Java development toolkit,相当于是Java的库函数,是编译,运行java程序的工具包。
    J2EE是Java 2 enterprise edition是Java的一种企业版用于企业级的应用服务开发
    J2SE是Java 2 standard edition是Java的标准版,用于标准的应用开发
    J2ME是Java 2 Micro Edition是Java的微型版,常用于手机上的开发
    J2EE,J2SE,J2ME是java针对不同的的使用来提供不同的服务,也就是提供不同类型的类库。
    针对企业网应用的J2EE(Java 2 Enterprise Edition)、针对普通PC应用的J2SE(Java 2 Standard Edition)和 针对嵌入式设备及消费类电器的J2ME(Java 2 Micro Edition)三个版本
    对于初学者,都是从J2SE入手的。

    2. j2ee和j2se的区别:
    j2ee是在j2se的基础上添加了一系列的企业级应用编程接口.j2ee包含有很多的技术!其中有你熟悉的jsp,servlet,jdbc,jme等13中技术!
    j2ee主要是用来做B/S结构的应用程序!也就是说是基于浏览器和服务器的!
    j2se给我的感觉只需要一个容器就够了,j2ee支持分布式组件可以同时存在多个容器


    1、J2EE到底是什么? 
    J2EE,是sun公司提出的一个标准,符合这个标准的产品叫“实现”;其中你下载的sun公司的j2ee开发包中就有一个这样的“实现”,而jboss,weblogic,websphere都是j2ee标准的一个“实现”。由于jboss,weblogic,websphere自身带有j2ee的api,所以可以不使用sun的j2ee实现。

    2、j2ee sdk和j2sdkee的区别 
    其实你可以把j2ee sdk和j2sdkee当成是一回事,官方叫法为 j2ee sdk。不过如果你仔细推敲,也可以用下面的方法来理解:j2eesdk就是jdk,这个是开发ejg必须要安装的,j2sdkee是j2ee开发环境,这也是要安装的,其实如果你安装了jboss的话,就不用全部安装j2sdkee了,只要把其中的一个名为j2ee的文件复制过去就可以了,也就是说jdk是必须要装的,而j2sdkee则不需要,看你用什么做容器了。

    3、装过j2ee sdk还需要装j2se sdk吗? 
    在sun的网站下载J2ee1.4时,有两种下载包: 
    一种是j2ee1.4 sdk完整包(all in one),包含j2ee server,j2se, sample, api doc; j2ee 好像包含j2se 几乎所有东西.我看 j2ee里也有一个jdk ,它下面的lib和j2se下面的lib一样大(同版本的).但jre不一样大,因为j2ee比j2se多了好多,如java.servlet.* ,java.servlet.http.* 等. j2ee 是让你用来开发 j2ee specification 的东西.如果是用于web 服务器,不装j2ee也行,只要装一个jre (连j2se都不用装),外加一个servlet引擎(如tomcat)就够了. 
    看下面这个,一目了然: 
    j2se == jdk == bin + demo + include + jre + lib + src.rar //SUN官方的jdk1.4.2 
    j2ee == jdk + .... //这里的 jdk 和上面的只有 jre 文件不一样大,原因上文已说. 
    另一种为单独的j2ee server,安装前需要先安装j2se sdk。 
    不管哪个,安装完成后,都要设置java_home,j2ee_home,classpath环境变量,再运行j2ee server即可。 
    为了方便开发者,Sun把Java区分为J2SE(Java 2 Standard Edition)、J2EE(Java 2 Enterprise Edition)、J2ME(Java 2 Micro Edition)和Java Card四种平台。J2SE是所有Java技术的基础,不管开发人员要开发什么平台的Java应用程序,都必须先从J2SE学起。J2EE技术着重于企业服务器端的应用。J2ME主要针对嵌入式系统,包括手机、PDA等。针对手机应用程序的开发,Sun还提供了免费的J2ME Wireless Toolkit。Java Card技术用来开发可以植入IC智能卡中的应用程序。 
      以上四种平台的软件开发包(Software Development Kit,SDK)都是免费的,可以从Sun的网站下载。当然,只用SDK未免太不讲究,我们需要开发工具来提高开发效率。这样的工具叫做集成开发环境(Integrated Development Environment,IDE)。以往,Borland JBuilder和IBM Eclipse这两个IDE最受Java程序员的青睐,而Sun自己的IDE却名不见经传。2004年以后,Sun把自己的IDE摆放到重要的位置,努力推进NetBeans和Java Studio的开发。前者是完全用Java撰写的开放源代码的工具,而后者则是重量级的官方开发工具。Sun的开发工具可谓根正苗红,Java程序员终于可以沐浴Sun(阳光)普照了!

    -----------------------------------------------------------------

          1.先学习j2se

    要学习j2ee就要先学习j2se,刚开始学习j2se先建议不要使用IDE,然后渐渐的过渡到使用IDE开发,毕竟用它方便嘛。学习j2se推荐两本书,《java2核心技术一二卷》,《java编程思想》,《java模式》。其中《java编程思想》要研读,精读。这一段时间是基本功学习,时间会很长,也可能很短,这要看学习者自身水平而定。

    2.不要被IDE纠缠
    在学习java和j2ee过程中,你会遇到五花八门的IDE,不要被他们迷惑,学JAVA的时候,要学语言本身的东西,不要太在意IDE的附加功能,JAVA编程在不同IDE之间的转换是很容易的,过于的在意IDE的功能反而容易耽误对语言本身的理解。目前流行的IDE有jbuilder,eclipse和eclipse的加强版WSAD。用好其中一个就可以了,推荐从eclipse入手j2ee。因为Jbuilder更适合于写j2se程序。

    3.选择和学习服务器使用配置
    当你有了j2se和IDE的经验时,可以开始j2ee的学习了,web服务器:tomcat,勿庸置疑,tomcat为学习web服务首选。而应用服务器目前主要有三个:jboss、weblogic、websphere。有很多项目开始采用jboss,并且有大量的公司开始做websphere或weblogic向jboss应用服务器的移植(节省成本),这里要说的是,学习tomcat和jboss我认为是首选,也是最容易上手的。学习服务器使用配置最好去询问有经验的人(有条件的话),因为他们或许一句话就能解决问题,你自己上网摸索可能要一两天(我就干过这种傻事),我们应该把主要时间放在学习原理和理论上,一项特定技术的使用永远代替不了一个人的知识和学问。

    4.学习web知识
    如果你是在做电子商务网站等时,你可能要充当几个角色,这是你还要学习:
    html,可能要用到dreamwave等IDE。
    Javascript,学会简单的数据校验,数据联动显示等等

    5.J2eeAPI学习
    学习j2eeAPI和学习服务器应该是一个迭代的过程。
    先学习jsp和servlet编程,这方面的书很多,我建立看oreilly公司的两本《jsp设计》和《java servlet编程》,oreilly出的书总是那本优秀,不得不佩服。
    学习jdbc数据库编程,j2ee项目大多都是MIS系统,访问数据库是核心。这本应属于j2se学习中,这里拿出来强调一下。
    学习jndi api,它和学习ejb可以结合起来。
    学习ejb api,推荐书《精通ejb》
    经过上面的这些的学习,大概可以对付一般的应用了。
    有人说跟着sun公司的《j2ee tutorial》一路学下来,当然也可以。

    6.学习ejb设计模式和看代码(最重要)
    设计模式是练内功,其重要性可以这么说吧,如果你不会用设计模式的话,你将写出一堆使用了ejb的垃圾,有慢又是一堆bug,其结果不如不用ejb实现(ejb不等于j2ee)
    无论学习什么语言,都应该看大量代码,你看的代码量不到一定数量,是学不好j2ee的
    目前有很多开源的工程可以作为教材:
    jive论坛
    petstore sun公司
    dune sun公司
    等等,研读一个,并把它用到自己的工程中来。

    7.J2ee其他学习
    当你渐渐对j2ee了解到一定深度时,你要开始关注当前领域中的一些技术变化,J2ee是一块百家争鸣的领域,大家都在这里提出自己的解决方案,例如structs,hiberate,ofbiz等等,学习这些东西要你的项目和目标而定,预先补充一下未尝不可,但不用涉及太深,毕竟学习原理和理论是最最重要的事。

    8.目前常见j2eeAPI
    JavaServer Pages(JSP)技术1.2
    Java Servlet技术2.3
    JDBC API 2.0
    Java XML处理API(JAXP)1.1
    Enterprise JavaBeans技术2.0
    Java消息服务(JMS)1.0
    Java命名目录接口(JNDI)1.2
    Java事务API(JTA) 1.0
    JavaMail API 1.2
    JavaBeans激活架构(JAF)1.0
    J2EE连接器体系结构(JCA)1.0
    Java认证和授权服务(JAAS)1.0
    学习上面的某些API要以你的项目而定,了解所有他们总之是有好处的
    上面印证了大家说的一句话,java语言本身不难学,但是技术太多,所以学java很费劲。回想一下,基本上每个初学者,在刚学习java的时候可能都会问别人这么一句话,你怎么知道的哪个方法(api)在哪个包里的?呵呵,无他,唯手熟尔。

    MVC架构和SSH框架对应关系

    MVC三层架构:模型层,控制层和视图层。模型层,用Hibernate框架让来JavaBean在数据库生成表及关联,通过对JavaBean的操作来对数据库进行操作;控制层,用Struts框架来连接数据层和视图层的,接收、处理、发送数据并控制流程;视图层,用JSP模板把页面展现给用户以及提供与用户的交互。而Spring框架粘合了Hibernate和Struts,透明的管理了整个架构,提供IOC容器使代码松耦合以及AOP框架的切面功能等等。 

        也可以换种说法:我们去饭馆吃饭,摆在我们面前的油淋小白菜就是Jsp呈现的视图,而这道菜怎么来的呢,当然要有小白菜,也就是Hibernate产生的数据,小白菜要洗干净,切好,这是对数据的操作;这些准备好了就要炒小白菜了,这就是Struts的事了。这个过程分工明确,各做各的,有的只负责洗菜,有的只负责炒菜的,Spring就是中间负责跑腿的,让洗菜的和炒菜的都安心做自己的事。最终一道菜就出来了,我们看到的是成品菜,却看不见它被制作的过程。 

    我举个例子来说明怎么利用SSH框架做菜,当然这里仅仅是一些最简单的示例代码用来做说明: 

    1.JavaBean类(Model,这里就是买来的小白菜): 

    public class Building { 

    private String code; 

    public String getCode() { 
    return code; 


    public void setCode(String code) { 
    this.code = code; 




    2.用Hibernite把对象持久化到数据库中(Model,还是小白菜,只不过换个说法,你可以给它随便起个名字,比如说实体小白菜,但其实还是一样的东西) 

    <?xml version="1.0"?> 
    <!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
    <hibernate-mapping> 
    <class name="Building" table="building"> 
    <id name="id" column="id"> 
    <generator class="uuid"/> 
    </id> 
    <property name="code"/> 
    </class> 
    </hibernate-mapping> 

    3.把对数据的访问封装成一个面向对象的接口(Model,洗菜,切菜): 

    public interface BuildingManager { 

    List findEntity(); 



    4.控制层的处理(Controller,开始炒菜了): 

    public class BuildingAction extends Action { 

    public ActionForward execute(ActionMapping actionMapping, 
    ActionForm actionForm, 
    HttpServletRequest req, 
    HttpServletResponse servletResponse) throws Exception { 
    List results = entityManager.findItems(); 
    req.setAttribute("buildings",page); 
    return actionMapping.findForward("list"); 




    5.jsp视图(View,端上桌的油淋小白菜,这里我就不写示例代码了)。 


        至此,我们在MVC清晰明了的架构中,虽然代码简单,却足以勾勒出如何在SSH三大框架的通力合作下实现楼宇列表的显示,小白菜可以吃了。

  • 相关阅读:
    前台传入的application/json;charset=UTF-8格式的数据,java后端从request中获取json数据
    vue-element-admin实战 | 第二篇: 最小改动接入后台实现根据权限动态加载菜单
    vue-element-admin
    进程间通信的几种方式以及线程间通信的几种方式
    vue调用api接口解决跨域问题
    C#多态性(函数重载)
    VirtualBox中安装CentOS7后无法上网的解决方案
    C#继承
    android通过url下载文件
    python的数据爬取
  • 原文地址:https://www.cnblogs.com/luoluoshidafu/p/4604509.html
Copyright © 2011-2022 走看看