SpringMVC

简介

    Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),Struts 2(一般老项目使用)等。

简单使用

注意:以下步骤及编写的内容不全,只为说明框架相关的步骤,内容作为参考,请勿直接CV,实际内容以自己项目中为准(例如XML的版本、Spring的版本等)

1.导入相关依赖



        4.3.20.RELEASE


 
    
        
        org.springframework
        spring-webmvc
        
        ${spring.version}
    

2.配置web.xml,目的是为了让Tomcat实例化SpringMVC的入口






   
      encodingFilter
      org.springframework.web.filter.CharacterEncodingFilter
      
         encoding
         utf-8
      
      
         forceEncoding
         true
      
    
    
       encodingFilter
       *.do
    

 
    
        springMVC
        org.springframework.web.servlet.DispatcherServlet
        
            
            contextConfigLocation
            
            classpath:springMVC.xml
        
        
        1
    
    
    
        springMVC
        
        /
    


3.配置springMVC.xml,在SpringMVC的入口servlet加载后会通过这个配置文件内的内容进行相应配置




    
    

    
    
        
        
        
        
    

    
    

4.编写首页测试类

@Controller//标识这是一个控制器,实例对象将由Spring管理
public class IndexController {
 
    @RequestMapping("/hello")//将"/hello"这个uri映射到hello这个方法
    public String hello() {
        return "index";//最终将相应index.jsp的内容
    }
}

流程

名词解释

SpringMVC是基于组件的,以下每一个器其实就是一个组件

配置了 后,会自动加载处理器映射器HandlerMapping和处理器适配器HandlerAdapter

(1) 前端控制器DispatcherServlet
  作用:核心流程控制,接收请求,响应结果,相当于转发器,中央处理器。有了DispatcherServlet减少了其它组件之间的耦合度。
(2) 处理器映射器HandlerMapping
  作用:根据请求的url查找Handler,即根据url找到具体需要执行的那个方法。

       默认:org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping
(3) 处理器适配器HandlerAdapter
  作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler。

       默认:org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter
(4) 处理器Handler(需要程序员开发)
  注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler
(5) 视图解析器ViewResolver。
  作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)

       默认:org.springframework.web.servlet.view.InternalResourceViewResolver
(6) 视图View(需要程序员开发jsp)。
  注意:View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf…)

执行流程

1.Tomcat启动时加载、实例org.springframework.web.servlet.DispatcherServlet类,并指定其中contextConfigLocation字段,使其可以找到SpringMVC相关配置的配置文件

2.DispatcherServlet对象读取springMVC.xml,并进行配置文件中指定的配置,例如将视图解析器交给Spring管理

3.用户发送请求,DispatcherServlet对象先接收到请求

4.DispatcherServlet对象请求HandlerMapping做handler映射查找handler(可以根据xml配置、注解进行查找)

5.HandlerMapping会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器(页面控制器)对象,以及多个HandlerInterceptor拦截器对象),通过这种策略模式,很容易添加新的映射策略

6.DispatcherServlet对象请求处理器适配器HandlerAdapter执行handler

7.处理器适配器HandlerAdapter将会根据适配的结果去执行Handler

8.HandlerAdapter调用handler处理器(平常叫做controller)执行controller方法

9.handler处理器返回给HandlerAdapter一个ModelAndView对象(ModelAndView是springmvc框架的一个底层对象,包括 Model和view)

10.HandlerAdapter将ModelAndView对象返回给DispatcherServlet对象

11.DispatcherServlet对象请求ViewResolver(视图解析器)去进行视图解析 (根据逻辑视图名解析成真正的视图(jsp)),通过这种策略很容易更换其他视图技术,只需要更改视图解析器即可

12.ViewResolver向DispatcherServlet返回View

13.DispatcherServlet进行视图渲染 (视图渲染将模型数据(在ModelAndView对象中)填充到request域)

14.DispatcherServlet响应结果

参考资料:https://www.cnblogs.com/myitnews/p/11565941.html

你可能感兴趣的:(web框架)