Spring Mvc笔记

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文件

  1. <servlet>
  2. <servlet-name>springmvc</servlet-name>
  3. <servlet-class>
  4. org.springframework.web.servlet.DispatcherServlet
  5. </servlet-class>
  6. <init-param>
  7. <param-name>contextConfigLocation</param-name>
  8. <param-value>classpath:springmvc.xml</param-value>
  9. </init-param>
  10. </servlet>
  11. <servlet-mapping>
  12. <servlet-name>springmvc</servlet-name>
  13. <!-- struts习惯使用/*,在springmvc不管用 -->
  14. <url-pattern>*.do</url-pattern>
  15. </servlet-mapping>

2.2 配置spring.xml文件

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

2.3 添加注解

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

    2.4 模型数据处理

  • 方法的返回值可采用ModelAndView,newModelAndView(“XXX”,map);相当于把结果数据放到request
    • 直接在方法的参数列表中来定义map,这个map即是ModelAndView里面的Map,由视图解析器处理

      (上面两张方法不建议使用)

    • 建议使用:在方法的参数列表中定义Model对象,相当于把结果数据放到request

    2.5 ajax的使用

    2.6 重定向

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

    2.7 拦截器的使用

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

来自为知笔记(Wiz)

时间: 2024-11-05 20:32:06

Spring Mvc笔记的相关文章

Spring Mvc 笔记二之异常和文件上传

spring mvc的异常与文件上传 1.异常: spring注解版的异常有局部异常和全局异常                1.局部异常对单个controller有效;(在controller类写一个处理异常的方法) @ExceptionHandler(value={UserException.class}) public String handlerExceptionTest(UserException e ,HttpServletRequest request){ request.setA

孔浩Spring mvc 笔记

Spring mvc 配置: Web.xml: <?xml version="1.0"encoding="UTF-8"?> <web-appxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xmlns:web="http://java.sun.com/xml/ns

Spring MVC 笔记及简单了解

1.Springmvc是什么 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的. 1.1  Springmvc 架构图 1.DispacherServlet前端控制器 负责用户请求和响应,是一个中央控制器(调度),调用HandlerMapping查找Ha

Spring MVC笔记(三) Spring MVC表单处理

创建动态WEB工程 FormHandling,并添加SpringMVC相关jar包(同Hello world示例一致),添加DispatcherServlet配置,如下: web.xml 1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http

Spring MVC笔记(七) springMVC文件上传

创建springMVC工程 SpringMVCFileUpload,导入springMVC相关jar以及commons-io.jar.commons-fileupload.jar: 创建springMVC默认配置文件 SpringMVCFileUpload-servlet.xml: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework

Spring MVC笔记(八) 控制器类名称处理映射

ControllerClassNameHandlerMapping类是基于约定的处理程序映射类,它将URL请求映射到配置中提到的控制器的名称.这个类接受控制器名称并将其转换为带有前导"/"的小写形式. 例如HelloController映射到URL: "/hello*". 创建springMVC工程: ControllerNameHandlerMapping-servlet.xml配置如下: <?xml version="1.0" enco

Spring MVC 学习笔记(二):@RequestMapping用法详解

一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,相当于Servlet中在web.xml中配置 <servlet>     <servlet-name>servletName</servlet-name>     <servlet-class>ServletClass</servlet-class> </servlet>

[Spring MVC]学习笔记--DispatcherServlet

在上一篇我们介绍了Servlet,这一篇主要来看一下MVC中用到的DispatcherServlet(继承自HttpServlet). 1. DispatcherServlet在web.xml中被声明. <web-app> <servlet> <servlet-name>example</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet&l

Spring MVC学习笔记(一)--------准备篇

这一系列笔记将带你一步一步的进入Spring MVC,高手勿喷. 首先你得安装以下的工具: JDK,虽然JDK8已经发布了一段时间了,但是由于我们并不会使用到里面的新特性,所以JDK6以上版本皆可以(需加入到PATH环境变量中): Servlet Container,为了能运行WEB应用程序,因此需要一个Web Container,这里我们建议Tomcat即可: IDE,一个好的IDE不仅能提高你开发的效率,还能降低你学习的成本,我们选择的是IntelliJ: 构建工具,推荐使用Gradle,它