站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题mvc三层的疑问?

mvc三层的疑问?

摘要: mvc三层的疑问?


如果我在jsp里直接连接了数据库,并且将数据库中的数据显示在页面上的话,是不是就不符合mvc结构了?


MVC,遵循的是单一职责的原则,你说你这样还算吗?


当然不是了。
MVC是一种架构,一种设计思想。
你只是完成了结果,好好看一下书。


楼上两位说的我都没明白...


不符合

在常规的JSP,Servlet,JavaBean三层结构中,JSP实现View的功能,Servlet实现Controller的功能,JavaBean实现Model的实现。


MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己


我们之所以要用MVC这个框架,是因其实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性。
倘若照你的做法,绕过C(控制层)直接调用底层数据库,便起不到这个作用了。


那就说我的问题,我想将数据库中的一个表显示在网页上,怎么做才算符合mvc?


是不是要用一个javabean封装数据库中的数据,然后在网页上useBean?
那可是这样也是绕过了(C)控制层了阿?


M层做业务逻辑,访问数据库,取得数据,封装的JavaBean中;
C层做流程控制,将M层得到的数据(已经封装到JavaBean),封装到request中(如果你用的是structs可以将数据封装到ActionForm中,在jsp页面直接用structs的标签显示)。forward转发到页面。
V层利用C层转发过来的数据,做显示工作。

大概是这样的,不对的地方也希望别人批评,我也是个菜鸟。


你jsp页面useBean的话肯定要有个scope属性的,一般的话servlet在将请求转发到该jsp页面时已经request.setAttribute(javaBean),其实并没有绕过控制层


lisl2003(lisl2003(不留))
...
...
V层利用C层转发过来的数据,做显示工作。
=========
C层将数据封装到request中之后,V层用什么语句显示C层转发过来的数据?
是request.getAttribute();吗?
我才学不久,望多指点。。


如果我已将M层得到的数据封装到JavaBean,那么此时,将这个bean封装到request中好呢?还是直接在jsp中好?这两种方法都符合mvc吗?


用request


我不太清楚你的MVC是用什么实现的。
我一般用struts来做,方式我已经写了。“(如果你用的是structs可以将数据封装到ActionForm中,在jsp页面直接用structs的标签显示)”

如果但用不用struts标签,我也不是很了解,我对标签这部分不是很熟。我想大概是借助与标签和指令(借助标签、指令可以使代码简单)和在jsp页面中写代码(像<%%>,<%! %>,<%= %>你应该知道吧)。
别的我就不说了,最好可以找个写好了的例子对照着看。


V层与M层的任何联系,都必须通过C层。


java web分两种开发模式
1.jsp+javabean(两层模式)
2jsp+javabean+sevlet(三层模式),struts是经典的三层框架
lz你的做法连两层都不算

MVC就是model,view,control说白了~~~模型,视图,控制,适合小型网站架构.


↑返回目录
前一篇: 用jbiulder建了一个基于strust的web application,编译后放到tomcat的webapps/root目录下, 通过ie访问出现问题, 请问怎么解决?
后一篇: PreparedStatement??