文档章节

Spring Mvc 笔记

hmaccelerate
 hmaccelerate
发布于 2016/04/09 10:47
字数 716
阅读 33
收藏 0

Spring Mvc工作流程与模块功能

Spring Web MVC DispatcherServlet 的请求处理的工作流程如下图所示: 输入图片说明 ####工作流程 (1)收到一个 HTTP 请求后, DispatcherServlet 根据HandlerMapping来选择并且调用适当的控制器 。 (2)控制器接受请求,并基于使用的 GET 或 POST 方法来调用适当的 service 方法。Service 方法将设置基于定义的业务逻辑的模型数据,并返回视图名称到 DispatcherServlet 中。 (3)DispatcherServlet 会从 ViewResolver 获取帮助,为请求检取定义视图。 (4)一旦确定视图, DispatcherServlet 将把模型数据传递给视图,最后呈现在浏览器中。 ####模块功能

  • DisapatcherServlet:中央控制器,作为统一的访问点,进行全局的流程控制。
  • HandlerMapping:映射处理器,负责告诉中央控制器调用哪个controller
  • Controller:处理具体的业务并返回视图名称给DispatcherServlet
  • ViewResolver&View:帮助DispatcherServlet检取定义视图
  • Interceptor:拦截器,负责拦截我们定义的请求然后做处理工作 ps: spring mvc struts2等mvc框架运用了前端控制器模式 适配器模式等

初步学习:运用功能

  1. 核心组件: DispatcherServlet Controller handlerMapping(映射处理器,负责映射中央控制器转发给controller时的映射策略) ModelAndView ViewResolver Interceptors
  2. 流程

2.1 配置web.xml文件

<servlet>
      <servlet-name>springmvc</servlet-name>
      <servlet-class>
org.springframework.web.servlet.DispatcherServlet
      </servlet-class>
      <init-param>
         <param-name>contextConfigLocation</param-name>
         <param-value>classpath:springmvc.xml</param-value>
      </init-param>
</servlet>
<servlet-mapping>
       <servlet-name>springmvc</servlet-name>
<!-- struts习惯使用/*,在springmvc不管用 -->
       <url-pattern>*.do</url-pattern>
</servlet-mapping>

2.2 配置spring.xml文件

<!-- 一旦有扫描器的定义,mvc:annotation-driven不需要,扫描器中包含驱动-->
<context:component-scan base-package="cn.itcast.controller"/>
 <!-- 前缀+ viewName +后缀 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- webroot到某一指定的文件夹的路径 -->
    <property name="prefix" value="/WEB-INF/jsp/"/>
<!-- 视图名称的后缀 -->
<property name="suffix" value=".jsp"/>
</bean>

2.3 添加注解

  • 添加注解@controller以此标明是控制器类添加方法
  • 添加@RequestMapping("/xxx.do")以此标明访问控制层的方法 @RequestMapping("/xxxxx")也可以来在类上声明命名空间

2.4 模型数据处理

  • 方法的返回值可采用ModelAndView,newModelAndView("XXX",map);相当于把结果数据放到request
  • 直接在方法的参数列表中来定义map,这个map即是ModelAndView里面的Map,由视图解析器处理 (上面两张方法不建议使用)
  • 建议使用:在方法的参数列表中定义Model对象,相当于把结果数据放到request

2.5 重定向

  • controller内部重定向,redirect:加上同一个controller中的requestMapping的值 return "redirect:homenews-list.do";
  • controller之间的重定向:必须要指定好controller的命名空间再指定requestMapping的值,redirect:后必须要加/,是从根目录开始,例: return "redirect:/homenews/homenews-list.do";

2.6 拦截器的使用

  • 先spring mvc配置文件里配置:
 <!-- 拦截器-->
<mvc:interceptors>
    <mvc:interceptor>
        <mvc:mapping path="/**/*"/>
        <bean class="com.hmaccelerate.interceptors.LoginInterceptor"/>
    </mvc:interceptor>
</mvc:interceptors>
  • 然后实现相对于的接口

© 著作权归作者所有

hmaccelerate
粉丝 1
博文 9
码字总数 4646
作品 0
深圳
程序员
私信 提问
Spring 官方文档第十六章笔记(1):SpringMVC简介

Spring Reference第十六章笔记(1)Introduction to Spring Web MVC framework Spring MVC的核心是DispatcherServlet。DispatcherServlet根据配置文件的配置将请求分发给各个 Controller 。 ...

LiJIaming
2012/05/31
702
0
springMvc 注解配置例子(hello world)含demo

oyhk 学习笔记 用spring mvc 已经有一段时间了,感觉真的比struts2好用(个人认为)... 下面写一篇,基于注解配置的springmvc小教程(hello world) demo演示:http://demo.mkfree.com/springmvc/h...

miki_zhang
2013/02/22
10K
0
Java基础教程:tutorialspoint-spring mvc

教程: 来自turorialspoint的Spring MVC 4.1.6教程(英文),官网:https://www.tutorialspoint.com/springmvc/index.htm 离线版本:(链接: https://pan.baidu.com/s/1hsvL7wS 密码: vg7x)......

easonjim
2017/08/28
0
0
【Spring学习笔记】--Spring MVC

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/YYZZHC999/article/details/82961757 接上篇标准的MVC 框架,我们学习一下Spring MVC. Spring MVC 是一个模型...

杨晓慧_Hepburn
2018/10/07
0
0
Spring3 MVC 笔记(二) —json+rest优化

接上次的 spring mvc 注解的一些详细信息! 其实也是一些个人的学习笔记 呵呵! http://7454103.iteye.com/blog/716975 有了上面的基础! 一起来研究些其他的东西! 前端时间写了个 struts2 ...

李长春
2011/09/15
4.3K
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql-connector-java升级到8.0后保存时间到数据库出现了时差

在一个新项目中用到了新版的mysql jdbc 驱动 <dependency>     <groupId>mysql</groupId>     <artifactId>mysql-connector-java</artifactId>     <version>8.0.18</version> ......

ValSong
50分钟前
5
0
Spring Boot 如何部署到 Linux 中的服务

打包完成后的 Spring Boot 程序如何部署到 Linux 上的服务? 你可以参考官方的有关部署 Spring Boot 为 Linux 服务的文档。 文档链接如下: https://docs.ossez.com/spring-boot-docs/docs/r...

honeymoose
53分钟前
5
0
Spring Boot 2 实战:使用 Spring Boot Admin 监控你的应用

1. 前言 生产上对 Web 应用 的监控是十分必要的。我们可以近乎实时来对应用的健康、性能等其他指标进行监控来及时应对一些突发情况。避免一些故障的发生。对于 Spring Boot 应用来说我们可以...

码农小胖哥
今天
6
0
ZetCode 教程翻译计划正式启动 | ApacheCN

原文:ZetCode 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 学习资源 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 ...

ApacheCN_飞龙
今天
4
0
CSS定位

CSS定位 relative相对定位 absolute绝对定位 fixed和sticky及zIndex relative相对定位 position特性:css position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left属性则...

studywin
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部