Spring MVC 1

==============================  摘抄至《跟我学SpringMVC.pdf》  ===========================

1、首先用户发送请求————>前端控制器,前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器进行 __前端控制器即DispatcherServlet
处理并把请求委托给它

2、页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在Spring Web
MVC中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个
ModelAndView(模型数据和逻辑视图名);

3、前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲

4、前端控制器再次收回控制权,将响应返回给用户

DispatcherServlet DispatcherServlet会加载WEB-INF/[DispatcherServlet的Servlet名字]-servlet.xml配置文件。本示例为WEB-INF/chapter2-servlet.xml。
———— 这个也需要配置到web.xml中去
HandlerAdapter 处理器功能处理方法的调用,HandlerAdapter将会根据适配的结果调用真正的处理器的功能处理方法,完成功能处理
ModelAndView
HandlerMapping,将会把请求映射为HandlerExecutionChain对象
ViewResolver,将把逻辑视图名解析为具体的View
View——>渲染,View会根据传进来的Model模型数据进行渲染

不同的视图技术 ———— 是指jsp、freemaker、velocity之类的

总结:
1 web.xml 中配置前端控制器
2 在Spring配置文件中配置HandlerMapping、HandlerAdapter

<!-- HandlerMapping -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<!-- HandlerAdapter -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>

BeanNameUrlHandlerMapping:表示将请求的URL和Bean名字映射,如URL为 “上下文/hello”,则Spring配置文
件必须有一个名字为“/hello”的Bean,上下文默认忽略。

SimpleControllerHandlerAdapter:表示所有实现了org.springframework.web.servlet.mvc.Controller接口的Bean
可以作为Spring Web MVC中的处理器。如果需要其他类型的处理器可以通过实现HadlerAdapter来解决。

3 在Spring配置文件中配置ViewResolver
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
InternalResourceViewResolver:用于支持Servlet、JSP视图解析;

4 开发处理器/页面控制器,写java类,继承至Controller,,, 将其添加到Spring配置文件(WEB-INF/chapter2-servlet.xml),让其接受Spring IoC容器管理: ———— 或者通过 @Controller!!
—— 不管理的话,如何
public class HelloWorldController implements Controller
@Override
public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception //1、收集参数、验证参数
//2、绑定参数到命令对象
//3、将命令对象传入业务对象进行业务处理
//4、选择下一个页面
ModelAndView mv = new ModelAndView();
//添加模型数据 可以是任意的POJO对象
mv.addObject("message", "Hello World!");
//设置逻辑视图名,视图解析器会根据该名字解析到具体的视图页面
mv.setViewName("hello");
return mv;
}
}

ModelAndView 提供的api 主要就是
addObject 添加模型数据
setViewName 设置逻辑视图名

POST-REDIRECT-GET模式 ??

DispatcherServlet主要用作职责调度工作,本身主要用于控制流程,主要职责如下:—————————————————————————————————— 这个都很容易理解!!
1、文件上传解析,如果请求类型是multipart将通过MultipartResolver进行文件上传解析;
2、通过HandlerMapping,将请求映射到处理器(返回一个HandlerExecutionChain,它包括一个处理器、多个HandlerInterceptor拦截器); —————————— 处理器 是指: 控制器 Controller
<!--[if !supportLists]-->3、<!--[endif]-->通过HandlerAdapter支持多种类型的处理器(HandlerExecutionChain
中的处理器);
4、通过ViewResolver解析逻辑视图名到具体视图实现;
5、本地化解析;
6、渲染具体的视图等;
7、如果执行过程中遇到异常将交给HandlerExceptionResolver来解析。

Controller控制器
1、收集、验证请求参数并绑定到命令对象;
2、将命令对象交给业务对象,由业务对象处理并返回模型数据;
3、返回ModelAndView(Model部分是业务对象返回的模型数据,视图部分为逻辑视图名)。

因此MVC中完整的C(包含控制逻辑+功能处理)由(DispatcherServlet + Controller)组成。因此此处的控制器是Web MVC中部分,也可以称为页面控制器、动作、处理器。

RequestMapping 是啥 ???

==============================  摘抄结束 ===========================

虽然说了很多很多,但是要是不手动操作一下,还是不会理解的。毕竟作者的思维跟自己的思维不一样,有些词语他说出来很通顺,但是就是自己理解不那么直白,所以,接下来,我用自己的话总结下。

总结具体开发步骤:

1 web.xml里面配置好名为myservlet(名字随意取!)、servlet-name为org.springframework.web.servlet.DispatcherServlet的servlet。 当然,同时要设定url-pattern。

2 web.xml同目录创建myservlet-servlet.xml —— 这是一个spring的配置文件,里面配置。

