SpringMVC简介:SpringMVC也叫Spring Web mvc,属于表现层的框架。Spring MVC是Spring框架的一部分,是在Spring3.0后发布的
Spring结构图
SpringMVC请求流程图
SpringMVC请求流程图语述:
request-------->DispatcherServler(中央调度器/前端控制器)-----> HandlerMapping(处理器映射器)------>返回一个执行链----->将执行链转交给HandlerAdaptor(处理器适配器)----->调度Handler(处理器)-----> ModelAndView----->先将结果交给HandlerAdaptor,然后再由HandlerAdaptor转交给 DispatcherServler--------->DispatcherServler调度ViewResolver(视图解析器)---->交给DispatcherServler-------> 寻找View---->View做出响应(response)
SpringMVC的第一个入门案例
用户提交一个请求,服务器端处理器在接收到这个请求后,给出一条欢迎信息,在页面中显示。
第一步:导入jar包
在原有Springjar包基础上添加2个jar包
spring-webmvc-4.2.0.RELEASE.jar 作用:对Spring mvc的实现
spring-context-support-4.2.0.RELEASE.jar 作用:包含支持UI模板,邮件服务,缓存Cache等方面的类
分析配置步骤:
1.在web.xml中配置前端控制器
2.处理器映射器(HandlerMapping)
3.处理器适配器 (HandlerAdaptor)
4.处理器
5.视图解析器(ViewResolver)
注册中央调度器
关于urlpattern的说法:
最好配成*.do
不能配成/* 无法访问*.jsp等动态资源
最好也不要配成/ 无法访问静态资源
不得不配成/ Restful编程 rest
问题:/*配法出现404问题
解释:Ⅰ:不能配置为/*
DispatcherServlet会将向动态页面请求,即向jsp页面的跳转请求也当做是一个普通的Controller请求。
中央调度器会调用处理器映射器为其查找相应的处理器。当然是找不到的。jsp页面会报404错误 结论:/*会拦截动态资源
Ⅱ:方案一:使用Tomcat默认的Servlet解决
不得不配成/ 解释:上图中:红色标注第三中配置
方案二:使用MVC的default-servlet-handler
会将对静态资源的访问请求通过HandlerMapping映射到默认Servlet请求处理器DefaultServletRequestHandler对象。而该处理器调用了Tomcat的DefaultServlet来处理静态资源的访问请求。当然需要引入mvc约束
方式三:使用MVC的resource解决
在Spring3.0.4之后,Spring定义了专门用于处理静态资源请求的处理器ResourceHttpRequestHandler。并且添加了<mvc:resources/>标签,专门用于解决静态资源无法访问问题。
Location:静态资源所在目录 mapping: 对资源的请求 注意:需要Tomcat7支持

定制处理器:

jsp页面搭建:

大配置中:注册处理器和视图解析器
访问页面:
配置式开发--BeanNameUrlHandlerMapping
配置式开发--SimpleUrlHandlerMapping
