SpringMVC简介

MVC 设计不仅限于 Java Web 应用,还包括许多应用,比如前端、PHP、.NET 等语言。之所以那么做的根本原因在于各个模块的解耦。
MVC 是 Model、View 和 Controller 的缩写,分别代表 Web 应用程序中的 3 种职责。
(1)、模型:用于存储数据以及处理用户请求的业务逻辑。
(2)、视图:向控制器提交数据,显示模型中的数据。
(3)、控制器:根据视图提出的请求判断将请求和数据交给哪个模型处理,将处理后的有关结果交给哪个视图更新显示
在这里插入图片描述

介绍 一下:
springMVC它为控制器和处理程序提供了大量与此模式相关的功能。并且当向 MVC 添加反转控制(Inversion of Control,IoC)时,它使应用程序高度解耦,提供了通过简单的配置更改即可动态更改组件的灵活性。
SpringMVC框架是高度可配置的,包含多种视图技术,比如:jsp、Velocity、themlefy等。SpringMVC框架并不关心使用的视图技术,也不会去强迫开发者只使用jsp技术,但教程中使用的视图是jsp。
Spring MVC 框架处理用户请求的完整流程和处理中包含的 4 个接口。
Spring MVC初学重点掌握的4个接口分别是:

  1. DispatcherServlet :Spring MVC 所有的请求都经过 DispatcherServlet 来统一分发,在 DispatcherServlet 将请求分发给Controller之前需要借助 Spring MVC 提供的 HandlerMapping 定位到具体的 Controller。
  2. HandlerMapping :HandlerMapping 接口负责完成客户请求到 Controller 映射。
  3. Controller:Controller接口将处理用户请求,这和 Java Servlet 扮演的角色是一致的。一旦 Controller 处理完用户请求,将返ModelAndView对象给DispatcherServlet前端控制器,ModelAndView中包含了模型(Model)和视图(View)。从宏观角度看DispatcherServlet是整个 Web 应用的控制器;从微观考虑,Controller 是单个 Http 请求处理过程中的控制器,而 ModelAndView 是 Http 请求过程中返回的模型(Model)和视图(View)。
  4. ViewResolver :ViewResolver 接口(视图解析器)在 Web 应用中负责查找 View 对象,从而将相应结果渲染给用户。
  5. 用户发送请求至前端控制器DispatcherServlet。
  6. DispatcherServlet收到请求,调用HandlerMapping处理器映射器。
  7. 处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器一并返回给DispatcherServlet。
  8. DispatcherServlet调用HandlerAdapter适配器。
  9. HandlerAdapter经过适配调用具体的处理器(一般是开发人员编写的Controller)。
  10. Controller执行完成返回ModelAndView。
  11. HandlerAdapter将Controller执行结果ModelAndView返回DispatcherServlet。
  12. DispatcherServlet将ModelAndView传给ViewReslover视图解析器。
  13. ViewReslover解析后返回具体View。
  14. DispatcherServlet根据View进行渲染视图。
  15. DispatcherServlet响应用户。
    工作流程图:
    在这里插入图片描述

配置文件的xml
在src目录下创建Spring MVC的配置文件 xxx.xml :
//使用扫描机制扫描控制器类,控制器类都在controller包及其子包下 包含了<context:annotation‐config>的功能

<context:component-scan base-package="com.gx.controller"/>

//配置视图解析器 使用JSP

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 

视图路径前缀 /WEB-INF/jsp/目录

<property name="prefix" value="/WEB-INF/jsp/"/> 

视图的后缀 JSP的后缀为.jsp

<property name="suffix" value=".jsp"/> 
</bean>

在JavaWeb 项目的web.xml中配置SpringMVC的核心

<url-pattern>/</url-pattern>
<!--第一种配置:<url-pattern>*.do</url-pattern> 古老的写法,还可以写*.action等等, 表示以.do结尾的或者以.action结尾的URL都由前端控制器DispatcherServlet来解析 , 其余的匹配不上的静态资源由web.xml下的defaultservlet处理。
 第二种配置: <url-pattern>/</url-pattern> 推荐写法,这个路径可以匹配所有的请求,匹配到的url都由DispatcherServlet来解析, 其实是覆盖掉呢web.xml下的default, 需要对静态资源单独处理,一般使用
 <mvc:resources location="/js/" mapping="/js/**"/> 这种配置还能实现restful 
 第三种配置:【不要使用】错误配置:/*, 就会匹配到所有类型的url,包括路径型的,有各种后缀的等等, 注意这里是不能这样配置的, 因为如果这样写,最后转发到 jsp 页面的时候,仍然会由DispatcherServlet进行解析, 而 这时候会找不到对应的Handler,从而报404!!! -->

注意:
<url-pattern>/</url-pattern> 表示的为只匹配/login和/demo,后面不带.xxx的 <url-pattern>/*</url-pattern> 表示匹配的为所有,包括.jsp、.js、.html等 在Spring中的Springmvc配置中url-pattern应该使用/。不然会导致jsp页面都被DispatcherServlet给转发了,无法被解析。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值