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中配置的监听器
这个 contextLoaderListener 监听器 实现了j2ee中的 ServletContextListener 接口,然后实现 ServletContextListener 的 contextInitalized() 方法 这个方法会在web容器启动的时候 就启动 WebApplicationContext 这个容器,但是 WebApplicationContext 是一个接口 所以 它实际上启动的是一个 XmlWebApplicationContext 这个XmlWebApplication 容器建立以后 就会被当做 容器的 servletContext的一个属性 来被引用管理 而我们程序中 也可以使用 WebApplicationContextUtils对象来获取到这个 容器
配置完了这个上下文容器后 还需要配置一个 Servlet 这个Servlet 负责拦截所有的请求
它在 web.xml 中的配置如下:
这个 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 中的
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 中的