SpringMVC

  SpringMVC是基于spring的一个框架,实际上就是spring的一个模块,专门做web开发的。理解是servlet的一个升级。web的开发底层是servlet,框架是在servlet基础上加入了一些功能,让你做web开发更加方便。

  SpringMVC就是一个Spring。Spring是容器,ioc能够管理对象,使用<bean>,@Component,@Repository,@Service创建业务对象,@Controller创建处理器对象。SpringMVC能够创建对象,放入到容器中(SpringMVC容器),SpringMVC容器中放的是控制器对象,我们要做的是使用@Controller创建控制器对象,把对象放入到SpringMVC容器中,把创建的对象作为控制器使用,这个控制器对象应该能接受用户的情求,显示处理结果,就当是一个servlet使用。使用@Controller注解创建的是一个普通类的对象,不是Servlet。SpringMVC赋予了控制器对象一些额外的功能。

  web开发底层是servlet,SpringMVC中有一个对象是servlet:DispatherServlet(中央调度器)。DispatherServlet:负责接受用户的请求,用户把请求给了DispatherServlet,之后DispatherServlet把请求转发给我们的Controller对象,最后是Controller对象处理请求。    

index.jsp--------DispatherServlet(Servlet)---------转发,分配给-----Controller对象(@Controller注解创建对象)

springmvc处理请求流程
    1、发起some.do
    2tomcat(web.xml---url-pattern知道 *.do的请求给DispatcherServlet)
    3DispatcherServlet(根据springmvc.xml配置知道some.do---doSome()
    4DispatcherServletsome.do转发给MvController.doSome()方法
    5、框架执行doSome()把得到ModelAndView进行处理,转发到show.jsp

上面的过程简化方式:

Some.do----DispatcherServlet----MyController

Springmvc执行过程源代码分析:

1、Tomcat启动,创建容器的过程。通过load-on-start标签指定的1,创建DisapatcherServlet对象,DisapatcherServle它的父类是继承HttpServletd的,它是一个servlet,在被创建时,会执行init()方法。在init()方法中,

//创建容器,读取配置文件

WebApplicationContext ctx = new ClassPathXmlApplicationContext(“springmvc.xml”);

//把容器对象放入到ServletContext

getServletContext().setAttribute(key, ctx);

上面创建容器的作用:创建@Controller解析所在的类的对象,创建MyController对象。

这个对象放入到springmvc容器中,容器是map,类似map.put(“myController”,MyController对象)

2、请求处理过程

使用servlet方法

3、

springmvc处理请求流程
    1、发起some.do
    2tomcat(web.xml---url-pattern知道 *.do的请求给DispatcherServlet)
    3DispatcherServlet(根据springmvc.xml配置知道some.do---doSome()
    4DispatcherServletsome.do转发给MvController.doSome()方法
    5、框架执行doSome()把得到ModelAndView进行处理,转发到show.jsp

上面的过程简化方式:

Some.do----DispatcherServlet----MyController

Springmvc执行过程源代码分析:

1、Tomcat启动,创建容器的过程。通过load-on-start标签指定的1,创建DisapatcherServlet对象,DisapatcherServle它的父类是继承HttpServletd的,它是一个servlet,在被创建时,会执行init()方法。在init()方法中,

//创建容器,读取配置文件

WebApplicationContext ctx = new ClassPathXmlApplicationContext(“springmvc.xml”);

//把容器对象放入到ServletContext

getServletContext().setAttribute(key, ctx);

上面创建容器的作用:创建@Controller解析所在的类的对象,创建MyController对象。

这个对象放入到springmvc容器中,容器是map,类似map.put(“myController”,MyController对象)

2、请求处理过程

使用servlet方法

转载请注明出处:https://www.cnblogs.com/stu-jyj3621
原文地址:https://www.cnblogs.com/stu-jyj3621/p/14545110.html