spring mvc学习(一)
来源:互联网 发布:空白网名软件是什么 编辑:程序博客网 时间:2024/05/24 05:11
spring mvc是目前较为流行轻量高效且兼容很多流行框架的web mvc框架(从他处盗2张图阐释一下spring),从外部来看,它的流程如下:
从代码框架实现层面:
可以看出DispatchServelet作为控制的核心处理所有的业务请求。
下面我们根据框架从前到后做一个完整的配置:
1)DispatchServelet 它继承自httpservelet,在web.xml中配置,可以有多个。
<servlet> <servlet-name>mvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>mvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>默认的配置文件是<servlet-name>-servlet.xml . 其他几个配置参数:namespace(命名空间),contextConfigLocation(指定配置文件目录)等
2)映射处理器 HandlerMapping
常用:BeanNameUrlHandlerMapping 、SimpleUrlHandlerMapping,配合 拦截器(HandlerInterceptor) 实现更多功能
BeanNameUrlHandlerMapping :默认映射处理器,根据controller名称映射
SimpleUrlHandlerMapping: 根据配置的Url映射对应controller.
HandlerInterceptor: 拦截器,定义了三个接口,preHandle(在controller调用之前,一般用于资源的准备),postHandle(在controller调用之后,view渲染之前),afterCompetition(资源的释放)
注解:
DefaultAnnotationHandlerMapping:针对注解@requestMapping已过时,3.1之前
RequestMappingHandlerMapping:替代上面,针对注解@requestMapping
3)处理器适配器 HandlerAdapter
HttpRequestHandlerAdapter: 要求Handler实现HttpRequestHandler接口
SimpleControllerHandlerAdapter :要求Handler实现Controller接口
AnnotationMethodHandlerAdapter: 和 DefaultAnnotationHandlerMapping 配对使用
RequestMappingHandlerAdapter: 和RequestMappingHandlerMapping配对使用,@RequerstMapping
4)处理器 Handler (controller)
springframework 类库中定义了许多Controller接口和实现, 但我们使用@Controller 可以不再继承这些接口
5)视图解析 viewResolver
InternalResourceViewResolver jsp 默认对应 JstlView
XmlViewResolver:Xml解析器
6) 视图渲染
Spring mvc 启动流程:
Web容器(tomcat)启动,读取web.xml文件。然后分为两个步骤
一、ContextLoaderListener初始化:Spring MVC在Web容器中的启动类,负责Spring IoC容器在Web上下文中的初始化,并将此容器实例注册到ServletContext中。 其中默认加载 class目录下 applicationcontext.xml, 可以通过contextConfigLocation重新定义配置文件路径。主要配置非web层的bean。
二、DispatcherServlet初始化:即servlet,提供springmvc下请求到相应的流程控制。包括初始化mvc的上下文,然后初始化初上传文件解析器、本地化解析器、主题解析器、处理器映射器、 处理器适配器 、处理器异常解析器、请求到视图名翻译器、请求到视图名翻译器。
(附:转自hackPro)
- Spring MVC学习(一)
- Spring MVC学习(一)
- Spring MVC 学习(一)
- spring mvc学习(一)
- spring mvc 学习(一)
- Spring MVC学习(一)
- Spring MVC学习一
- Spring MVC学习一
- 学习spring mvc 一
- spring mvc 学习(一,为什么选择spring mvc)
- Spring MVC学习笔记(一)---Spring MVC 的HelloWorld
- spring mvc学习(一)入门实例
- spring mvc 入门学习(一)
- Spring MVC学习(一) 框架搭建
- Spring Mvc学习笔记(一)续
- Spring MVC 学习笔记(一)
- spring mvc Controller层(学习一)
- Spring MVC 学习笔记(一):HelloWorld
- Maven建立基于jetty容器的简单的web工程
- 延时执行的几种方式
- 为什么局域网内做服务器要在路由器上做端口映射?
- iOS开发-拨打电话的三种方式
- 多次查询以及查询的合并
- spring mvc学习(一)
- C# 从服务器下载文件代码
- 竟然是他介绍认识人很少人害死人
- Kinect入门(2)——显示深度图像数据流
- sql services 2008r2 windows用户下新建用户
- 从零开始自学Swift(九)
- 小项目中的小总结
- 微信公众平台深度开发Java版 v2.0
- Nginx+fastDFS-nginx-module+FastDFS配置分布式文件系统