Spring MVC DispatcherServlet的初始化
来源:互联网 发布:知乎 性观念 编辑:程序博客网 时间:2024/05/01 06:51
protected void initStrategies(ApplicationContext context){initMultipartResolver(context);initLocaleResolver(context);initThemeResolver(context);initHandlerMappings(context);initHandlerAdapters(context);initHandlerExceptionResolvers(context)initRequestToViewNameTranslator(context);initViewResolvers(context);}
1、initMultipartResolver:初始化 MultipartResolver用于处理文件上传服务,如果有文件上传,那么会将当前HttpServletRequest包装成DefaultMultipartHttpServletRequest,并将每个上传内容封装成CommonsMultipartFile 对象。
2、initLocaleResvlver:用于处理应用中的国际化问题,通告解析请求的Locale和设置响应的Locale来控制应用中的字符编码问题。
3、initThemeResolver:用于定义一个主题,例如,可以根据用户的喜好来设置用户访问的页面样式,可以将这个样式作为一个ThemeName保存,保存在于请求的Cookie中或者保存在服务端的session中,以后每次请求根据这个Theme Name返回特定内容。
4、initHandlerMappings:用于定义用户设置的请求映射关系,例如,SimpleUrlHandlerMapping把用于用户请求的URL映射城一个个Handler实例。对于HandlerMapping必须定义,如果没有定义,将获取DispatcherServlet.properties文件中默认的两个HandlerMapping,分别是BeanNameUrlHandlerMapping 和DefaultAnnotationHandlerMapping。
5、initHandlerAdapters:用于根据Handler的类型定义不同的处理规则,例如。定义SimpleControllerHandlerAdapter处理所有Controller的实例对象,在HandlerMapping中将URL映射成一个Controller实例,那么Spring MVC在解析时SimpleControllerHandlerAdapter就会调用这个Controller实例。同样对HandlerAdapters也必须定义,如果没有定义,将获取DispatcherServlet.properties文件中默认的4个HandlerAdapters,分别是HttpResquestHandlerAdapter、SimpleControllerHandlerAdapter、ThrowawayControllerHandlerAdapter和AnnotationMethodHandlerAdapter。
6、intiHandlerExceptionResolvers:当Handler处理出错时,会通过这个Handler来统一处理,默认的实现类是SimpleMappingExceptionResolver。将错误日志记录在log文件中,并转到默认的错误页面。
7、initRequestToViewNameTranslator:将指定的ViewName按照定义的RequestToViewNameTranslator替换成想要的格式,如加上后缀或者前缀等。
8、initViewResolvers:用于将View解析成页面,在ViewResolvers中可以设置多个解析策略,如可以根据JSP来解析,或者按照Velocity模板解析。默认的解析策略是InternalResourceViewResolver,按照JSP页面解析。
摘自:深入解析 Java Web技术内容 Spring MVC篇
- Spring MVC > DispatcherServlet的初始化
- Spring MVC DispatcherServlet的初始化
- Spring MVC DispatcherServlet的启动以及初始化
- 详解spring-MVC DispatcherServlet初始化
- Spring DispatcherServlet的初始化流程
- spring之spring mvc的DispatcherServlet
- 【Spring】DispatcherServlet的启动和初始化
- Spring MVC - DispatcherServlet Example
- Spring MVC DispatcherServlet说明
- Spring MVC DispatcherServlet配置
- spring mvc dispatcherServlet
- Spring MVC中的DispatcherServlet
- Spring MVC:DispatcherServlet详解
- spring MVC(一) DispatcherServlet
- spring mvc DispatcherServlet作用
- Spring MVC DispatcherServlet
- Spring MVC DispatcherServlet 配置
- Spring MVC DispatcherServlet配置
- AtCoder Beginner Contest 073
- 导入第三方Jar包
- jvm引用类型内存使用详解
- matlab2c使用c++实现matlab函数系列教程-var函数
- 7、IO库
- Spring MVC DispatcherServlet的初始化
- P3213【USACO 2015 Jan Gold】牧草鉴赏家
- 排序的稳定与不稳定
- MySQL主从复制和读写分离的搭建
- 静态库与动态库的区别以及优缺点,在linux环境下配置静态库与动态库
- 程序猿与艺术的碰撞
- Sending signal. PID: 8561 SIG: 9
- java中NIO和IO的区别
- LintCode Longest Common Subsequence(最长公共子序列长度,动态规划入门题)