Spring MVC DispatcherServlet的初始化

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篇




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值