接着上次的小测试继续对MVC进行完善,今天用上次写的LoginServlet继续进行修改。
MVC,分为三层结构(model,view,controller),相互之间的联系是*view层进行数据访问,传输给controller层进行数据传输并进行逻辑分析,分析的结果传输给model层,通过调用模型来从数据库中拿到相关数据,然后在返还给controller层,最后展示给view层*,那么就需要在原先的基础上对LoginServlet进行拆分。其中的view层,在此次设计中及jsp中的代码,那么只需要考虑如何编写controller层与model层。
那么逻辑上是没有错的,但是还是需要继续进行划分,在controller层中,为了让其只负责控制(包括收发页面参数或数据,及跳转页面等)功能,需要将其中的涉及到JDBC中的功能以及业务逻辑功能给剥离出来,这样让其变得更加“纯粹”,那么就需要建立一个新的类,专门用来处理controller层中的业务逻辑,这就是service层。
上面讲过,controller层中的与数据库相关的查询功能也需要剥离并进行重新封装,以避免在处理页面逻辑时一遍又一遍的书写代码,所以此时需要一个类,即DAO层(Date Access Object),其中封装了数据库访问功能(增删修)。那么此时的MVC才算完整。
逻辑上是:*页面数据(view层)对数据进行访问,controller层进行数据接收,然后将数据传输到service进行逻辑处理,service层将处理结果传输给DAO层对数据库进行数据操作,DAO层将数据进行打包返还到model层*,*然后数据将会以一个实体对象的方式传输给service层,service层再讲数据发送给controller层进行页面的跳转,view层展示给用户。*
逻辑上理顺了,那么就是今天需要做得项目的功能该如何实现。因为今天想要实现对用户数据的一个注册与查询的小功能,所以在view层需要编写三个jsp文件
页面请求首先发送给controller层,因为是需要注册与登录两个页面,所以在controller层创建两个servlet
这里看个人习惯,一个一个的按照逻辑来或者两个同步运行都可以,比较推荐是一个一个来,这样逻辑不会出现混乱
然后像service层发送数据,请求进行逻辑处理
从service层拿到我们预期的结果后,开始想DAO发送结果,请求从数据库调用数据
其中用到的DBTool文件是大神的,涉及到别人的成果,这里就不发啦,嘿嘿
数据拿到之后,数据库将数据发送至model层,将数据转化成service层可以直接调用的对象,很简单的一个实体类
至此,MVC的逻辑完成,开始进行测试。
总结,MVC的逻辑思维需要连贯,各个层级之间的功能联系紧密相关,切记不要出错。