突然发现的一大神对javaEE三大层次的理解
害怕找不到了 转载到这里,对大神以进行私信请求转载,侵权删
jsp+servlet+javabean只是MVC的model2,mvc的model1是jsp+javabean。
这三个加在一起组成Web层。
J2EE的三层是web层,业务层和数据层。
jsp+servlet+javabean只是web层的一个解决方案。当然你可以使用struts2代替。
至于业务层,不是用javabean来直接进行业务处理的,javabean只是为了封装数据,这样传递很多数据的时候就只要传递一个对象即可,不需要将很多属性一个一个的进行传递。
业务层现在一般都是使用Spring。
在数据层,你可以使用hibernate,当然也可以不使用任何框架,直接用JDBC。
SSH不只是一个简单java类那么简单,每个都是一个框架,有自己的体系结构,有很多的内容要学。要进行专门的学习。你在学习完JSP/servlet之后,就可以学习SSH了。
javabean里面的确可以直接调用JDBC,就像JSP里面也可以调用JDBC。
但是你为什么不在JSP里面调用JDBC呢?
首先是为了代码的简洁,JSP里面直接调用JDBC会造成页面内容的混乱。
其次,是为了代码的复用。
因为一个程序中不可能只有一个地方调用JDBC,假设你有两个类Teacher和Student,
如果你直接在javabean中写JDBC代码,那么在这两个类里面肯定都要写上JDBC代码,
但是由于操作数据库的代码基本上都是相同的,因此你就要写很多重复的代码。
如果你单独写一个类用来操作数据库,每次只要把不同的javabean传递给操作数据库的类。
那么就可以少写很多代码,也可以让你的程序结构更加清晰。
如果你不使用SSH。
那么程序应该是这样写的。
JSP用来展示数据给用户看。
Servlet用来获取用户提交的数据。例如你的JSP页面上有一个表单,里面有很多项,你应该要将所有的数据获取到,封装到Javabean中。
在servlet中调用业务层,就是调用一个业务类,你可以起一个名字Service,将javabean传递给这个类。
接着写一个DAO类,就是操作数据库的类,在service类中调用DAO类,并把javabean再传递给DAO类,在DAO类中获取到javabean中封装的数据,插入数据库。
但是这种架构也不是绝对的,如果你的业务类简单,可以不专门写业务层,直接在servlet中把封装的javabean传递给DAO层。
在实际开发中,这三层一般都是要用的。
如果你接的只是一个小项目,别人又不懂,你的程序架构混乱一点也没问题,因为你的设计的越清楚,要花费自己的精力就越多,别人给你的还是同样的钱,不值得。
但是在后期维护的时候,可能就要多花一点时间了,毕竟程序架构的清晰除了可以帮助我们更好的阅读程序,在程序运行出现问题的时候也可以让我们更快的定位错误产生的位置。
__________________________________________________________________________________________________________
另一回答:servlet应该是structs或者stripes这些框架的父亲,通过他们来衔接前台(view)跟后台数据库部分,当然像一些复杂的业务逻辑,为了让代码更清晰,更易于维护,又要在view跟数据库部分多一层(业务处理层),至于javabean应该属于持久层,也就是数据库层,对于一些小型的系统完全没有必要去整什么ssh框架,那样明显会让系统显得臃肿,用jsp+servlet+javabean完全可做到
大神补充:
回复 小屠户: javabean不能说是属于持久层。因为javabean中要封装数据,但是这些数据从什么地方来呢? 必须要页面中获取,所以你在web层就必须使用javabean来封装数据。 你在DAO层操作数据库的时候,也必须使用到javabean来获取封装的数据。 同时:如果有业务层的话,在web层调用业务层的话也必须把javabean传递给业务层。 所以javabean在三层中都能用