SpringMVC 简介
SpringMVC 优点SpringMVC 也叫 Spring web mvc。是 Spring 框架的一部分是Spring3.0 后发布的。
1. 基于MVC 架构
基于 MVC 结构,功能分工明确。解耦合,
2. 易于理解,上手快;使用简单。
你可以开发一个注释 SpringMVC 项目,SpringMVC 也是轻量级,jar 非常小。特定的接口和类别不依赖。
3. 作为Spring 一部分框架可以使用Spring 的IoC 和Aop。Strtus易于集成,MyBatis,Hiberate,JPA 等待其他框架。
4. SpringMVC 在控制器中加强注释的使用,Service,Dao 所有注释都可以使用。方便灵活。使用@Controller 创建处理器对象,@Service 创建业务对象,创建业务对象,@Autowired 或者@Resource 注入控制器类别 Service, Service 将Dao注入类中。
第一个注释 SpringMVC 程序所谓 SpringMVC 注解式开发是指在代码中通过对类和方法进行注解, 处理器可以在springmvc中完成 注册容器。注释开发是重点。
项目:primary-annotation
完成功能:用户提交一个请求,服务器在收到这个请求后,会给出一个欢迎信息,并在响应页面上显示这个信息。
新建maven web 项目pom.xml
创建web 项目结束后,加入 Servlet 依赖,SpringMVC 依赖
依赖:
插件:
注册中央调度器
(1) 完全限制类名
中央调度器是一个 Servlet,名称为 DispatcherServlet。导入的Jarr中央调度器的全限定性类名 文件spring-webmvc-5.2.5.RELEASE.jar 第一包org.springframework.web.servlet 下可找到。
(2) <load-on-startup/>
在<servlet/>中添加<load-on-startup/>它的功能是标记是否在Web上 服务器(这里是 Tomcat)这将在启动时创建 Servlet 例如,是否在Web 当服务器启动时,调用执行 Servlet 的 init()方法,而不是在真正的访问中创建。
它的值必须是一个整数。
当值大于等于 0 这意味着容器在启动时加载并初始化这一点 servlet,Servlet值越小,值越小 优先级越高,就越早被创建;
当值小于 0 或者在没有指定的情况下,表示该指定 Servlet 只有当它真正被使用时才能创建。
当值相同时,容器会选择自己创建顺序。
(3) <url-pattern/>
对于<url-pattern/>,可以写为 / ,建议写为*.do 的形式。
(4) 配置文件的位置和名称
注册后,可以直接在服务器上发布运行。此时,访问浏览器页面,控制台将抛出FileNotFoundException。 异常。也就是说,默认情况下,WEB应该来自项目的根源-INF 在目录下找名字 Servlet 名称-servlet.xml 配置文件。这里的“Servlet 名 “称”是指注册中央调度器<servlet-name/>标签中指定的 Servlet 的name 值。本例配置文件名为springmvc-servlet.xml。
一般情况下,配置文件放在类路径下,即resourcess 目录下。所以, 在注册中央调度器时,还需要设置中央调度器进行搜索 SpringMVC 配置文件路径和文件名称。
打开Dispatcherservetet 从FrameworkServlet继承的源代码,其中一个属性 contextConfigLocation,用于设置 SpringMVC 配置文件的路径和文件名称。这就是初始化参数的属性。
创建SpringMVCCC 配置文件
在工程类路径中,即src 目录下创建 SpringMVC springmvc配置文件.xml。文件名可任意命名。
创建处理器
在类上和方法上添加相应的注释。@Controller:表示目前类似于处理器
@RequestMapping:表示当前的方法是处理器方法。该方法应正确 value 属性指定的URI 处理和响应。注释方法的方法名称可以随意使用。
如果处理器方法的执行可以与多个要求路径相匹配,则@RequestMapping value 一个数组可以写在属性中。
ModelAndView 类中的adddobject()方法用于向其发展 Model 添加数据。Model 底层是Hashmap。
Model 数据存储在中 request 作用域中,SringMVC 默认情况下,转发跳转到视图,请求结束,模型中的数据被销毁。
声明组件扫描仪
在springmvc中.xml 中注册组件扫描仪
定义目标页面
webapp 在目录下新建一个子目录jsp,其中新建一个jsp 页面show.jsp。
修改视图分析器的注册
SpringMVC 为了避免在视图解析器Internalresouceviewrewresolver中冗余请求资源路径和扩展名称,框架 请求的前退和后退被引入。ModelAndVieww 只需给出要跳转页面的文件名。视图分析器将自动完成具体文件路径和文件扩展名的拼接。
把show.jsp 文件放到 /WEB-INF/jsp/路径中
修改处理器
使用逻辑视图名称,show 是逻辑视图的名称。
使用SpringMVCC 框架 web 请求处理顺序
流程图
简单分析执行过程
(1) 向中央调度器提交浏览器请求
(2) 中央调度器直接将请求转移到处理器映射器。
(3) 处理器映射器将根据要求找到处理要求的处理器,并将其包装成处理器执行链,然后返回中央调度器。
(4) 根据处理器执行链中的处理器,中央调度器找到了能够执行处理器的处理器适配器。
(5) 处理器适配器调用执行处理器。
(6) 处理器将处理结果和跳转视图包装到一个对象中 ModelAndView 并将其返回处理器适配器。
(7) 处理器适配器直接将结果返回中央调度器。
(8) 中央调度器调用视图解析器 ModelAndView 视图名称封装为视图对象。
(9) 视图分析器将包装的视图对象返回中央调度器
(10) 中央调度器调用视图对象,使其自行渲染,即填充数据,形成响应对象。
(11) 中央调度器响应浏览器。
