javabean作用和优势,什么时候该对数据封装?

来源:百度知道 编辑:UC知道 时间:2024/09/28 08:39:22
我是刚开始学习jsp的,想利用jsp+javaben+servlet模式开发个简单留言本,但在制作过程中有好多疑惑:
如在写留言的页面中,表单:<form name="myform" method="post" action="SendMess">也就是说表单提交后就执行servlet中的SendMess类(web.xml已配置好),然后执行SendMess类中的doGet()方法从而实现页面转向等.那么此过程中javaben起什么作用的呢?我问同事说:在doGet()方法中实例javaben,然后调用相应的setter方法实现数据封装,如MB.setQq(request.getParameter("qq"));即先把数据写到javabean中去,再调用javabean中的方法,如insert()(插入数据),也就是具体的操作放在javabean中,然后再转向,以达到servlet的控制功能.我怎么觉得是多此一举的呢?完全可以在servlet中实现的啊!既然都已经取值了,如request.getParameter("qq"),可以把它当作参数传到相应的具体实现方法中去就是,然后再转向,不也是达到了控制结构功能的嘛!具体的插入操作又不是在servlet中实现的,何必在此时把数据封装在什么javabean中的呢?所谓的数据封装,也就是javabean优势到底在那里呢?搞得我一头雾水哦!还请高手指教!

首先这是一个编程思想,也就是所谓‘面向对象’的问题。javabean本身是一个java对象,他对数据进行的封装。我们需要访问数据的时候只要访问这个对象就可以了。

其次,如果你的表单数据比较少还好,如果多一些,比如10个,那么你在servlet的方法调用,比如调用数据库insert操作,你要建立一个具有10个参数的方法吗?还是创建一个只有一个javabean做参数的方法简单?

在你的例子中,比如A页面提交跳转如B页面,期间A页面的表单数据封装进一个javabean,那么在B页面只需要访问这个javabean,然后调用其相关get方法就可以了。而如果不用javaean,你在servlet终究要不厌其烦的request.setParameter().

而且,将来你肯定会接触到一些数据库持久层的开源框架,现在用的最多的比如hibernate,他对数据库的增删改查全是基于javabean的,比如你要保存一个student的学号,姓名,性别的信息。原来的做法是
insert into t_student (id,name,sex) value(1,'jack',1).
而使用Hibernate这类框架,只需要调用一个方法
save(student).

其中sutdent就是一个javabean,它具有3个成员变量,id,name,sex.是不是很方便?

扯远了。