什么关系?我想你是想知道如何在系统中应用它们吧?通用的结构是:MVC模式,用jsp做表现层V,用servlet来控制器C,而用javaBean做成M,也就是数据模型。如果加上EJB,就把它放在M这一块上,也就是它其实也是javabean,只不过是一种极为特殊的Javabean,是企业Bean。根据你要做的系统的复杂度,你可以决定是否采用EJB,其实如果只是一些小系统(什么论坛、新闻等等,实在没必要用这个东西)。

解决方案 »

  1.   

    一般我们可以将一个J2EE分成三层结构,首先,JSP作为表示层,专门用于显示页面及结果使用,一般情况下,不在JSP上作任何逻辑操作。
    其次,Servlet,作为一个中间传输的纽带,很多逻辑实现在Servlet上进行,通过调用Java Bean上的方法,然后将结果集合传入到Jsp上去。Java Bean主要用来存放实现业务逻辑的各个方法。可以在Java Bean中调用EJB的方法。(一般,我们不在Servlet中调用EJB方法,特别是EJB2.0的推出,本地接口的实现,我们更不采用这样的方法)。而EJB作为事务层,用于描述数据库的组织结构及实现一些对数据库操作的方法。因为EJB分为三种。一般Entity Bean来描述数据库,Session Bean来实现逻辑方法。
          基本关系就是如上所述。活用它们,才能真正运用好J2EE,为项目服务。
      

  2.   

    从三层结构上看,一般认为jsp/servlet是属于表现层的东西,而javabean和EJB是属于逻辑层的,你的DBS就是数据层了。但是我们一般把servelt也放在逻辑层(其实它是处于业务逻辑与页面表现之间的接口,也就是控制器)。它负责与jsp交互处理用户的提交并交给系统去处理,或是把系统的结果返回给相应的jsp页面显示。jsp是嵌入了部分脚本的html文件,所以只负责显示。而把各种业务处理逻辑放在javabean中(或是EJB中),与数据库的交互、复杂的计算、事务、安全等等,都在这里。
      

  3.   

    还要提的一点就是可以把JSP和servlet放在表示层中,JSP经过编译生成一个servlet,可以认为JSP和servlet是差不多的。对于JavaBean和EJB,JavaBean容易实现一些,但依据项目的大小和复杂度,不如EJB能处理的好一些,在稳定性和处理复杂度上比JavaBean好。
      

  4.   

    你还可以到bea的网站上去看一看,上面有很多资料和例子,我想对你会有帮助的。
    www.bea.com.cn.
      

  5.   

    感谢大家的回答
    不知道我的理解对不对:JSP——Servlet——Bean(EJB),JSP用于表示层,Bean(EJB)封装业务逻辑,Servlet是中间纽带.
    但据我所知,JSP可以直接调用BEAN,HTML中也可以调用Servlet,如果这样的话,我是不是也可以用HTML+Servlet+Bean的方式,而不用JSP.目前我还比较趋向这种结构,因为觉得这样可以做到程序员与美工的分离.但总觉得JSP肯定有更多的用处,所以不知道这个想法是不是有问题.
    请再次赐教.
      

  6.   

    如果你想让程序员与美工分离,就更应该使用jsp了。JSP的出现就是为了这个目的。用servlet你如何做的分离,然后让美工做好页面,你再一块一块地切下来嵌入到你的程序中?为什么不让美工自己写做页面然后只要嵌入少量的代码即完成显示功能?
      

  7.   

    html+servlet+bean
    jsp+servlet+bean
    html+jsp+servlet+bean
    jsp+bean
    servlet+bean
    都可以
      

  8.   

    非常感谢 sharetop(天生不笨) ,看来我犯了一个常识性错误
    请大家讲一讲Servlet在它们中间的作用
      

  9.   

    其实,这个问题,你可以去:http://java.sun.com具体看看!
      

  10.   

    servelt是SUN以前提出的技术,在applet之后,与之对应的东西。但是在j2ee环境下,它仍被使用,后来sun弄出个jsp,为了和php,asp竞争吧?但它其实也是被编译成servlet的class文件来执行,所以本质上是一回事。但比servlet更方便与页面结合,以前的servlet我负责输出,于是程序员只能把html切成一块块地嵌入程序中,修改很不方便,然后也有人弄了一些Lib之类的东西,让你可以方便也设置和输出html标签,其实是换汤不换药而已。JSP出现后,就算是彻底解决了这个问题,但是servlet仍被采用(你也可以不用servlet来开发,建议)。我觉得真正最好的模式是JSP+JavaBean+EJB的模式,然后用JSP扩展标签库来定制你自己的应用系统中的特别标签。强力主张:用jsp+javabean+ejb和jsp extends tag library
      

  11.   

    现在大多应用没有用到定制标签,所以就加一个servlet层来负责控制,一方面与jsp通讯,读输入,显示相应的jsp页面等等,另一方面与javabean or ejb通讯,执行业务方法,获取结果等。因为这样可以减少在jsp中的代码量,让jsp全心地负责显示。但是如果引用定制的标签库,你可以把这个工作放在标签处理类中完成。你就可以不用servlet了。
      

  12.   

    我想请问一下,servlet负责逻辑控制,把数据放到javabean中,然后jsp到javabean 去取,再显示给用户.jsp访问javabean用<jsp:useBean>,那servlet访问javabean 用什么呢?
      

  13.   

    实例化BEAN的对象,然后就象调用类里面的函数一样使用它。别忘了improt
      

  14.   

    建议你去看一下struts这个framework,他是完全基于mvc的
      

  15.   

    非常感谢大家的回答,目前我的想法是用JSP+Bean,后期考虑加入EJB.不知这种想法是否合适?
    另外,大家能讲讲XML在网站建设中的作用吗?
      

  16.   

    上午跟我的同事讨论了一下,他认为应该采用这样的结构:
    浏览器请求HTML,HTML中访问Servlet,Servlet根据参数定位到新的HTML/JSP,返回给浏览器.
    在这个结构中,Servlet相当于一个主程序,它起了一个调度与中转的作用.Servlet中调用Bean、定位HTML/JSP/XML等。
    不知这种思路是否合适?