关于jsp+servlet+javabean的mvc模型的疑问
本人初学,有几点不太明白,请指教。第一点:jsp可以算是servlet的升级版,那为什么总说jsp+servlet+javabean来实现mvc呢,其实jsp完全可以取代...
本人初学,有几点不太明白,请指教。
第一点:jsp可以算是servlet的升级版,那为什么总说jsp+servlet+javabean来实现mvc呢,其实jsp完全可以取代servlet作为controller呀(虽然现在jsp+servlet+javabean都不怎么用了)?
第二点:如果在jsp中直接用useBean访问数据,那是不是算是view与model直接交互了?算不算违背了mvc的原理? 展开
第一点:jsp可以算是servlet的升级版,那为什么总说jsp+servlet+javabean来实现mvc呢,其实jsp完全可以取代servlet作为controller呀(虽然现在jsp+servlet+javabean都不怎么用了)?
第二点:如果在jsp中直接用useBean访问数据,那是不是算是view与model直接交互了?算不算违背了mvc的原理? 展开
5个回答
展开全部
首先先矫正一下你的错误,jsp不是servlet升级版 jsp严格说是html升级版,因为在jsp可以编写代码,而html是不可以的,但是sun公司建议还是不要在jsp中写代码,现在许多公司也要求不允许在jsp中写代码,因为对以后维护不方便,那如果实现在jsp中不写代码呢,用el表达式和自定义标签,sun公司给我们写了许多标签如果有特殊需要实现功能就需要自定义一个标签。严格的mvc模式是把所有请求都交个servlet来完成,jsp只用来作为显示页面
M(Model)代表Bean V(view)代表jsp C(Controller) 代表servlet 如果缺一个都不算mvc设计模式 而且mvc模式是严格的开发模式 如果是正规的公司必须遵守这个模式设计,只有一些小公司才不会那么严格 这也根据你们项目来定,如果有些功能在jsp两句代码搞定而servlet非常麻烦就不一定要用servlet来完成 但是如果严格mvc设计模式就必须遵守以上规则了,毕竟我们都不是完美主义者,只有完美主义者追求完美才会笨呼呼的,设计模式是死的人是活的!
软件开发流程(应该从底层写起)
jsp-----servlet------service--------dao-----------Db 如何开始编写呢重后往前
<-------------------------------------------------------------
M(Model)代表Bean V(view)代表jsp C(Controller) 代表servlet 如果缺一个都不算mvc设计模式 而且mvc模式是严格的开发模式 如果是正规的公司必须遵守这个模式设计,只有一些小公司才不会那么严格 这也根据你们项目来定,如果有些功能在jsp两句代码搞定而servlet非常麻烦就不一定要用servlet来完成 但是如果严格mvc设计模式就必须遵守以上规则了,毕竟我们都不是完美主义者,只有完美主义者追求完美才会笨呼呼的,设计模式是死的人是活的!
软件开发流程(应该从底层写起)
jsp-----servlet------service--------dao-----------Db 如何开始编写呢重后往前
<-------------------------------------------------------------
展开全部
第一点:纯jsp叫model1模式,jsp+servlet叫model2模式,model2更容易区分前后台,jsp做页面展现,servlet做控制分发,层次比较清楚。
第二点:直接使用userBean算是交互,虽说违背了mvc,但也没人说一定要遵守MVC,MVC只是软件开发的一种模式,当然还有别的模式,像jsf,就是基于组件式的开发模式。不过我个人很少在jsp中直接用userBean,都是后台封装好了放到request里,然后传到前台的。
第二点:直接使用userBean算是交互,虽说违背了mvc,但也没人说一定要遵守MVC,MVC只是软件开发的一种模式,当然还有别的模式,像jsf,就是基于组件式的开发模式。不过我个人很少在jsp中直接用userBean,都是后台封装好了放到request里,然后传到前台的。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
MVC(model view controller)
是一种软件架构模式,其基本思想是,将一个软件
的组成部分划分成三个不同类型的模块:
Model(模型):封装业务逻辑(实现业务逻辑,不用关心
谁来调用模型,但是,要提供相应的接口给调用者
使用)
View(视图):提供用户操作的界面(用户通过视图向
模型发请求),同时,视图还要以合适的方式来
显示模型中的数据。
Controller(控制器):将视图与模型的关系解耦。即视图的请求
发送给控制器,由控制器选择合适的模型来处理。
模型处理之后的结果,也交给控制器,由控制器来
选择合适的视图。这样一来,当视图与模型的对应
关系发生改变,只需要对控制器进行修改就可以了(
甚至可以将对应关系以配置文件的方式来设置)。
jsp的优势?为什么不采用servlet来生成动态页面?
因为直接使用servlet生成动态页面,过于繁琐(大量的
out.println(),开发效率低并且代码不易维护。而采用
jsp,则更加方便。
MVC的优点:
A. 可以实现模型的复用,即模型实现之后,可以
被不同的视图来调用或者不同的视图以不同的
方式来显示模型中的数据。
B.方便测试:比如在web应用当中,模型是用
java类来写的,可以直接运行测试。如果使用
servlet来实现业务逻辑,则需要启动服务器并
部署之后,才能测试。
(3)在web应用当中,如何应用mvc?
模型:由java类或者ejb/被spring容器管理的java对象
/其它容器 管理的java对象来实现。
被容器管理的java对象,有一个好处,容器会实现部分
的基础服务(包括事务、安全等)。
视图:由jsp(包括css,html,js)来实现。
控制器:由Servlet(或者Filter)来实现。
视图发送请求控制器(servlet),控制器依据
请求的不同,调用相应的模型(java类),模型
处理之后的结果会返回给控制器,控制器会依据
结果选择合适的视图(jsp)。
你说在JSP中使用大量的JAVABEAN那么就你还没有完全分工好这JSP,SERVLET,JAVABEAN的分工!
而且在JSP中使用大量的JAVABEAN不利用代码的维护与扩展!!!
是一种软件架构模式,其基本思想是,将一个软件
的组成部分划分成三个不同类型的模块:
Model(模型):封装业务逻辑(实现业务逻辑,不用关心
谁来调用模型,但是,要提供相应的接口给调用者
使用)
View(视图):提供用户操作的界面(用户通过视图向
模型发请求),同时,视图还要以合适的方式来
显示模型中的数据。
Controller(控制器):将视图与模型的关系解耦。即视图的请求
发送给控制器,由控制器选择合适的模型来处理。
模型处理之后的结果,也交给控制器,由控制器来
选择合适的视图。这样一来,当视图与模型的对应
关系发生改变,只需要对控制器进行修改就可以了(
甚至可以将对应关系以配置文件的方式来设置)。
jsp的优势?为什么不采用servlet来生成动态页面?
因为直接使用servlet生成动态页面,过于繁琐(大量的
out.println(),开发效率低并且代码不易维护。而采用
jsp,则更加方便。
MVC的优点:
A. 可以实现模型的复用,即模型实现之后,可以
被不同的视图来调用或者不同的视图以不同的
方式来显示模型中的数据。
B.方便测试:比如在web应用当中,模型是用
java类来写的,可以直接运行测试。如果使用
servlet来实现业务逻辑,则需要启动服务器并
部署之后,才能测试。
(3)在web应用当中,如何应用mvc?
模型:由java类或者ejb/被spring容器管理的java对象
/其它容器 管理的java对象来实现。
被容器管理的java对象,有一个好处,容器会实现部分
的基础服务(包括事务、安全等)。
视图:由jsp(包括css,html,js)来实现。
控制器:由Servlet(或者Filter)来实现。
视图发送请求控制器(servlet),控制器依据
请求的不同,调用相应的模型(java类),模型
处理之后的结果会返回给控制器,控制器会依据
结果选择合适的视图(jsp)。
你说在JSP中使用大量的JAVABEAN那么就你还没有完全分工好这JSP,SERVLET,JAVABEAN的分工!
而且在JSP中使用大量的JAVABEAN不利用代码的维护与扩展!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Servlet几乎可以说与jsp相等,他们的功能都能够等同起来,而jsp最终也会先被转化成servlet再交给虚拟机运行,把jsp说成Servlet的升级版是一般的说法,因为先有了Servlet才有了jsp而当时jsp出来的时候,很多人都认为Jsp一定可以取代Servlet,但事实上jsp最好的作用是view(显示),而Servlet最好的作用是controller(控制和跳转),另外再把javabean与他们分开,使他们的耦合程度减小,那么就增加了代码的可移植性和可扩展性。这是比较好的解决方案,所以一直延续到现在使用的就是mvc模式,通过楼上和在下的介绍,我想你一定懂了。呵呵,祝你好运。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一:javabean用来存取数据,这样就不用每个servelt或jsp页面都申请临时变量,会显得比较混乱
第二: (1)视图(View) :在J2EE应用程序中,视图(View)可能由Java Server Page(JSP)承担,生成视图的代码则可能是一个servlet的一部分,特别是在客户端服务端交互的时候; (2)控制器(Controller) :J2EE应用中,控制器可能是一个servlet,现在一般用Struts实现;(3)模型(Model) :模型则是由一个实体Bean来实现。
第二: (1)视图(View) :在J2EE应用程序中,视图(View)可能由Java Server Page(JSP)承担,生成视图的代码则可能是一个servlet的一部分,特别是在客户端服务端交互的时候; (2)控制器(Controller) :J2EE应用中,控制器可能是一个servlet,现在一般用Struts实现;(3)模型(Model) :模型则是由一个实体Bean来实现。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询