mvc与三层架构结合
我是一名学java的大专生,现在正在看一个网上商城的视频项目,但是那个视频中把好多的业务逻辑都写在了jsp页面上,我想根据他所讲的,自己用mvc(jsp+servlet)与分层实现,首先我先说一下我对mvc与分层的认识,大家看看我有什么理解不对的地方,我认为jsp就是mvc中的v,servlet就是mvc中的c,对于数据的操作就是m层,数据通过jsp页面提交到servlet进行处理,servlet调用m曾对数据进行处理后返回给jsp页面。我对三层的认识就是好像和mvc也差不多,表现层就是jsp,业务逻辑曾就是servlet,数据持久层就是dao。比如用一个用户注册作为例子,我想把项目改成注册页面用jsp显示,提交到servlet,然后servlet把表单中的数据一个一个的取出来,new User()对象,User类在model包中,User类的属性和数据库中的字段一致,有get set方法,new出这个User来之后,在servlet页面通过user对象,把从jsp页面表单里取到的数据存入user对象中,还有一个service包和一个dao包,servlet调用service包中的UserService对象的save(User u)方法来添加注册用户,在UserService中调用Dao包中的UserDao对象的save(User u)方法来添加用户,请大家帮忙看看我的认识和思路哪里有问题,谢了
------解决方案--------------------楼主的理解大体是正确的,我稍微说下我的个人理解
MVC V是jsp是没错的 C是servlet也是没错的 但是M model这个东西并不是数据持久层,而是模型层,模型层包括了业务层,数据持久层以及java实体层,也就是实体类。
而你一个功能的整体流程是这样的
试图层是获取页面输入的数据并提交到控制层的,控制层接收到用户的请求数据后,直接将数据提交到业务层,业务层进行一系列的业务处理,包括数据验证之类的东西,其中需要和数据库交互的时候就调用持久层中的方法来和数据库交互。
所以楼主的理解大体是没有问题的。
------解决方案--------------------
我知道了,你遇到了一个非常典型的问题!!非常非常典型!就是dao里应该写什么,然后如果碰到有表连接时怎么做。
dao里面就是crud,然后,你把数据库的链接写个util,别管表连接,对user的crud你就crud,别想太多。慢慢就出来了。别想太多。单纯点。