Spring复习笔记: Spring MVC核心类和注解

Spring MVC的工作流程(灵活性强,易于与其他框架整合)

  1. 用户通过浏览器向服务器发送请求,请求被Spring MVC的前端控制器DispatcherServlet所拦截
  2. DispatcherServlet拦截到请求后,会调用HanderMapping处理器映射器
  3. 处理器映射器根据请求URL找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet
  4. DispatcherServlet会通过返回信息选择合适的HandlerAdapter(处理器适配器)
  5. HandlerAdapter会调用并执行Handler(处理器),这里的处理器指的就是程序中编写的Controller类,也被称之为后端控制器
  6. Controller执行完成后,会返回一个ModelAndView对象,该对象中会包含视图名或包含模型和视图名
  7. HandlerAdapter将ModelAndView对象返回给DispatcherServlet
  8. DispatcherServlet会根据ModelAndView对象选择一个合适的ViewReslover(试图解析器)
  9. ViewReslover解析后,会向DispatcherServlet中返回具体的View(视图)
  10. DispatcherServlet对View进行渲染(即将模型数据填充至视图中)
  11. 视图渲染结果返回给客户端浏览器显示

DIspatcherServlet介绍

在程序中充当着前端控制器的角色
配置在项目的web.xml文件中

  <servlet>
    <servlet-name>ps-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring/spring-*.xml</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>ps-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

@Controller

加上该注解,不需要再实现Controller接口

@RequestMapping(所有属性均是可选的)

用来映射一个请求或方法
常用属性:

  • name: 为映射地址指定别名
  • value: 用于映射一个请求和一个方法
  • method: 指定该方法用于处理哪种请求.(支持多个请求,写成{}的形式)
  • params: 用于指定Request中必须包含某些参数的值.
  • headers: 用于指定Request中必须包含某些header的值
  • consumes: 用于指定处理请求的提交内容类型(Content-type)
  • produces: 用于指定返回的内容类型

组合注解

@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
@PatchMapping

ViewResolver(视图解析器)

  • 为跳转路径添加前缀和后缀
  • 视图解析器的作用是只对Controller类中每个函数返回值那里的String类型前后加路径,而不对@RequestMapping处加路径,对@RequestMapping处无影响
 <bean id="viewResolver"  
 class="org.springframework.web.servlet.view.InternalResourceViewResolver">
       <property name="prefix" value="前缀"/>
       <property name="suffix" value="后缀"/>
</bean>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值