springMVC的流程

Posted yufengwang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springMVC的流程相关的知识,希望对你有一定的参考价值。

1. 写一个简单的springmvcdemo.

 

1.1 引入springmvc相关的jar包。

 

技术图片

 

1.2 配置DispatcherServlet web.xml

技术图片

 

 

 

1.2 配置springmvc的配置文件。

 

 技术图片

 

 1.3 Controller

技术图片

 

 

 

Springmvc的流程.

  1. 客户发出请求。http://localhost:8080/springmvc-01/my.do
  2. 到达web.xml文件中 DispatcherServlet.查看是否符合url的要求
  3. DispatcherServlet就会查询springmvc的配置文件。找HandlerMapping.

技术图片

 

根据bean的名称查找相应的controller.

 技术图片

 

     找到我的MyController类。执行该类中handleRequestInternal方法。

 技术图片

 

     根据返回的modelAndView在找springmvc配置文件中视图解析器。

 技术图片

 

 

viewNameprefix以及suffix做了一个拼接。把拼接的页面展示给客户。

 

 

2. 常见的HandlerMapping

2.1 BeanNameUrlHandlerMapping 根据bean标签的名称找到对应的Controller

 

    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="/a.do">my1</prop>
                <prop key="/b.do">my2</prop>
            </props>
        </property>
    </bean>
    <bean id="my1" class="com.zhiyou100.wyf.controller.MyController1"></bean>
    <bean id="my2" class="com.zhiyou100.wyf.controller.MyController2"></bean>

 

 

 

2.2 SimpleUrlHandlerMapping 根据beanid查找对应的Controller类。

 技术图片

 

 

 

2.3 ControllerClassNameHandlerMapping 根据controller类的名字找到对应的Controller

 

 <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>
    <bean class="com.zhiyou100.wyf.controller.MyController3"></bean>

 

 

 

2.4 使用注解来替代配置信息。

  1. 额外aopjar
  2. springmvc配置文件中加入如下代码。

 技术图片

 

 创建Controller类。

 技术图片

 

 

 

通过springmvc来完成接受参数。

1.1 

 技术图片

 

 

接受参数时出现乱码。使用过滤器。(自定义的过滤器 也可以使用springmvc提供的过滤器)

 

 <filter>
           <filter-name>encodingFilter</filter-name>
           <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
           <init-param>
               <param-name>encoding</param-name>
               <param-value>utf-8</param-value>
           </init-param>
   </filter>
   <filter-mapping>
           <filter-name>encodingFilter</filter-name>
           <url-pattern>/*</url-pattern>
   </filter-mapping>

 

以上是关于springMVC的流程的主要内容,如果未能解决你的问题,请参考以下文章

springmvc工作流程是?

不得不看的SpringMVC篇!!!(概述+SpringMVC运行流程+SpringMVC搭建)

springmvc怎么在启动时自己执行一个线程

springmvc工作流程面试题有哪些?springmvc工作流程面试题分享

SpringMVC:SpringMVC执行流程

Spring mvc执行流程图-1