一次面试,面试的人给我说,你的简历上说你一直在做web开发,而我们做的是J2EE企业开发。我不明白,J2EE企业开发不就是应用J2EE的技术为企业做开发吗?不就是说你会不会jsp,servlet,jdbc,jta,ejb.......等技术吗?还有其它方面的要求吗?这和web开发又有什么不同么?那么企业开发又是什么呢?

解决方案 »

  1.   

    他指的应该是基于框架的web开发吧
    比如struts  spring hibernate ejb等
    企业开发一般不用jdbc之类的了吧楼主的web开发可能是比较小项目
    如果基于上面的开发,那与那些小项目是不能比的,设计的方式也有很大的不同,当然还是有联系的
      

  2.   

    web开发跟网络相关
    企业开发包括web开发,还有其他的
      

  3.   


    什么是J2EE呢?从整体上讲,J2EE是使用Java技术开发企业级应用的一种事实上的工业标准(Sun公司出于其自身利益的考虑,至今没有将Java及其相关技术纳入标准化组织的体系),它是Java技术不断适应和促进企业级应用过程中的产物。目前,Java平台有三个版本:适用于小型设备和智能卡的J2ME(Java 2 Platform Micro Edition)、适用于桌面系统的J2SE和适用于企业级应用的J2EE。Sun推出J2EE的目的是为了克服传统Client/Server模式的弊病,迎合Browser/Server架构的潮流,为应用Java技术开发服务器端应用提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平台,从而简化企业应用的开发、管理和部署。J2EE是一个标准,而不是一个现成的产品。各个平台开发商按照J2EE规范分别开发了不同的J2EE应用服务器,J2EE应用服务器是J2EE企业级应用的部署平台。由于它们都遵循了J2EE规范,因此,使用J2EE技术开发的企业级应用可以部署在各种J2EE应用服务器上。 
    为了推广并规范化使用J2EE架构企业级应用的体系架构,Sun同时给出了一个建议性的J2EE应用设计模型:J2EE Blueprints。J2EE Blueprints提供了实施J2EE企业级应用的体系架构、设计模式和相关的代码,通过应用J2EE Blueprints所描述的体系模型,能够部分简化架构企业级应用这项复杂的工作。J2EE Blueprints是开发人员设计和优化J2EE组件的基本原则,同时为围绕开发工作进行职能分工给出了指导性策略,以帮助应用开发设计人员合理地分配技术资源。 
    下面我们参照J2EE Blueprints,结合最新版的J2EE规范(J2EE 1.4),从整体上阐述如何使用J2EE架构企业级应用。 
    图2给出了使用J2EE架构企业级应用的体系架构。J2EE将组成一个完整企业级应用的不同部分纳入不同的容器(Container),每个容器中都包含若干组件(这些组件是需要部署在相应容器中的),同时各种组件都能使用各种J2EE Service/API。J2EE容器包括: 
    ◆ Web容器服务器端容器,包括两种组件JSP和Servlet,JSP和Servlet都是Web服务器的功能扩展,接受Web请求,返回动态的Web页面。Web容器中的组件可使用EJB容器中的组件完成复杂的商务逻辑。 
    ◆ EJB容器 服务器端容器,包含的组件为EJB(Enterprise JavaBeans),它是J2EE的核心之一,主要用于服务器端的商业逻辑的实现。EJB规范定义了一个开发和部署分布式商业逻辑的框架,以简化企业级应用的开发,使其较容易地具备可伸缩性、可移植性、分布式事务处理、多用户和安全性等。 
    ◆ Applet容器客户端容器,包含的组件为Applet。Applet是嵌在浏览器中的一种轻量级客户端,一般而言,仅当使用Web页面无法充分地表现数据或应用界面的时候,才使用它。Applet是一种替代Web页面的手段,我们仅能够使用J2SE开发Applet,Applet无法使用J2EE的各种Service和API,这是为了安全性的考虑。 
    ◆ Application Client容器 客户端容器,包含的组件为Application Client。Application Client相对Applet而言是一种较重量级的客户端,它能够使用J2EE的大多数Service和API。 
    通过这四个容器,J2EE能够灵活地实现前面描述的企业级应用的架构。 
    在View部分,J2EE提供了三种手段:Web容器中的JSP(或Servlet)、Applet和Application Client,分别能够实现面向浏览器的数据表现和面向桌面应用的数据表现。Web容器中的Servlet是实现Controller部分业务流程控制的主要手段;而EJB则主要针对Model部分的业务逻辑实现。至于与各种企业资源和企业级应用相连接,则是依靠J2EE的各种服务和API。 
    在J2EE的各种服务和API中,JDBC和JCA用于企业资源(各种企业信息系统和数据库等)的连接,JAX-RPC、JAXR和SAAJ则是实现Web Services和Web Services连接的基本支持。 
    J2EE的各种组件 
    我们就J2EE的各种组件、服务和API,进行更加详细的阐述,看看在开发不同类型的企业级应用时,根据各自需求和目标的不同,应当如何灵活使用并组合不同的组件和服务。 
    · Servlet 
    Servlet是Java平台上的CGI技术。Servlet在服务器端运行,动态地生成Web页面。与传统的CGI和许多其它类似CGI的技术相比,Java Servlet具有更高的效率并更容易使用。对于Servlet,重复的请求不会导致同一程序的多次转载,它是依靠线程的方式来支持并发访问的。 
    · JSP 
    JSP(Java Server Page)是一种实现普通静态HTML和动态页面输出混合编码的技术。从这一点来看,非常类似Microsoft ASP、PHP等技术。借助形式上的内容和外观表现的分离,Web页面制作的任务可以比较方便地划分给页面设计人员和程序员,并方便地通过JSP来合成。在运行时态,JSP将会被首先转换成Servlet,并以Servlet的形态编译运行,因此它的效率和功能与Servlet相比没有差别,一样具有很高的效率。 
    · EJB 
    EJB定义了一组可重用的组件:Enterprise Beans。开发人员可以利用这些组件,像搭积木一样建立分布式应用。在装配组件时,所有的Enterprise Beans都需要配置到EJB服务器(一般的Weblogic、WebSphere等J2EE应用服务器都是EJB服务器)中。EJB服务器作为容器和低层平台的桥梁管理着EJB容器,并向该容器提供访问系统服务的能力。所有的EJB实例都运行在EJB容器中。EJB容器提供了系统级的服务,控制了EJB的生命周期。EJB容器为它的开发人员代管了诸如安全性、远程连接、生命周期管理及事务管理等技术环节,简化了商业逻辑的开发。EJB中定义了三种Enterprise Beans: 
    ◆ Session Beans 
    ◆ Entity Beans 
    ◆ Message-driven Beans 
    · JDBC 
    JDBC(Java Database Connectivity,Java数据库连接)API是一个标准SQL(Structured Query Language,结构化查询语言)数据库访问接口,它使数据库开发人员能够用标准Java API编写数据库应用程序。JDBC API主要用来连接数据库和直接调用SQL命令执行各种SQL语句。利用JDBC API可以执行一般的SQL语句、动态SQL语句及带IN和OUT参数的存储过程。Java中的JDBC相当与Microsoft平台中的ODBC(Open Database Connectivity)。 
    · JMS 
    JMS(Java Message Service,Java消息服务)是一组Java应用接口,它提供创建、发送、接收、读取消息的服务。JMS API定义了一组公共的应用程序接口和相应语法,使得Java应用能够和各种消息中间件进行通信,这些消息中间件包括IBM MQ-Series、Microsoft MSMQ及纯Java的SonicMQ。通过使用JMS API,开发人员无需掌握不同消息产品的使用方法,也可以使用统一的JMS API来操纵各种消息中间件。通过使用JMS,能够最大限度地提升消息应用的可移植性。 JMS既支持点对点的消息通信,也支持发布/订阅式的消息通信。 
    · JNDI 
    由于J2EE应用程序组件一般分布在不同的机器上,所以需要一种机制以便于组件客户使用者查找和引用组件及资源。在J2EE体系中,使用JNDI(Java Naming and Directory Interface)定位各种对象,这些对象包括EJB、数据库驱动、JDBC数据源及消息连接等。JNDI API为应用程序提供了一个统一的接口来完成标准的目录操作,如通过对象属性来查找和定位该对象。由于JNDI是独立于目录协议的,应用还可以使用JNDI访问各种特定的目录服务,如LDAP、NDS和DNS等。 
    · JTA 
    JTA(Java Transaction API)提供了J2EE中处理事务的标准接口,它支持事务的开始、回滚和提交。同时在一般的J2EE平台上,总提供一个JTS(Java Transaction Service)作为标准的事务处理服务,开发人员可以使用JTA来使用JTS。 
    · JCA 
    JCA(J2EE Connector Architecture)是J2EE体系架构的一部分,为开发人员提供了一套连接各种企业信息系统(EIS,包括ERP、SCM、CRM等)的体系架构,对于EIS开发商而言,它们只需要开发一套基于JCA的EIS连接适配器,开发人员就能够在任何的J2EE应用服务器中连接并使用它。基于JCA的连接适配器的实现,需要涉及J2EE中的事务管理、安全管理及连接管理等服务组件。 
    · JMX 
    JMX(Java Management Extensions)的前身是JMAPI。JMX致力于解决分布式系统管理的问题。JMX是一种应用编程接口、可扩展对象和方法的集合体,可以跨越各种异构操作系统平台、系统体系结构和网络传输协议,开发无缝集成的面向系统、网络和服务的管理应用。JMX是一个完整的网络管理应用程序开发环境,它同时提供了厂商需要收集的完整的特性清单、可生成资源清单表格、图形化的用户接口;访问SNMP的网络API;主机间远程过程调用;数据库访问方法等。 
    · JAAS 
    JAAS(Java Authentication and Authorization Service)实现了一个Java版本的标准Pluggable Authentication Module(PAM)的框架。JAAS可用来进行用户身份的鉴定,从而能够可靠并安全地确定谁在执行Java代码。同时JAAS还能通过对用户进行授权,实现基于用户的访问控制。 
    · JACC 
    JACC(Java Authorization Service Provider Contract for Containers)在J2EE应用服务器和特定的授权认证服务器之间定义了一个连接的协约,以便将各种授权认证服务器插入到J2EE产品中去。 
    · JAX-RPC 
    通过使用JAX-RPC(Java API for XML-based RPC),已有的Java类或Java应用都能够被重新包装,并以Web Services的形式发布。JAX-RPC提供了将RPC参数(in/out)编码和解码的API,使开发人员可以方便地使用SOAP消息来完成RPC调用。同样,对于那些使用EJB(Enterprise JavaBeans)的商业应用而言,同样可以使用JAX-RPC来包装成Web服务,而这个Web Servoce的WSDL界面是与原先的EJB的方法是对应一致的。JAX-RPC为用户包装了Web服务的部署和实现,对Web服务的开发人员而言,SOAP/WSDL变得透明,这有利于加速Web服务的开发周期。 
    · JAXR 
    JAXR(Java API for XML Registries)提供了与多种类型注册服务进行交互的API。JAXR运行客户端访问与JAXR规范相兼容的Web Servcices,这里的Web Services即为注册服务。一般来说,注册服务总是以Web Services的形式运行的。JAXR支持三种注册服务类型:JAXR Pluggable Provider、Registry-specific JAXR Provider、JAXR Bridge Provider(支持UDDI Registry和ebXML Registry/Repository等)。 
    · SAAJ 
    SAAJ(SOAP with Attachemnts API for Java)是JAX-RPC的一个增强,为进行低层次的SOAP消息操纵提供了支持。 
    下面我们通过假设一个企业应用的J2EE实现,来了解各种组件和服务的应用。假设应用对象是计算机产品的生产商/零售商的销售系统,这个销售系统能够通过自己的网站发布产品信息,同时也能将产品目录传送给计算机产品交易市场。销售系统能够在线接受订单(来自自己的Web网站或者来自计算机产品交易市场),并随后转入内部企业管理系统进行相关的后续处理。 
    参见图3,这个企业应用可以这种方式架构。该企业应用的核心是产品目录管理和产品定购管理这两个业务逻辑,使用EJB加以实现,并部署在EJB容器中。由于产品目录和定购信息都需要持久化,因此使用JDBC连接数据库,并使用JTA来完成数据库存取事务。 
    然后使用JSP/Servlet来实现应用的Web表现:在线产品目录浏览和在线定购。为了将产品目录发送给特定的交易市场,使用JMS实现异步的基于消息的产品目录传输。为了使得更多的其它外部交易市场能够集成产品目录和定购业务,需要使用Web Services技术包装商业逻辑的实现。由于产品定购管理需要由公司内部雇员进行处理,因此需要集成公司内部的用户系统和访问控制服务以方便雇员的使用,使用JACC集成内部的访问控制服务,使用JNDI集成内部的用户目录,并使用JAAS进行访问控制。由于产品订购事务会触发后续的企业ERP系统的相关操作(包括仓储、财务、生产等),需要使用JCA连接企业ERP。 
    最后为了将这个应用纳入到企业整体的系统管理体系中去,使用Application Client架构了一个管理客户端(与其它企业应用管理应用部署在一台机器上),并通过JMX管理这个企业应用。 
      

  4.   

    struts  spring hibernate ejb等
      

  5.   

    原来是这样,我是学J2EE企业应用开发的。我以前也不知道两个的区别。
    现在liao了
      

  6.   

    他指的应该是基于框架的web开发吧 
    比如struts  spring hibernate ejb等 
    企业开发一般不用jdbc之类的了吧 
      

  7.   

    我感觉没什么区别啊?
    都是jsp,servlet,jdbc ,java之类的 框架那东西只不过是对这些东西的封装。
      

  8.   

    J2EE开发也包含桌面软件的,
    另外,SSH也用得多。其它的楼上的说的很清楚了,我就不重复了
      

  9.   

    能给出一例web大项目和一例J2EE大项目的架构和所用到技术及其应用的结构么?没有接触过,也不知道这和自己所做的项目区别在哪里?也不知道自己的差距在什么地方?不知道差距在哪里就无法增进自己了!!
      

  10.   

    J2EE 是一种分布式的企业级应用,J2EE 是一种标准规范,其指的并不是 Java Web 开发,更
    不是那些 Struts, Hibernate, Spring 框架。而是指一种分布式应用的标准规范,具体的可以
    使用 B/S 结构的 Web 来实现,甚至可以采用 C/S 结构的 Swing/SWT 来实现。在 Java EE 5 规范中,只有 JSP, JSF, Servlet 是涉及 Web 开发标准的。
      

  11.   

    web开发:jsp . asp .php等
    j2ee:主要是一些框架技术的使用:比如SSH
    EJB..等
      

  12.   

    javaee跟企业级不是一个概念。javaee只是一种实现手段(即便是唯一一种实现,也不能就此等同,更何况这个并不是唯一的)。从表现形式上看,Web应用和企业级应用也是可以雷同的,最常见的是网站。但是我们做为用户并不知道网站是怎么实现的(这个实现跟纯代码上采用什么框架什么语言没有关系)。企业级开发并非就是说为“企业”做开发。企业级应用一般都比Web应用高端,这个高端主要体现在它的部署环境上。如果你把Web应用部署在满足企业级要求的环境里,那它也就成了企业级了,反之亦然。
    当然不同的环境的设计思路也是不一样的,但是允许使用同样的思路来解决这两种情况。学校做的一般都是Web应用,但是教学上却要求用企业级手段来实现,然而这只是教学计划的要求,实践上怎么样谁也不知道。但是可以肯定的是,你的部署环境不是企业级的。这就是实习的意义之一。
      

  13.   

    HTML JavaScript CSS
    Java JSP
    XML XSLT
    ...
    仅此
      

  14.   

    web开发,可以是.net .php jsp......
    j2ee开发只能是java呵呵
      

  15.   

    web开发,可以是.net .php jsp......
    j2ee开发只能是java呵呵
      

  16.   

    看了楼上讲的,是不是这个意思:
    J2EE定义了整个企业开发的部署结构、使用的框架;
    而web开发就是对J2EE所定义的结构和框架的实现.楼上的高手,是这个意思吗??
      

  17.   

    J2EE应用了struts等等一些框架,而web开发的则可以通过jsp页面,servlet等开发的,可以不涉及到框架
      

  18.   

    J2EE 是一种分布式的企业级应用,J2EE 是一种标准规范,其指的并不是 Java Web 开发,更 
    不是那些 Struts, Hibernate, Spring 框架。而是指一种分布式应用的标准规范,具体的可以 
    使用 B/S 结构的 Web 来实现,甚至可以采用 C/S 结构的 Swing/SWT 来实现。 在 Java EE 5 规范中,只有 JSP, JSF, Servlet 是涉及 Web 开发标准的。
      

  19.   

    说两句
    J2EE是一种规范,是一种基于框架的开发.
    基于JAVA的一般WEB开发,包括了JSP/SERVLET 需要WEB服务器的支持,比如TOMCAT等.
    而基于J2EE企业级的开发,他需要的是不只是WEB容器,还需要一个应用服务器,比如TOMCAT/RESIN是WEN容器,JBOSS等是作为应用服务器支持EJB.
    J2EE容器也可以称为J2EE服务器.可以看得出,J2EE与一般的WEB开发的部署环境有所不一样.J2EE更广.
    J2EE标准就是:解耦性,你的应用系统各个功能是否能够彻底脱离?是否不相互依赖,也只有这样,才能体现可维护性、可拓展性的软件设计目标。
    struts,hibernate,spring 等是实现了解耦目的的一个框架,或者说是一个手段.
    hibernate其实就是实现了饿EJB中的某些规范.
      

  20.   

    通俗点说,企业级比普通WEB开发注重业务处理能力
      

  21.   

    企业开发中多是中间件的开发,与普通web开发有区别
      

  22.   

    轻量级框架主要还是应用于web开发,j2ee企业级开发主要是ejb,jms,jmail,jmx,jta等等
      

  23.   

    只可意会,不可言传的东西,个人感觉j2ee是sun公司指定的一套行业标准,包裹很多方面,比如分布式,消息服务... 
      

  24.   


    这里更正一下,可能误到大家,这里我向诸位道歉,Web 开发是指基于 web 网络的开发,web 软件系统典型的组成部分有 web 服务器(例如 apache)、网页浏览器。
    企业级开发大多指构建较大规模的(例如用户数百上千甚至更多)、面向企业内部业务流程(例如物流管理、办公自动化)的软件系统。企业级开发和 web 开发两者是不同的概念,但两这在某些情况下可能重合,例如基于 web 架构的 ERP 系统。但也可能不重合,例如新浪网的资讯系统、Google的搜索引擎、自己搭建的博客系统就是典型的 web 系统,和企业应用没有关系;银行的 ATM 系统、电信运营商的计费系统就是典型的企业软件系统,和 web 应用没有关系。二者也不存在谁比谁“高端”的情况,比如说google 搜索引擎在技术上肯定不比移动的 BOSS 简单,两者各有各的业务领域,要解决的问题大相径庭。