天天看点

Spring MVC框架——第二章1:MVC介绍2:Spring MVC框架介绍

文章目录

  • 1:MVC介绍
  • 2:Spring MVC框架介绍

在各种开发框架出现之前,是Web开发的洪荒时期,在Servlet标准与Servlet容器出现后,开拓了Java Web开发的领域,但是原始的Servlet容器还是比较低级的,要开发大型应用,会导致Servlet组件的逻辑异常复杂,甚至充斥着各种判断与硬编码, 而Spring MVC框架则完美地解决了此问题,通过注解标记机制,形成了应用层无需判断,只需关注处理逻辑即可开发的方式

Spring Web相关的模块都是支持Web项项目开发的模块,其中具有名的就是Spring MVC框架,基于Spring MVC框架开发Web应用将会非常方便,下面就简单介绍一下Spring MVC框架

1:MVC介绍

随着Web应用开发的发展, 项目也会越来越臃肿, 用原来随心所欲的方式编写Web应用已经力不从心了,项目越大,维护成本也会越高。此时就出现了MVC设计模式,MVC全名是Model-View-Controller,即模型视图-控制器。其基本核心思想是分离视图页面、模型数据和业务逻辑,通过分层结构达到各层之间解耦的目的。通过各层的解耦,可以实现每一层单独替换的目的,同一套数据可以通过不同的视图层展示,达到逻辑复用的目的。

在Web开发趋近于MVC模式之时,Spring 也随之推出了Spring MVC框架,并与Spring框架无缝整合,为Java Web开发提供了强有力的框架。

2:Spring MVC框架介绍

Spring MVC的核心处理器是标记为Controller的Java Bean,在Spring MVC中,为Web开发提供了众多方便的功能,下面简单举例。

  1. 注解方式声明控制器与控制器方法

Spring MVC提供@Controller声明Java Bean,并标记为MVC中的Cortoller. 通过@RequesMapping注解标记控制器的方法为处理器方法,为Web请求自动查找相应的@RequestMapping标记的方法并调用。

例子演示

1@Controller
public class MyController {
3    @RequestMapping(value = "/some.do")
    public ModelAndView dosome(){ 
    //...
    }
 }
           

第1行表示创建控制器对象,对象放在springmvc容器中 。

第3行表示可以接受/some.do的请求,并在处理器中执行,返回视图模型。

  1. 参数自动绑定

自动把Web请求中的参数解析并绑定到注解标记的处理器方法参数上,在控制器方法中可以直接获取到Web请求中提交的参数。支持多种参数绑定,如请求参数、 请求体JSON等。

例子演示

@Controller
public class MyController {
3 @RequestMapping(value = "/receiverparam.do",method = RequestMethod.POST)
4    public ModelAndView firstdo(String name,String age){ 
 }
           

第3行表示,可以接受/receiverparam.do的请求,并且通过post方式提交(可以是前端的form表单提交)。第4行表示,接受该请求中可以携带name,age参数到处理器中(前端表单里的信息可以被提交)

  1. 返回值自动处理

支持多种返回值,支持返回Sring类型的View视图名、View 视图、MolelAndViev 模型视图、Java 实体返回为JSON等多种返回类型。

例子演示

@Controller
public class MyController {
    @RequestMapping(value = "/returnobjectjson.do")
4    @ResponseBody
    public Student receive(String name,String age){ //doGet
        Student student = new Student();
        student.setAge("12");
        student.setName("zl");
9        return student;
    }
           

第4行表示,将转换后的JSON数据放入到响应体中。第9行表示Java 实体返回为JSON

  1. 支持Model自动处理

Model可以作为参数自动绑定到控制方法中,在控制器逻辑中可以对Model进行操作,例如添加”些数据以供View使用。当然也可以用返回ModelAndView的形式支持Model模型。

例子演示

@Controller
public class MyController {
    @RequestMapping(value = "/other.do")
    public ModelAndView doother(){ //doGet
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("msg","====欢迎使用springmvc做web开发===");
        modelAndView.addObject("fun","doother");
        modelAndView.setViewName("other");
9        return modelAndView;
    }
 }
           

第9行表示返回ModelAndView的形式

  1. 支持多种View类型

包括JSP、FreeMarker、 Thymeleaf 等多种模板引擎。

  1. 异常统一处理

支持对控制器层发生的错误进行统一的处理, 包括根据不同的异常返回不同的视图等功能。

Spring MVC框架——第二章1:MVC介绍2:Spring MVC框架介绍
  1. 其他有用的功能

包括拦截器、国际化等常见功能。

演示

Spring MVC框架——第二章1:MVC介绍2:Spring MVC框架介绍