一、SpringMVC介绍

1.MVC介绍

模型-视图-操控器(MVC 是一个众所周知的以规划界面使用程序为根底的规划方法。它首要经过别离模型、视图及操控器在使用程序中的人物将事务逻辑从界面中解耦。一般,模型担任封装使用程序数据在视图层展现。视图仅仅只是展现这些数据,不包含任何事务逻辑。操控器担任接纳来自用户的恳求,并调用后台服务(manager或许dao)来处理事务逻辑。处理后,后台事务层可能会回来了一些数据在视图层展现。操控器搜集这些数据及预备模型在视图层展现。MVC方法的中心思维是将事务逻辑从界面中别离出来,答应它们独自改动而不会相互影响。

springmvc介绍

概念

1.Spring Web MVC是一种依据Java的完成了Web MVC规划方法的恳求驱动类型的轻量级Web结构

2.运用了MVC架构方法的思维,将web层进行责任解耦

3.依据恳求驱动指的便是运用恳求-呼应模型

4.结构的意图便是协助咱们简化开发,

Spring Web MVC也是要简化咱们日常Web开发的。

长处

1.性能比struts2好

2.简略、快捷,易学

3.和spring无缝联接【IOC,AOP】

4.运用约好优于装备

5.支撑Restful

6.反常处理,国际化,数据验证,类型转化等

7.运用的人多,运用的公司多

二、第一个事例HelloWorld

1.创立web项目

一般web项目

2.导入相关jar包

3.创立装备文件

在src目录下创立一个 spring-mvc.xml文件,称号能够自定义。内容便是spring的schema内容



xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">


4.设置处理器和映射器

在spring-mvc.xml中增加

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">







5.装备前端操控器



test

index.html
index.htm
index.jsp
default.html
default.htm
default.jsp





springmvc
org.springframework.web.servlet.DispatcherServlet

contextConfigLocation
classpath:spring-mvc.xml




springmvc
/


6.创立自定义的Controller

/**
* 自定义操控器
* 有必要完成Controller接口
* @author dpb【波波烤鸭】
*
*/
public class UserController implements Controller{
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
System.out.println("本办法被调用了...");
ModelAndView view = new ModelAndView();
view.setViewName("/index.jsp");
return view;
}
}

7.测验作用

三、注解办法的运用

经过上一个一般完成的办法咱们会发现其完成过程比较繁琐,并且自定义controller也只要一个默许被调用的办法。不是很便利,这时咱们能够运用SpringMVC依据注解的运用办法来完成,过程如下:

1.修正装备文件敞开注解办法


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">






2.controller中经过注解完成

/**
* 自定义controller
* @author dpb【波波烤鸭】
*
*/
@Controller // 交给Spring容器办理
@RequestMapping("/user") // 设置恳求的途径
public class UserController {

/**
* 查询办法
* 恳求地址是:
* http://localhost:8080/SpringMVC-03-hellowordAnnation/user/query
* @return
*/
@RequestMapping("/query")
public ModelAndView query(){
System.out.println("程序员: query");
ModelAndView mv = new ModelAndView();
mv.setViewName("/index.jsp");
return mv;
}

/**
* 增加办法
* 恳求地址是:
* http://localhost:8080/SpringMVC-03-hellowordAnnation/user/add
* @return
*/
@RequestMapping("/add")
public ModelAndView add(){
System.out.println("程序员: add");
ModelAndView mv = new ModelAndView();
mv.setViewName("/index.jsp");
return mv;
}
}

3.测验

四、SpringMVC作业原理的介绍

1.原理图

2.流程文字阐明

1.用户向服务器发送恳求,恳求被Spring 前端操控Servelt DispatcherServlet捕获;

2.DispatcherServlet对恳求URL进行解析,得到恳求资源标识符(URI)。然后依据该URI,调用HandlerMapping取得该Handler装备的一切相关的目标(包含Handler目标以及Handler目标对应的拦截器),最终以HandlerExecutionChain目标的方法回来;

3.DispatcherServlet 依据取得的Handler,挑选一个适宜的HandlerAdapter。(附注:假如成功取得HandlerAdapter后,此刻将开端履行拦截器的preHandler(…)办法)

4.提取Request中的模型数据,填充Handler入参,开端履行Handler(Controller)。 在填充Handler的入参过程中,依据你的装备,Spring将帮你做一些额定的作业:

HttpMessageConveter: 将恳求音讯(如Json、xml等数据)转化成一个目标,将目标转化为指定的呼应信息

数据转化:对恳求音讯进行数据转化。如String转化成Integer、Double等

数据根式化:对恳求音讯进行数据格局化。 如将字符串转化成格局化数字或格局化日期等

数据验证: 验证数据的有效性(长度、格局等),验证成果存储到BindingResult或Error中

5.Handler履行完成后,向DispatcherServlet 回来一个ModelAndView目标;

6.依据回来的ModelAndView,挑选一个合适的ViewResolver(有必要是现已注册到Spring容器中的ViewResolver)回来给DispatcherServlet ;

7.ViewResolver 结合Model和View,来烘托视图

8.将烘托成果回来给客户端。

3.组件阐明

组件称号阐明

DispatcherServlet:

前端操控器用户恳求抵达前端操控器,它就相当于mvc方法中的c,DispatcherServlet是整个流程操控的中心,由它调用其它组件处理用户的恳求,DispatcherServlet的存在降低了组件之间的耦合性。

HandlerMapping:

处理器映射器HandlerMapping担任依据用户恳求找到Handler即处理器,springmvc供给了不同的映射器完成不同的映射办法,例如:装备文件办法,完成接口办法,注解办法等。

Handler:

处理器Handler 是继DispatcherServlet前端操控器的后端操控器,在DispatcherServlet的操控下Handler对详细的用户恳求进行处理。因为Handler涉及到详细的用户事务恳求,所以一般状况需求程序员依据事务需求开发Handler。

HandlAdapter:

处理器适配器经过HandlerAdapter对处理器进行履行,这是适配器方法的使用,经过扩展适配器能够对更多类型的处理器进行履行。

View Resolver:

视图解析器View Resolver担任将处理成果生成View视图,View Resolver首要依据逻辑视图名解析成物理视图名即详细的页面地址,再生成View视图目标,最终对View进行烘托将处理成果经过页面展现给用户。 springmvc结构供给了许多的View视图类型,包含:jstlView、freemarkerView、pdfView等。一般状况下需求经过页面标签或页面模版技能将模型数据经过页面展现给用户,需求由程序员依据事务需求开发详细的页面。

推荐阅读