1 / 16
文档名称:

SpringMVC学习笔记.doc

格式:doc   大小:597KB   页数:16页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

SpringMVC学习笔记.doc

上传人:yixingmaoh 2019/8/3 文件大小:597 KB

下载得到文件列表

SpringMVC学习笔记.doc

相关文档

文档介绍

文档介绍:SpringMVC学****笔记核心架构的具体流程步骤如下:1、 首先用户发送请求——>DispatcherServlet,前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流程控制;2、 DispatcherServlet——>HandlerMapping,HandlerMapping将会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器(页面控制器)对象、多个HandlerInterceptor***)对象,通过这种策略模式,很容易添加新的映射策略;3、 DispatcherServlet——>HandlerAdapter,HandlerAdapter将会把处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易支持很多类型的处理器;4、 HandlerAdapter——>处理器功能处理方法的调用,HandlerAdapter将会根据适配的结果调用真正的处理器的功能处理方法,完成功能处理;并返回一个ModelAndView对象(包含模型数据、逻辑视图名);5、 ModelAndView的逻辑视图名——>ViewResolver,ViewResolver将把逻辑视图名解析为具体的View,通过这种策略模式,很容易更换其他视图技术;6、 View——>渲染,View会根据传进来的Model模型数据进行渲染,此处的Model实际是一个Map数据结构,因此很容易支持其他视图技术;7、返回控制权给DispatcherServlet,由DispatcherServlet返回响应给用户,到此一个流程结束。 此处我们只是讲了核心流程,没有考虑***、本地解析、文件上传解析等,后边再细述。 到此,再来看我们前边提出的问题:  1、 请求如何给前端控制器?,在HelloWorld中详细讲解。2、 前端控制器如何根据请求信息选择页面控制器进行功能处理?我们需要配置HandlerMapping进行映射3、 如何支持多种页面控制器呢?配置HandlerAdapter从而支持多种类型的页面控制器4、 如何页面控制器如何使用业务对象?可以预料到,肯定利用SpringIoC容器的依赖注入功能5、 页面控制器如何返回模型数据?使用ModelAndView返回6、 前端控制器如何根据页面控制器返回的逻辑视图名选择具体的视图进行渲染?使用ViewResolver进行解析7、 不同的视图技术如何使用相应的模型数据?因为Model是一个Map数据结构,很容易支持其他视图技术 在此我们可以看出具体的核心开发步骤:1、 ,从而拦截请求到SpringWebMVC2、 HandlerMapping的配置,从而将请求映射到处理器3、 HandlerAdapter的配置,从而支持多种类型的处理器4、 ViewResolver的配置,从而将逻辑视图名解析为具体视图技术5、处理器(页面控制器)的配置,从而进行功能处理load-on-startup:表示启动容器时初始化该Servlet;url-pattern:表示哪些请求交给SpringWebMVC处理,“/”是用来定义默认servlet映射的。也可以如“*.html”表示拦截所有以html为扩展名的请求。 自此请求已交给SpringWebMVC框架处理,因此我们需要配置Spring的配置文件,默认DispatcherServlet会加载WEB-INF/[DispatcherServlet的Servlet名字]-。本示例为WEB-INF/chapter2-。BeanNameUrlHandlerMapping:表示将请求的URL和Bean名字映射,如URL为“上下文/hello”,则Spring配置文件必须有一个名字为“/hello”的Bean,上下文默认忽略。SimpleControllerHandlerAdapter:.。如果需要其他类型的处理器可以通过实现HadlerAdapter来解决。InternalResourceViewResolver:用于支持Servlet、JSP视图解析;   viewClass:JstlView表示JSP模板页面需要使用JSTL标签库,classpath中必须包含jstl的相关jar包;   prefix和suffix:查找视图页面的前缀和后缀(前缀[逻辑视图名]后缀),比如传进来的逻辑视图名为hello,则该