zoukankan      html  css  js  c++  java
  • SpringMVC

    1、SpringMVC

       1)什么是Spring MVC

            Spring MVC是Spring框架中的一个功能模块,实现MVC结构,便于简单地、快速开发MVC结构的WEB应用,SpringMVC提供的API封装WEB开发中常用的功能,简化WEB开发过程。

       2)Spring MVC的核心组件

            * DispatcherServlet(控制器,请求入口)

            * HandlerMapping(控制器,请求派发)

            * Controller(控制器,请求处理)

            * ModelAndView(封装业务处理结果和跳转视图)

            * ViewResolver(视图显示处理器)

       3)Spring MVC的处理流程

    浏览器向服务器发送请求,请求交给前端控制器DispatcherServlet,前端控制器通过HandlerMapping找到相对应的Controller组件
    来处理请求执行Controller组件的约定方法,在约定方法中调用模型层组件来完成业务处理,约定方法返回一个ModelAndView对象,此
    对象封装处理结果和跳转的视图名称,前端控制器接收到ModelAndView对象之后,调用ViewResolver组件定位View(JSP),传递数据信息,
    生成响应页面

    2、基于XML配置的MVC应用

        1)搭建Spring MVC环境

            step1:创建WEB工程,导入Spring相关开发包(Spring ioc,web,webmvc)

            step2:在src下添加Spring XML配置文件,名称可以自定义,例如spring-mvc.xml

            在web.xml中配置DispatcherServlet前端控制器,配置DispatcherServlet时,同时指定XML配置文件路径

        2)Controller组件负责执行具体业务处理,编写时需要实现Controller接口及约定方法handleRequest

        3)handleRequest方法返回一个ModelAndView对象,此对象封装处理结果和跳转视图名称

        4)ModelAndView(String viewName)

             ModelAndView(String viewName,Model model)

             viewName是视图名称,model是处理的结果数据

        5)HandlerMapping组件,映射请求URL和请求处理器Controller组件对应关系

        6)SimpleUrlHandlerMapping维护一个个HTTP请求和Controller映射关系列表(Map),根据列表对应关系调用Controller

        7)ViewResovler组件,对ModelAndView对象封装的视图名称进行解析

        8)InternalResourceViewResolver,它支持对Servlet和JSP及子类JstlView支持

    3、基于注解配置的MVC应用

        1)Controller注解应用

            推荐使用@Controller注解声明Controller组件,可以使得控制器定义更加灵活,可以不用实现Controller接口,请求处理方法也可以灵活定义

            为了使@Controller注解生效,需要在Spring的XML配置文件中开启组件扫描定义

    <context:component-scan base-package=""/>

        2)RequestMapping注解应用

            @RequestMapping注解可以用在类定义前和方法定义上,表明此组件类的方法与哪一个请求对应

            为了使@RequestMapping注解生效,需要在Spring的XML配置文件中开启MVC注解扫描

    <mvc:annotation-driven/>

    4、接受请求参数

        Spring MVC请求提交数据到控制器有以下方式

        1)使用HttpServletRequest获取

           Spring自动将参数注入到HttpServletRequest

           优点直接,缺点需要自己处理数据类型的转换

        2)使用@RequestParam注解

            Spring会自动将参数注入到方法参数(名称一致)

            使用@RequestParam注解映射不一致的名称

            优点参数类型自动转换,但可能出现类型转换异常

        3)使用自动封装成Bean对象

            定义实例类,属性名必须与请求参数名相同

    5、向页面传值

        当Controller组件处理后,需要向JSP传值的方法

        1)直接使用HttpServletRequest或HttpSession

        2)使用ModelAndView对象

        3)使用ModelMap参数对象

             在Controller处理方法中追加一个ModelMap类型的参数

      注意:数据会利用HttpServletRequest的attribute传递到页面

    6、重定向

        Spring MVC默认采用转发方式定位视图,如果需要重定向,可以采用以下方式:

        1)使用RedirectView

        2)使用redirect:前缀

        如果Controller的请求处理方法返回的是ModelAndView对象,可以使用RedirectView方式重定向

      示例代码:

    public ModelAndView checkLogin(){
    RedirectView view=new RedirectView(重定向URL);
    retrun new ModelAndView(view);
    }

         如果Controller的请求处理方法返回的是String类型,可以使用"redirect:前缀"方式重定向

       示例代码:

    public String checkLogin(){
    return "redirect:重定向URL";
    }

     

  • 相关阅读:
    qt5--创建控件的两种方式
    qt5-编码转换
    C++qt助手assistant
    C++opencv绘制几何图形
    C++opencv创建图像
    【全球软件大会】华为前端工程师分享:华为云官网的智能化实践
    图解 Redis丨这就是 RDB 快照,能记录实际数据的
    云小课 | 玩转HiLens Studio之快速订购HiLens Studio版本
    带你认识4种设计模式:代理模式、装饰模式、外观模式和享元模式
    线性表、顺序表和链表,你还分不清?
  • 原文地址:https://www.cnblogs.com/xslzwm/p/9603524.html
Copyright © 2011-2022 走看看