SSM应用(四)--SpringMVC入门

SpringMVC的概念

  是一个web层框架,本质是一个巨大的servlet;

  所有的请求都会发送到SpringMVC这个servlet:@WebServlet(“/”);

  所有的相应都是有SpringMVC发出;

  SpringMVC将请求分发到对应的Java类;

  SpringMVC容器:管理很多个Java类的实例,分发请求的对象;

  Web:用于处理跳转和数据传递的问题;

  SpringMVC如何使用

    首先需要引入SpringMVC需要的Jar包,下载地址:http://repo.spring.io/release/org/springframework/spring/

    配置SpringMVC这个Servlet,在web.xml中配置为servlet;

     

      SpringMVC是一个Servlet,用于接收 *.action的请求;

     配置SpringMVC的核心配置文件;

      SpringMVC的核心配置文件本质上是一个Spring的配置文件;需要找到bean的实例;

      告诉DispatcherServlet要使用的核心配置文件在哪儿;

    

    核心配置文件需要配置什么内容:

      请求线:

        SpringMVC本身就是一个Spring的概念:管理bean和bean之间的关系;

        SpringMVC这个servlet需要找到普通Java类(bean)

      响应线:

        视图对应:SpringMVC给的是逻辑视图——需要转换为物理视图

        返回的响应有很多种,通过逻辑视图的方式去寻找物理视图(类似键值对的方式)

        视图解析器:

  实现SpringMVC管理的控制层的类:Controller;

    是SpringMVC分发请求的普通Java类

     

    通过包扫描,HelloController类就会成为SpringMVC能够直接使用的bean实例

       

    通过视图解析,返回值result就会被解析为:/result.jsp;

    @RequestMapping:是映射URL的关键;

SpringMVC的配置详解

  @RequestMapping的配置

  1、窄化请求

    该类下所有的方法的请求路径都会携带上层路径信息

    

  2、限制http请求方法

    设定只能接收post或者get请求,若不是则会报错;

    

  controller方法的返回

  1、返回String

    直接返回逻辑视图名,通过视图解析器解析,定位到屋里视图;

    重定向和请求转发:

    重定向:返回”redirect:+路径”;

    

    请求转发:返回”forward:+路径”

    

    实例

    

    在重定向中:request是第二个请求,得不到值;请求转发的时候,request是同一个请求,可以得到值;

  2、返回void

     返回void的时候,直接使用原生的request和response对象来进行相应的返回

    

  3、返回ModelAndView

    Model:参数模型

    View:视图

    ModelAndView可以同时完成参数的传递和页面的跳转,取代了取代了request.setAttribute(),session.setAttribute....

    

  4、Model/ModelMap/Map/View

    Model:一个模型对象,主要包含spring封装好的model和modelMap,以及java.util.Map,当没有视图返回的时候视图名称将由requestToViewNameTranslator决定;

    ModelMap:ModelMap 返回值为modelMap时,响应的URL和请求的URL一致。只是存储在MpdelMap中的数据可以在jsp页面中取出。

     

    Map:与ModelMap类似。在jsp页面中可直通过${key1}获得到值, map.put()相当于request.setAttribute方法。响应的URL和请求的URL一致

     

    View:可以返回pdf、excel等

    注:

    使用 String 作为请求处理方法的返回值类型是比较通用的方法,这样返回的逻辑视图名不会和请求 URL 绑定,具有很大的灵活性,而模型数据又可以通过 ModelMap 控制。

    使用void,map,Model 时,返回对应的逻辑视图名称真实url为:prefix前缀+视图名称 +suffix后缀组成。

    使用String,ModelAndView返回视图名称可以不受请求的url绑定,ModelAndView可以设置返回的视图名称。

PS:因作者能力有限,如有误还请谅解;

原文地址:https://www.cnblogs.com/WHL5/p/8976050.html