河北省重大技术需求征集系统原型(MVC框架业务流程简介)
这段时间了解了一些MVC框架。
一、MVC简介
MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式。它的模式是JSP + servlet + javabean 模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。
·视图
·模型
·控制器

二、MVC工作流程
1.当用户在浏览器中点击一个链接或者提交一个表单时,那么就会产生一个请求(request)。当请求离开浏览器时,它会携带用户请求的信息。
2.请求的第一站到达的是Spring的DispatcherServlet,它是一个前端控制器,工作是将用户的请求委托给其他的组件(这里是交给Spring MVC的控制器)去处理。这里DispatcherServlet要决定将请求传给哪一个控制器(Controller)去处理,那么这时就需要处理器映射(Handler Mapping)了。
处理器映射会看请求的URL信息,然后决定将请求交给哪一个控制器去处理。比如说有两个控制器ControllerA和ControllerB,分别处理后缀名为.html和.jsp送来的请求,那么当请求者的后缀名为.html时,那么DispatcherServlet就将请求交给ControllerA进行处理。
C代表Controller,负责用户界面和业务逻辑层的通信控制,一方面解释来自用户界面的输入,识别用户动作(如点击按钮等),调用相应Model中的方法,另一方面处理来自Model的事件和返回的执行结果,调用适当的View显示给用户,Controller主要由Servlet完成。
M代表Model,负责整个解决方案的业务逻辑实现,底层的数据库也由Model访问和操作;
V代表View,负责系统向用户的展示,主要由HTML及JSP等完成;

