J2EE中MVC的使用以及优化
来源:互联网 发布:推广淘宝店 编辑:程序博客网 时间:2024/06/14 02:53
MVC的使用在.net项目中已经熟悉,今天学习过程中学到了将MVC使用到JAVA应用程序中,感觉有意思做一下总结。
一、映射J2EE到MVC中
如图是MVC的体系结构:
(1) 数据的一个或者多个视图,
(2)提供数据和行为的模型,
(3)在视图中进行选择显示的控制器
同样在java程序中使用MVC,如图所示:
(1)JSP用作视图(View),由于JSP是HTML模板文件,为添加动态内容提供了多种机制,便于将其用作MVC体系当中的视图。
(2)Servlet(s)用作控制器(Controller),通过Servlet来响应用户请求,控制视图的使用选择。
(3)EJB用作模型(Model),在EJB当中可以用作添加业务逻辑,也可以提供对于数据的访问,类似于JDBC。
由此,简单的了解之后,要将J2EE映射到MVC当中,JSP、Servlet、EJB分别充当V、C、M,就实现将MVC运用到JAVA当中。
二、使用FrontController进行优化
上述在JAVA应用程序中使用MVC一定程度上减少了代码复用和实现了分工开发,但是仍然有需要完善的地方,典型问题如下:
(1)视图中含有表示代码和导航代码
(2)每个视图必须重复系统服务
(3)导航的逻辑可能会变得非常复杂
(4)页面之间的联系过强(如图)
然而通过使用Front Controller模式,用一个单独的控制器:
这个样子就减少了重复代码的使用,同时集中请求了处理和应用导航,使得Controller和View之间更加解耦合。
在上面已经提到,使用Servlet充当Controller,也就是ServletFront,其实除了ServletFront还可以通过JSPFront的形式来进行Front Controller的设计,如图所示:
通过使用FrontController之后的优点如下:
(1)在多个请求间集中系统服务和业务逻辑的处理
(2)通过清晰的应用分解提供高度的可重用性
(3)为客户化的安全和应用访问提供单点控制
三、使用Action Handler模式进行逻辑优化
在java中经历了MVC、Front Controller的优化之后,就像上图,很大程度上已经解耦合了,可是有一点,在Dispatcher中会有大量的业务逻辑,比如用于处理请求的大量代码,比如有一个大型的条件选择语句等(如图):
而我们所设想的,Controller应该仅仅是用于分配请求,其中的大量业务逻辑要从Dispatcher中提取出去,这时加上Action Handler模式就再好不过了。如图:
将业务逻辑、Case判断、处理请求的大量代码都放到Handler中,也就实现了Controller仅仅用于分配请求,真正的处理请求就放到了Handler当中,至此,J2EE中使用MVC框架就非常完美了。
总结:虽然没有将代码融入其中,但是对于在J2EE中使用MVC以及一步步的进行代码结构的优化,很有意思,也感叹前辈们这些脑洞大开的设计理念,站在巨人肩膀上,学习了。
- J2EE中MVC的使用以及优化
- J2EE的MVC模式!
- J2EE的MVC模式
- BaseAdapter的使用以及优化
- Webscoket的使用以及优化
- J2EE中使用JavaMail的问题
- 关于J2EE中过滤器的使用
- J2EE中自定义标签以及TagSupport和BodyTagSupport的用法
- J2EE中自定义标签以及TagSupport和BodyTagSupport的用法
- J2SE J2EE J2ME的区别 以及 MVC与SSH对应关系
- j2ee项目中处理高并发量访问以及性能优化
- mvc中dropdownlist的使用
- MVC中modelstate的使用
- MVC中HtmlHelper的使用
- MVC中modelstate的使用
- MVC中BeginForm的使用
- Android中MVC的使用
- J2EE & MVC
- Java --- 并发库concurrent包学习总结
- 2016.03.22(大水货啊 ,啥都不会)
- java详解单例模式
- Linux系统的休眠与唤醒简介
- 顺时针打印矩阵
- J2EE中MVC的使用以及优化
- Android新手入门2016(12)--基于Layout文件的AlertDialog
- 235. Lowest Common Ancestor of a Binary Search Tree
- module_init 和 late_initcall 区别
- Java程序与mysql的交互
- Mastering R plot -3笔记
- php设计模式学习系列(九)--桥接模式
- Android自定义view-弹出式dialog
- 程序设计