SpringMVC理解9大组件

2018-05-02  本文已影响0人  每天进步一一点

首先理解一下HandlerAdapter

HandlerAdapter需要注册当SpirngMVC的容器里,注册方法和HandlerMapping一样,只要配置一个Bean就可以了

这是一个接口,一共三个方法,

使用HandlerAdapter是因为SpirngMVC没有对处理器做任何的限制,处理器可以是任何合理的方式来表示,可以是一个类,方法

public interface HandlerAdapter {

//判断是否可以使用某个handler

boolean supports(Object var1);

ModelAndView handle(HttpServletRequest var1, HttpServletResponse var2, Object var3)throws Exception;

//根据名称,获取资源的Last-Modified:是资源最后一次的修改时间

long getLastModified(HttpServletRequest var1, Object var2);

}

HandlerExceptionResolver

ModelAndView resolveException(HttpServletRequest var1, HttpServletResponse var2, Object var3, Exception var4);

作用:用来请求解析过程中出现的异常

只有一个方法,从异常解析ModelAndView 

ViewResolver

Locale确定了一种专门的语言和区域,通俗一点,就是根据不同语言定制的一种规则,一个类,可以根据不同语言构造不同的类
//根据viewName去查找View

ViewresolveViewName(String var1, Locale var2)throws Exception;

作用:用来将String类型的视图名和locale解析为View视图

使用:需要注册到SpringMVC的容器里 :默认:internalResourceViewResolver

RequestToViewNameTranslator

StringgetViewName(HttpServletRequest var1)throws Exception;  ----方法

理解定义:ViewResolver是通过ViewName去查找view的,但是Handler处理完并没有设置view和viewName,这时候就需要request去

获取viewName,这时候RequestToViewNameTranslator就派上用场了

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(接口)

作用:处理上传请求的

//判断是否为上传请求

boolean isMultipart(HttpServletRequest request);

//将普通的request包装成MultipartHttpServletRequest 

MultipartHttpServletRequest resolveMultipart(HttpServletRequest request)throws MultipartException;

//清理临时的上传资源

void cleanupMultipart(MultipartHttpServletRequest request);

FlashMapManager(接口)

理解参考:https://blog.csdn.net/xia4820723/article/details/51345559

flashmap的作用是在redirect中传递参数。大家都知道转发 request是不变的,重定向会生成新的request,那传递参数就不能直接用request进行传递。

//用于恢复参数,并将恢复过的和超过的参数从保存介质中删除

FlashMap retrieveAndUpdate(HttpServletRequest request, HttpServletResponse response);

//用于将参数保存起来

void saveOutputFlashMap(FlashMap flashMap, HttpServletRequest request, HttpServletResponse response);

上一篇下一篇

猜你喜欢

热点阅读