三、MVC组件说明
·HandlerAdapter
HandlerAdapter需要注册当SpirngMVC的容器里,注册方法和HandlerMapping一样,只要配置一个Bean就可以了
这是一个接口,一共三个方法,
使用HandlerAdapter是因为SpirngMVC没有对处理器做任何的限制,处理器可以是任何合理的方式来表示,可以是一个类,方法
·HandlerExceptionResolver
ModelAndView resolveException(HttpServletRequest var1, HttpServletResponse var2, Object var3, Exception var4);
作用:用来请求解析过程中出现的异常
只有一个方法,从异常解析ModelAndView
·ViewResolver
Locale确定了一种专门的语言和区域,通俗一点,就是根据不同语言定制的一种规则,一个类,可以根据不同语言构造不同的类
作用:用来将String类型的视图名和locale解析为View视图
使用:需要注册到SpringMVC的容器里 :默认:internalResourceViewResolver
·RequestToViewNameTranslator
理解定义:ViewResolver是通过ViewName去查找view的,但是Handler处理完并没有设置view和viewName,这时候就需要request去
RequestToViewNameTranslator在SpirngMVC里面只配置一次,所以所以的request到ViewName的转换都要在有个Translator
·LocaleResolver
LocaleContext resolveLocaleContext(HttpServletRequest var1);
void setLocaleContext(HttpServletRequest var1, HttpServletResponse var2, LocaleContext var3);
作用:ViewResolver用来获取viewName,RequestToViewNameTranslator用来获取request请求的view和viewName;
获取locale的时候就需要LocaleResolver
·SpringMVC有两个地方用到了locale
1,view视图解析的时候,为了获取viewName
2,使用国际化主题的时候(目前不了解)
·ThemeResolver
作用:解析主题用的
·MultipartResolver(接口)
作用:处理上传请求的
·FlashMapManager(接口)
flashmap的作用是在redirect中传递参数。大家都知道转发 request是不变的,重定向会生成新的request,那传递参数就不能直接用request进行传递。
河北省重大技术需求征集系统原型(MVC框架业务流程简介)的更多相关文章
- 《XXX重大技术需求征集系统》的可用性和可修改性战术分析
在网站的界面完整有效的呈现在最终用户面前前,其中经历的每一环节出现问题都会导致网站页面不可访问.原因如,如DNS被劫持.网站交换机失效,硬盘损坏,网卡松掉,机房停电等都可能导致网站不可用(网站故障)情 ...
- 《XX重大技术需求征集系统》的可用性和可修改性战术分析
题目:阅读<大型网站技术架构:核心原理与案例分析>第五.六章,结合<某重大技术需求征集系统>,列举实例分析采用的可用性和可修改性战术,将上述内容撰写成一篇1500字左右的博客阐 ...
- 阅读《大型网站技术架构:核心原理与案例分析》第五、六、七章,结合《XXX重大技术需求征集系统》,列举实例分析采用的可用性和可修改性战术,将上述内容撰写成一篇1500字左右的博客阐述你的观点。
这三章主要讲述的是网站的可用性.伸缩性和可扩展性. 首先,网站的可用性描述网站可有效访问的特性,相比于网站的其他非功能特性,网站的可用性更容易引起人们的注意,尤其是大型网站的可用性,如果大公司的网站出 ...
- java课堂测试—根据模板完成一个简单的技术需求征集系统
课堂上老师发布了一个页面模板要求让我们实现一个系统的功能,模仿以后后端的简单工作情况. 然后在这个模板的基础上,提供了一个注册的网页模板,接着点击注册的按钮,发现register里面调用了zhu/zh ...
- 结合《需求征集系统》谈MVC框架
结合<需求征集系统>分析MVC框架. 六个质量属性: 可用性:在系统压力过大时,会提示系统繁忙. 可修改性:使用配置文件,修改配置文件即可.对于一些公共的方法,进行封装,修改时,只需修改封 ...
- 阅读《大型网站技术架构》,并结合"重大需求征集系统"有感
今天阅读了<大型网站技术架构:核心原理与案例分析>的第五.六.七章.这三张主要是讲述了一个系统的可用性.伸缩性和可扩展性.而根据文中所讲述的,一个系统的可用性主要是体现在这个系统的系统服务 ...
- 按照分层设计理念,完成《XXX需求征集系统》的概念结构设计
按照分层设计理念,完成<XXX需求征集系统>的概念结构设计. 1.概要架构-初步设计 有关<XXX需求征集系统>的鲁棒图如下: 2.概要架构之高层分割 切系统为系统: 高层功能 ...
- php小程序-文章发布系统(mvc框架)
php小程序-文章发布系统(mvc框架) 一 项目视图 二 项目经验 通过对mvc微型框架的实现,对mvc理论加深,有利于以后框架的学习 三 项目源码 http://files.cnblogs.com ...
- 《xxx重大需求征集系统的》可用性和可修改性战术分析
阅读<大型网站技术架构:核心与案例分析>,第五,六章,结合<河北省重大需求填报系统>,列举实例分析采用的可用性和可修改性战术,将上述内容撰写成一篇1500字左右的博客阐述你的意 ...
随机推荐
- vue中使用video插件vue-video-player
一.安装插件 npm install vue-video-player --save 二.配置插件 在main.js中全局配置插件 import VideoPlayer from 'vue-video ...
- web页面弹出窗口代码大全
//-----------按钮提示框----------// <input type="button" name="btn2" id="btn2 ...
- Python:从入门到实践--第五章--if语句--练习
#1.编写一系列条件测试:将每个测试以及结果打印出来 car = '宝马' if car == "宝马": print("预测正确") print(car) e ...
- JPA、Hibernate框架、通用mapper
JPA是描述对象-关系表的映射关系,将运行期实体对象持久化到数据库中,提出以面向对象方式操作数据库的思想. Hibernate框架核心思想是ORM-实现自动的关系映射.缺点:由于关联操作提出Hql语法 ...
- 统计数字(关联容器map)
题目描述 某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109).已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统 ...
- springmvc 在非controller下使用@autowired
在SpringMVC框架中,我们经常要使用@Autowired注解注入Service或者Mapper接口,我们也知道,在controller层中注入service接口,在service层中注入其它的s ...
- ios-键盘回收
对输入的UITextField 控件设置完代理,然后粘上两种方法,即可. #pragma mark- 键盘收回 -(void)textFieldDidEndEditing:(UITextField * ...
- tomcat之jsp连接mysql数据库
一.下载并部署mysql连接类 首先下载mysql连接类,下载地址https://dev.mysql.com/downloads/connector/j 如图所示,选择第一个箭头所指的平台无关版本,然 ...
- 使用nginx mirror 制作nexus 的简单ha
主要是运行两台nexus 机器,通过nexus 的host 以及proxy 以及public 模型,结合nginx 的mirror 将对于host 的get 请求 mirror 到另一台机器pro ...
- MyCP课下作业
任务详情 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件(内容为 ...