mvc模式在spring和struts2中应用及原理
2013-01-04 19:33
281 查看
mvc在spring中的原理
(1)启动服务器,根据web.xml的配置加载前端控制器(也称总控制器)DispatcherServlet。在加载时、会完成一系列的初始化动作。
(2)根据servlet的映射请求(上面的helloWorld实例中针对.do请求),并参照“控制器配置文件”(即spmvc-servlet.xml这样的配置)文件,把具体的请求分发给特定的后端控制器进行处理(比如上例会分发给HelloWorld控制器进行处理)
(3)后端控制器调用相应的逻辑层代码,完成处理并返回视图对象(ModelAndView)给前端处理器。
(4)前端控制器根据后端控制器返回的ModelAndView对象,并结合一些配置(后面有说明),返回一个相应的页面给客户端。
小结:这种FrontController模式常应用在主流的web框架中,比如典型的struts1.x框架.FrontController模式:所有请求先交给一个前端处理器(总控处理器)处理,然后前端处理器会参照一些配置文件再把具体的请求交给相应的后端处理器。后端处理器调用逻辑层代码,并根据逻辑返回相应的视图对象给前端控制器。然后前端控制器再根据视图对象返回具体的页面给客户端(提示:和springmvc一样,在struts1.x中前端控制器是Servlet,而在struts2中前端控制器是Filter)。概述FrontController模式:前端控制器预处理并分发请求给后端控制器,后端控制器进行真正的逻辑处理并返回视图对象,前端控器器根据视图对象返回具体页面给客户端。
mvc在struts2中的原理
同理:在struts2中我们最主要的也是对DispatcherServlet(也称总控制器)的一系列的操作进行管理如:包括我们上面所提到的1.配置控制器文件,2.通过model层对数据的处理然后再回到控制器返回处理的结果,最后进行页面的跳转。下面是自定义mvc的DispatcherServlet的关键代码:
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
//对数据的初始化 ActionMappingmapping=this.getActionMapping(request);\//通过反射机制找到具体的action对象 Actionaction=ActionManager.CreateAction(mapping.getClassName());
ResultMappingresult=null;
try{
//处理后返回的跳转页面的值 StringresultName=action.execute(request,response);
result=mapping.getResult(resultName);
if(result==null){
response.sendError(404,"未配置Action的result元素");
return;
}
if(result.isRedirect()){ response.sendRedirect(result.getValue());
}else{
request.getRequestDispatcher(result.getValue()).forward(request,response);
}
}catch(Exceptione){
response.sendError(505,"异常,请联系管理员");
}
}
mvc模式常会被人到它的优点缺点:优点:各司其职缺点:modelII相对modelI来说配置复杂.
相关文章推荐
- 基于mvc模式的应用框架之struts2(一)---Struts2的执行流程和原理
- 深入了解Struts2返回JSON数据的原理及具体应用范例
- Spring Boot应用的启动原理
- Struts2使用原理笔记(Spring整合)
- Spring AOP 实现原理与CGLIB应用
- spring+hibernate+struts2应用mysql数据库乱码问题
- Spring--Spring AOP 实现原理与 CGLIB 应用
- SSH原理及应用---Struts2的工作机制及使用
- SpringBoot应用与原理之集成Log4j2
- struts2整合spring应用实例(转)
- 深入了解Struts2返回JSON数据的原理及具体应用范例
- 【spring aop】实现原理与 CGLIB 应用
- Struts2整合Spring方法及原理
- .NET与java的MVC模式(2):struts2核心工作流程与原理
- Spring应用、原理以及粗读源码系列(一)--框架总述、以Bean为核心的机制(IoC容器初始化以及依赖注入)
- Struts2的原理及应用
- SSH原理及应用---Spring的工作机制及使用
- 深入了解Struts2返回JSON数据的原理及具体应用范例
- Struts2、Spring和Hibernate应用实例(上)
- struts2整合spring应用实例