Springmvc
1 SpringMVC体系结构
1.1架构图
1.2体系结构流程图
用户向前端控制器dispatcher servlet发送请求;
dispatcher servlet接收请求并调用HandlerMapping处理器映射器;
处理器映射器根据请求url找到具体的处理器,生成处理器对象,如果有处理器拦截,则生成并返回dispatcher servlet;
dispatcher servlet从HandlerAdapter处理器适配器调用处理器。
执行处理器(也称为控制器、后端控制器;
控制器运行完成后,返回ModelAndView并传递给HanderAdapter处理器适配器;
HandlerAdapter将控制器的执行结果ModelAndView返回到dispatcher servlet;
dispatcher servlet将ModelAndView传递到ViewReslover视图解析器;
ViewReslover分析后,将具体的View返回到dispatcher servlet;
dispatcher servlet渲染视图。 也就是说,在视图中输入模型数据。
dispatcher servlet会响应用户
1.3组件说明
dispatcher servlet :前端控制器
当用户请求到达前控制器时,它相当于mvc模式中的C。 dispatcher servlet是整个过程的控制中心,它调用其他组件来处理用户的请求。 dispatcher servlet的存在会降低组件之间的耦合性。
在创建DispathcerServlet作为springmvc的中央调度程序时,DispathcerServlet缺省用于从dispatcher servlet.properties文件加载springmvc 如果通过springmvc.xml分配
元件相对于放置在springmvc.xml中的元件。
硬件映射:处理器映射程序
HandlerMapping负责根据用户的请求url找到Handler处理器。 springmvc提供了各种映射器来实现各种映射方法,包括性能分析方法、接口方法和注释方法。
HandlerMapping负责根据请求找到相应的Handler处理器和拦截器,将它们封装到HandlerExecutionChain对象中并返回给前端控制器
硬件:处理器
Handler是继dispatcher servlet前端控制器之后的后端控制器,Handler在dispatcher servlet控件下处理特定的用户请求。
由于Handler涉及特定用户的业务要求,一般程序员需要根据业务需求开发Handler。
HandlAdapter :处理器适配器
使用硬件适配器运行处理器。 这是适配器模式APP应用程序,使用扩展适配器可以运行更多类型的处理器。
视图解析器:视图解析器
View Resolver在View视图中生成处理结果。 View Resolver首先根据逻辑视图名称解析为物理视图名称即具体页面地址,然后生成View视图对象,最后渲染View并通过页面向用户呈现处理结果。 springmvc框架提供了许多视图类型,包括jstlView、freemarkerView和pdfView。
一般来说,页面标签和页面模板技术需要模型数据通过页面展现给用户,程序员需要根据业务需求开发具体的页面。
2 SpringMVC开发配置
2.1部署基本jar包
2.2web.XML配置
2.2.1前端控制器的配置
用WEB INF web.xml配置前端控制器。 dispatcher servlet是一个servlet。
springmvc
org.spring framework.web.servlet.dispatcher servlet
上下文配置
classpath:springmvc.xml
1
springmvc
*.action
注:
1、contextconfiglocation :指定spring MVC配置的加载位置,若未指定,则默认加
we B-INF/[ dispatcher servlet的servlet名称] -包含]-servlet.xml。
2.2.2 springmvc配置文件
此配置文件将放置在配置前端控制器中并进行配置加载。 必须在springmvc配置文件中配置处理器适配器、处理器映射器、处理器、视图解析器等
处理器适配器和处理器配置
注释方法:
在springmvc中,可以使用自动加载RequestMappingHandlerMapping和RequestMappingHandlerAdapter执行以下操作
处理器配置,将Hander加载到spring容器中,可以进行单一加载,实际开发中使用组件扫描
单一加载:
组件扫描:
视图解析器设置
注:
内部资源管理器: JSP视图分析支持
viewClass:JstlView表示必须在JSP模板页中使用JSTL标记库。 因此,classpath必须包含JSTL的相关jar包。
prefix和suffix :搜索视图页的前缀和后缀。 最后一个视图的地址是前缀逻辑视图名称后缀。 逻辑视图名称必须在控制器中返回ModelAndView规范。 例如,如果逻辑视图名称是hello,则最终返回的jsp视图地址“web-INF/JSP/hello.jelo”