ViewResolver :一般使用spring提供的org.springframework.web.servlet.view.InternalResourceViewResolver

  —— 设置view的前缀prefix、后缀suffix等; 同时InternalResourceViewResolver,即表明了view类型为jsp,因为spring默认如此。

HandlerMapping:一般使用spring提供的org.springframework.web.servlet.handler.SimpleUrlHandlerMapping

  —— 主要需要配置的属性是mappings,下面包含具体的key、value。key对应请求url

  —— 对各个可能的url请求进行处理,—— 所以,可能会配置量相当大。

Controller:一般是自定义的接口org.springframework.web.servlet.mvc.Controller的实现

  —— 这个很重要,主要是对请求进行了业务处理,然后返回ModelAndView给DispatcherServlet,DispatcherServlet进一步处理:选择好view类型,将model‘填充’到view里面,返回给浏览器。

3 浏览器渲染view以及包含其中的数据,进行展现。

很简单啊! 比其他文章描述的好多了吧!! ~~

Spring MVC 1,布布扣,bubuko.com

时间: 2024-08-08 17:47:33

Spring MVC 1的相关文章

Swagger+ springfox +Spring mvc

简介 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步.Swagger 让部署管理和使用功能强大的API从未如此简单.这一次我将从零开始搭建一个工程来演示如何在Spring mvc中整合Swagger生成Restful接口文档. 新建工程 我们新建一个Maven工程,并添加Web Facet,工程结构如下图所

视图框架:Spring MVC 4.0(1)

目录 一.表单标签库 1.1.简介 1.2.常用属性 1.3.form标签与input标签 1.4.checkbox标签 1.5.radiobutton标签 1.6.password标签 1.7.select标签 1.8.option标签 1.9.options标签 1.10.textarea.errors标签 1.11.hidden标签 1.12.radiobuttons 单选列表与checkboxs复选列表 二.视图解析器 2.1.ViewResolver视图解析器 2.2.链式视图解析器

Spring MVC HTTP请求数据绑定

package com.springmvc.controller; import com.springmvc.model.UserInfo; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import org.springframework.stereotype.Controller; import org.springframework.uti

关于spring mvc的配置文件

1. Web.xml <!--配置页面控制器--> <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</par

[转] 使用Spring MVC构建REST风格WEB应用

原文地址:http://fancy888.iteye.com/blog/1629120 对于运行在网络上的MIS系统而言,处理数据的是整个系统的主要任务,翻开程序我们可以看到,80%以上的代码都在处理数据的CRUD操作.采用一种什么样的框架结构,能够使得处理数据的操作变得简单且易理解,这是大部分开发者尤其是架构设计者一直以来思考的一个问题. REST(Representational State Transfer)是一种编程风格,特别是针对网络应用的设计和开发,采用REST可以显著降低开发的复杂

Spring MVC 基础

Spring MVC 基础 1.Web MVC基础 MVC的本质是表现层模式,我们以视图模型为中心,将视图和控制器分离出来.就如同分层模式一样,我们以业务逻辑为中心,把表现层和数据访问层代码分离出来是一样的方法.框架只能在技术层面上给我们帮助,无法在思考和过程上帮助我们,而我们很多人都不喜欢思考和尝试. 2.实现Web MVC的基础 实现Web MVC基础可以概括为1个前段控制器和2个映射. (1)前端控制器FrontController ASP.NET和JSP都是以Page路径和URL一一对应

spring MVC学习(一)---前端控制器

1.spring MVC中的前段控制器就是DsipatcherServlet,它在spring MVC框架中的结构图如下: 2.DispatcherServlet其实就是一个Servlet,它继承了HttpServlet这个抽象类. 先来看下该类在的位置: 为了使用它,你需要在你的web应用程序中的web.xml中配置一下,配置如下: <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class&

搭建基于spring MVC框架 + RESTful架构风格技术总结

实战篇: 在SpringMVC框架中搭建RESTful架构风格来完成客户端与服务器端的低耦合度.可扩展性.高并发与大数据流量的访问. 用RESTful架构的创建步骤: 1.创建一个全新的Web工程 2.导包,导入所需要的所有第三方jar包.(springMVC+Hibernate的基本包是必须的) 3.作配置,针对不同的项目需求和不同的搭建设计,开发人员可以按照自己的编码风格来设计符合项目开发具体 应该用多少篇配置文件.但是这几篇配置文件是必不可少的: 3-1.web.xml配置文件:最基本的配

Spring MVC简介

Spring MVC框架是有一个MVC框架,通过实现Model-View-Controller模式来很好地将数据.业务与展现进行分离.从这样一个角度来说,Spring MVC和Struts.Struts2非常类似.Spring MVC的设计是围绕DispatcherServlet展开的,DispatcherServlet负责将请求派发到特定的handler.通过可配置的handler mappings.view resolution.locale以及theme resolution来处理请求并且

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

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