返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >springmvc url处理映射的三种方式集合
  • 737
分享到

springmvc url处理映射的三种方式集合

springmvc映射url处理映射 2019-01-04 09:01:14 737人浏览
摘要

目录一、SpringMVC简介二、工作流程与介绍三、代码截图以下组件通常使用框架提供实现:1、DispatcherServlet:前端控制器2、HandlerMapping:处理器映射器3、Handler:处理器4、HandlAdapter:处理器适配器5、

目录
  • 一、springMVC简介
  • 二、工作流程与介绍
  • 三、代码截图
    • 以下组件通常使用框架提供实现:
      • 1、DispatcherServlet:前端控制器
      • 2、HandlerMapping:处理器映射器
      • 3、Handler:处理器
      • 4、HandlAdapter:处理器适配器
      • 5、 ViewResolver:视图解析器
      • 6、View:视图
  • 四、适配器作用

    一、springmvc简介

    SpringMVC是一种基于Spring实现了WEB MVC设计模式的请求驱动类型的轻量级Web框架,使用了MVC架构模式的思想,将web层进行职责解耦,并管理应用所需对象的生命周期,为简化日常开发,提供了很大便利。

    SpringMVC提供了总开关DispatcherServlet;请求处理映射器(Handler Mapping)和处理适配器(Handler Adapter),视图解析器(View Resolver)进行视图管理;动作处理器Controller接口(包含ModelAndView,以及处理请求响应对象request和response),配置灵活,支持文件上传,数据简单转化等强大功能。

    二、工作流程与介绍

    (1)客户端通过url发送请求

    (2-3)核心控制器Dispatcher Servlet接收到请求,通过系统或自定义的映射器配置找到对应的handler,并将url映射的控制器controller返回给核心控制器。

    (4)通过核心控制器找到系统或默认的适配器

    (5-7)由找到的适配器,调用实现对应接口的处理器,并将结果返回给适配器,结果中包含数据模型和视图对象,再由适配器返回给核心控制器

    (8-9)核心控制器将获取的数据和视图结合的对象传递给视图解析器,获取解析得到的结果,并由视图解析器响应给核心控制器

    (10)核心控制器将结果返回给客户端

    三、代码截图

    web.xml:

    
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="Http://java.sun.com/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
             version="3.0">
      <!-- 配置:所有请求由SpringMVC管理-->
      <servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>
    </web-app>

    DispatcherServlet-servlet.xml:

    url处理映射的三种方式:[通过访问路径找到对应的控制器]

    
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           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">
     <!-- DispatcherServlet拦截所有请求  ->  通过访问url路径找到对应的控制器 -> 通过适配器调用控制器的方法
          ->    控制器里面的方法处理业务  ->  通过视图解析器返回数据到页面 -> 形成视图                   -->
        <!-- 1.配置url处理映射
        url处理映射的三种方式:[通过访问路径找到对应的控制器]
        1.BeanNameUrlHandlerMapping:通过url名字找到对应的bean的name控制器
        2.SimpleUrlHandlerMapping:[简单的url处理映射]通过key找到bean的id的控制器
        3.ControllerClassNameHandlerMapping:[控制器的类名处理映射]-不用配置访问路径,
                默认的访问路径就是类名,首字母大写变小写,加.do ->userController.do
        -->
        <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
        <!--<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">-->
            <!--<property name="mappings">-->
                <!--<props>-->
                    <!--<prop key="/user1.do">userController</prop>-->
                    <!--<prop key="/user2.do">userController</prop>-->
                    <!--<prop key="/user3.do">userController</prop>-->
                <!--</props>-->
            <!--</property>-->
        <!--</bean>-->
        <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>
        <!-- 2.配置控制器处理适配器[配置如何调用控制器的方法]
            两种方式:(返回值不同)
                第一种:SimpleControllerHandlerAdapter
                    功能:执行controller,调用controller里面的方法,返回modelAndView
        -->
        <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
        <!-- 第二种:HttpRequestHandlerAdapter
                    功能:执行controller,调用controller里面的方法,返回null
        -->
        <bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"></bean>
        <!-- 3.配置控制器-->
        <!--<bean name="/user.do" class="com.lg.controller.UserController"></bean>-->
        <!--<bean id="userController" class="com.lg.controller.UserController"></bean>-->
        <bean class="com.lg.controller.UserController"></bean>
        <bean name="/http.do" class="com.lg.controller.HttpController"></bean>
        <!-- 4.配置资源解析器-->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/views"></property>
            <property name="suffix" value=".jsp"></property>
        </bean>
    </beans>

    UserController:

    
    package com.lg.controller;
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.mvc.Controller;
    import javax.servlet.http.httpservletRequest;
    import javax.servlet.http.HttpServletResponse;
    public class UserController implements Controller {
        @Override
        public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
            ModelAndView mav=new ModelAndView("/user/usrelist");
            mav.addObject("name","liu");
            return mav;
        }
    }

    以下组件通常使用框架提供实现:

    1、DispatcherServlet:前端控制器

    用户请求到达前端控制器,它就相当于mvc模式中的c,dispatcherServlet是整个流程控制的中心,由它调用其它组件处理用户的请求,dispatcherServlet的存在降低了组件之间的耦合性。

    2、HandlerMapping:处理器映射器

    HandlerMapping负责根据用户请求url找到Handler即处理器,springmvc提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。

    3、Handler:处理器

    Handler 是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler对具体的用户请求进行处理。

    由于Handler涉及到具体的用户业务请求,所以一般情况需要程序员根据业务需求开发Handler。

    4、HandlAdapter:处理器适配器

    通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。

    5、 ViewResolver:视图解析器

    View Resolver负责将处理结果生成View视图,View Resolver首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。

    6、View:视图

    springmvc框架提供了很多的View视图类型的支持,包括:jstlView、freemarkerView、pdfView等。我们最常用的视图就是jsp。

    一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。

    说明:在springmvc的各个组件中,处理器映射器、处理器适配器、视图解析器称为springmvc的三大组件。

    四、适配器作用

    SpringMVC涉及的映射器,视图解析器的作用不难理解,映射器负责将前端请求的url映射到配置的处理器,视图解析器将最终的结果进行解析,但中间为什么要经过一层适配器呢,为什么不经映射器找到controller后直接执行返回呢?

    那是因为SpringMVC为业务处理器提供了多种接口实现(例如实现了Controller接口),而适配器就是用来根据处理器实现了什么接口,最终选择与已经注册好的不同类型的Handler Adapter进行匹配,并最终执行,例如,SimpleControllerHandlerAdapter是支持实现了controller接口的控制器,如果自己写的控制器实现了controller接口,那么SimpleControllerHandlerAdapter就会去执行自己写的控制器中的具体方法来完成请求。

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程界。

    --结束END--

    本文标题: springmvc url处理映射的三种方式集合

    本文链接: https://www.lsjlt.com/news/63.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • springmvc常用注解
      推荐教程:Spring教程一、组件型注解:1、@Component 在类定义之前添加@Component注解,他会被spring容器识别,并转为bean。2、@Repository 对Dao实现类进行注解 (特殊的@Component)3、@Service 用 ...
      153
      2023-03-22
      java教程 java spring
    • springmvc经典教程(2)
      springmvc教程系列springmvc史上最好教程(2)springmvc史上最好教程(1)springmvc史上最好教程(3)springmvc史上最好教程(4)一、整合mybatis为了更好的学习 springmvc和mybati ...
      226
      2023-03-22
      springmvc sprin prin
    • SpringMVC + MyBatis整合【转】
      环境:spring3.1.1+mybatis3.2.8+mybatis-spring1.2.3网络上关于这个架构的搭建文章,实在是太多了,本文是对于本人初次搭建时的一些注意点的整理。主要是一些配置文件的内容和架构的目录。0. project ...
      597
      2023-03-22
      dubbo zookeeper batis
    • SpringMVC入门实例分析
      今天小编给大家分享一下SpringMVC入门实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Spring MVC属于S ...
      388
      2023-03-22
      springmvc
    • SpringMVC+Hibernate4
      开发环境1,项目用到的框架有:Spring3.2.14.RELEASE、Hibernate4.2.20.Final、Bootstrap32,开发工具eclipse、maven3,数据库Mysql5.6.24正文1.数据库表CREATE TA ...
      254
      2023-03-22
      SpringMVC
    • springmvc经典教程(3)
      springmvc史上最好教程(2)springmvc史上最好教程(1)1.1 需求使用springmvc+mybatis架构实现商品信息维护。  1.2 商品修改1.2.1 dao使用逆向工程自动生成的代码:ItemsMapper.Jav ...
      751
      2023-03-22
      教程 经典 springmvc
    • SpringMVC视图作用详解
      这篇文章主要介绍了springMVC中的视图与视图解析器,springMVC视图的种类很多,默认有转发视图和重定向视图,本文就每一种视图给大家详细介绍,需要的朋友可以参考下 ...
      807
      2023-03-22
      SpringMVC视图 SpringMVC视图渲染
    • SpringMVC @RequestMapping注解详解
      本文主要介绍了SpringMVC @RequestMapping注解详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 ...
      632
      2023-03-22
      SpringMVC @RequestMapping
    • springMVC详细介绍
      下面小编就为大家带来一篇基于Spring MVC 详细介绍。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ...
      515
      2023-03-22
      springMVC springMVC详细介绍
    • SpringMVC核心技术
      这篇文章主要介绍了SpringMVC入门实例,在springmvc入门教程里算是比较不错的,结构也比较完整,需要的朋友可以参考。希望可以帮助到你 ...
      930
      2023-03-22
      SpringMVC Spring核心技术
    • springMVC盗链接详解
      这篇文章主要为大家详细介绍了SpringMVC盗链接详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能给你带来帮助 ...
      679
      2023-03-22
      springMVC详解 盗链接详解
    • 如何理解SpringMVC
      Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发 ...
      635
      2023-03-22
      Spring MVC MVC 架构
    • SpringMVC使用Redis共享session
      在使用之前,请确认项目已经整合了Redis一、加入依赖org.springframework.sessionspring-session-data-redis二、加入注解在加了@SpringBootApplication注解的类加上以下注解@EnableRed ...
      621
      2023-03-22
      SpringMVC使用Redis共享session
    • springmvc常用5种注解
      推荐教程:Spring教程一、组件型注解:1、@Component 在类定义之前添加@Component注解,他会被spring容器识别,并转为bean。2、@Repository 对Dao实现类进行注解 (特殊的@Component)3、@Service 用 ...
      273
      2023-03-22
      java教程 java spring
    • SpringMVC工作流程
      SpringMVC工作流程一、SpringMVC简介SpringMVC是一种基于Spring实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,使用了MVC架构模式的思想,将web层进行职责解耦,并管理应用所需对象的生命周期,为简化日常开发,提供 ...
      962
      2023-03-22
      java教程 SpringMVC 工作流程
    • SpringMVC源码分析(3)Dis
      SpringMVC源码分析(1)标签解析>:介绍了解析过程中,初始化若干组件。SpringMVC源码分析(2)DispatcherServlet的初始化>:初始化DispatcherServlet的多个组件。本文继续分析Dispatch ...
      350
      2023-03-22
      源码 SpringMVC Dis
    • MyBatis3+SpringMVC3
      首先说明: 文章是转的。 源码地址:http://download.csdn.net/detail/yjflinchong/4206045 开发环境:System:WindowsWebBrowser:IE6+、Firef ...
      887
      2023-03-22
    • SpringMVC使用RESTful接口案例
      RESTful是一种web软件风格,它不是标准也不是协议,它不一定要采用,只是一种风格,它倡导的是一个资源定位(url)及资源操作的风格,这篇文章主要介绍了SpringBoot使用RESTful接口 ...
      170
      2023-03-22
      SpringMVC RESTful SpringMVC RESTful接口 Java RESTful
    • SpringMVC响应处理详细解读
      Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet,Spring MVC 角色划分清晰,分工明细,本章来讲解SpringMVC数据响应 ...
      931
      2023-03-22
      SpringMVC 响应 SpringMVC 响应处理 SpringMVC 响应跳转
    • 实例详解SpringMVC入门使用
      大家好,本篇文章主要讲的是实例详解SpringMVC入门使用,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览 ...
      613
      2023-03-22
      SpringMVC实例详解 SpringMVC入门实例
    热门问答
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作