一直觉得java ee的mvc其实并不能算是经典的mvc模式,原因在于:
经典的mvc思想要求把一个或多个view注册给一个model(类似于观察者模式),这样一来就可以在model改变时能够主动推送消息给view,使得view层能够实时展示model层消息。
而structs中,model对应于javabean什么的底层数据操作和逻辑,controller则由servlet实现,view使用jsp,由于web应用是一种基于请求/响应模式下的应用,不可能实现server主动发送消息给client的情况,因此model不会发送event给view,无法实现view的实时更新。从这个角度来讲,structs的mvc思想和我们一直学的mvc模式是有点区别的。
但是事实上很多web应用都用实时统计数据什么的功能,是怎么实现的呢??
- 一个比较蠢的方法就是轮询……通过ajax技术吧
- 使用一些浏览器的外部控件实现,例如flash,通过client和server之间建立socket进行通信,使得server能够真正的推送消息给client