spring mvc的运用

spring mvc的使用
spring mvc 是一个对web的UI层的封装实现,它可以说是struts2的一个竞争对手,如果spring在搞一个ORM框架 那spring就把hibernate的活也给干了,但是不知道为什么它到现在都还没有做这个活

spring mvc 并不是和任何一个web容器绑定在一起的,所以web容器启动的时候 spring并不会被启动起来,spring需要一个启动器来让自己启动起来,然后载入自己的IOC容器,当IOC容器启动了以后 那就好办事了,下面事情就都让这个IOC容器来开始实现了,而这个启动spring 容器的类就是一个我们在web.xml中配置的监听器

   <listener>
       <listener-class>
           org.springframework.web.context.ContextLoaderListener
       </listener-class>
   </listener>


这个 contextLoaderListener 监听器 实现了j2ee中的 ServletContextListener 接口,然后实现 ServletContextListener 的 contextInitalized() 方法 这个方法会在web容器启动的时候 就启动 WebApplicationContext 这个容器,但是 WebApplicationContext 是一个接口 所以 它实际上启动的是一个 XmlWebApplicationContext 这个XmlWebApplication 容器建立以后 就会被当做 容器的 servletContext的一个属性 来被引用管理 而我们程序中 也可以使用 WebApplicationContextUtils对象来获取到这个 容器

配置完了这个上下文容器后 还需要配置一个 Servlet 这个Servlet 负责拦截所有的请求
它在 web.xml 中的配置如下:

   <servlet> 
    <servlet-name>freemarker</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>0</load-on-startup> 
  </servlet> 
  <servlet-mapping> 
     <servlet-name>freemarker</servlet-name> 
     <url-pattern>*.do</url-pattern> 
  </servlet-mapping> 


这个 DispatcherServlet 类主要是做什么的呢?
进入 DispatcherServlet 我们会发现 他是继承了 FrameWorkServlet 类 而 FrameWorkServlet 类又继承自 HttpServletBean 类 而 HttpServletBean 又继承了 HttpSevlet 所以可以这么说 这个类 就是一个我们J2EE中的 Servlet 打开 HttpBeanServletBean  你 会发现 这个类实现的 init()方法 还有 destory()方法等 这些方法正是 Httpservlet类中的方法 我们就是重写了它而已,init()方法中主要做了什么呢

主要是获取web.xml中的对servlet 的配置属性 然后会重新开启一个容器,这个上下文的容器也是一个XmlApplicationContext,并且开始初始化后面将要使用的各种 Resoler 和各种 Mapping 工具等

当上面的各部都完成了以后 就可以进行spring mvc的操作了

主要用的类有下面几个


一.HandleMapping 类 这个类主要是用来映射 Http请求到一个 controller 中的