标签:style blog http io color os ar java sp
关于java的mvc框架层出不穷,可能大家都会用,但是具体的原理知道不知道呢。所以我想写一个写一个简单mvc的系列博客,主要面向想了解这些原理的。
其实所谓的mvc框架,基本都是一个原理,就是配置一个filter或者servlet来拦截所有的请求,然后转发请求。
这个图就能说明mvc的工作模式
1.首先页面发送一个post请求,请求到某一个action。
2.然后由servlet或filter进行拦截,拦截固定后缀的请求,比如*.action,这里比如我们发送的请求是UserAction.action,servlet或filter就会拦截下来,然后在servlet里进行封装,转发到某一个action里。处理完毕后,再通过拦截器进行转发,回到配置好的页面。
下面是一个struts2的配置文件(网上找的)。
这里的org.apache.struts2.dispatcher.FilterDispatcher就是图中第2步中的拦截器。由于我没看源码,所以就大概说一下这个拦截器在中间都做了什么动作。
1.拦截从页面发来的请求。假设这里的请求是 UserAction.action
2.然后拦截器会读取框架配置文件,找到UserAction这个类
3.找到这个类以后,利用java的反射原理,封装请求发来的参数
4.把封装好的参数转发给UserAction
5.UserAction执行其中的逻辑,返回一个值,根据这个值,由拦截器转发执行完毕的结果,跳到制定页面。
这大概就是一个mvc框架的流程。可见并不复杂,所以我就打算写一个简单的框架,来详细的带大家理解mvc。
写这个mvc主要就是用到了java的反射原理,像第2步中,怎么找到把请求转发给哪个类?第3步中的怎么把页面的数据进行封装?还有第5步中怎么根据值确定返回哪个页面?
这些基本都是用的java反射原理。
在我写的这个mvc框架中,我是用的注解配置,所以这里还设计到自定义注解。当然你也可以自己定制通过xml来配置你的mvc框架。
基本原理都是相同的。
下一篇文章我将讲解一下其中的基础知识。也就是java反射跟自定义注解以及他们在mvc框架中的应用。
其实本来想录个视频跟大家讲解的,又怕没多少人看,到时候就白费力气了。所以就写博客吧,当一个自己的积累。
如果有错误,请大家指出,谢谢!
标签:style blog http io color os ar java sp
原文地址:http://www.cnblogs.com/-10086/p/4058004.html