SpringMVC(三)_注解式控制器详解
前言:本文首先简单介绍下DispatcherServlet及其特殊的Bean,然后学习如何通过注解的方式实现页面控制器。
本篇文章重点关注以下问题:
- 简述DispatcherServlet
- 注解式控制器详解
1. DispatcherServlet概述
DispatcherServlet主要用作职责调度工作,本身主要用于控制流程,主要职责如下:
- 通过HandlerMapping,将请求映射到处理器(返回一个HandlerExecutionChain,它包括一个处理器、多个HandlerInterceptor 拦截器);
- 通过 HandlerAdapter 支持多种类型的处理器(HandlerExecutionChain中的处理器);
- 通过ViewResolver 解析逻辑视图名到具体视图实现;
- 渲染具体的视图等;
- 本地化解析;
- 如果执行过程中遇到异常将交给HandlerExceptionResolver 来解析;
- 文件上传解析,如果请求类型是multipart将通过MultipartResolver 进行文件上传解析。
1.1 DispatcherServlet在web.xml中的配置
<!-- 配置 DispatcherServlet --> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
- load-on-startup:表示启动容器时初始化该Servlet;
- url-pattern:表示哪些请求交给Spring Web MVC处理, “/” 是用来定义默认servlet映射的。也可以如“*.html”表示拦截所有以html 为扩展名的请求。
注:该 DispatcherServlet 默认使用WebApplicationContext 作为上下文, Spring 默认配置文件为“/WEB-INF/[servlet名字]-servlet.xml”。
DispatcherServlet的初始化参数:
参数 | 描述 |
contextClass | 实现WebApplicationContext接口的类,当前的servlet用它来创建上下文。如果这个参数没有指定, 默认使用XmlWebApplicationContext |
contextConfigLocation | 传给上下文实例(由contextClass指定)的字符串,用来指定上下文的位置。这个字符串可以被分成多个字符串(使用逗号作为分隔符) 来支持多个上下文(在多上下文的情况下,如果同一个bean被定义两次,后面一个优先)。 |
namespace | WebApplicationContext命名空间。默认值是[server-name]-servlet。 |
1.2 上下文关系
集成Web环境的通用配置:
<context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:spring-common-config.xml, classpath:spring-budget-config.xml </param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
如上配置是Spring集成Web环境的通用配置;一般用于加载除Web 层的Bean(如DAO、Service等),以便于与其他任何Web 框架集成。
- contextConfigLocation:表示用于加载Bean的配置文件;
- contextClass:表示用于加载Bean的ApplicationContext实现类,默认WebApplicationContext。
相关推荐
JudeJoo 2020-08-21
meleto 2020-08-15
itjavashuai 2020-08-15
zhongliwen 2020-07-05
haidaoxianzi 2020-07-04
小鱿鱼 2020-06-26
haidaoxianzi 2020-06-17
MicroBoy 2020-06-17
牧场SZShepherd 2020-06-17
neweastsun 2020-06-16
haidaoxianzi 2020-06-14
zhongliwen 2020-06-13
@RequestBody注解实现接收http请求的json数据,将json数据转换为java对象进行绑定。加上@ResponseBody注解,就不会走视图解析器,不会返回页面,目前返回的json数据。
DumbbellYang 2020-06-13
csuzxm000 2020-06-09
haidaoxianzi 2020-06-03
qingjiuquan 2020-05-30
84560296 2020-05-30
咻pur慢 2020-05-27