SpringMVC(一)

SpringMVC

       SpringMVC简介:      

SpringMVC是Spring提供的一个实现了webMVC设计模式的轻量级web框架。它与Struts2框架一样,都属于MVC框架,但其使用和性能方面比Struts2更优异。

       SpringMVC特点:

  1. 是Spring框架的一部分,可以方便地利用Spring所提供的其他功能
  2. 灵活性强,易于其他框架集成
  3. 提供了一个前端控制器DispatcherServlet,使开发人员无须开发额外的控制器对象
  4. 可自动绑定用户输入,并能正确的转换数据类型
  5. 内置了常见的校验器,可以校验用户输入。如果不能通过,那么就会重定向到输入表单
  6. 支持国际化   可以根据用户区域显示多国语言
  7. 支持多种视图技术  比如:jsp,FreeMarker
  8. 使用基于XML配置文件,在编辑后,不需要重新编译应用程序。

实例代码演示:

      

SpringMVC(一)

       编写前端控制器:

      

SpringMVC(一)

       编写springmvc的配置文件:

       <!--

      

              首先定义了一个名称为"/firstcontroller"的Bean,该Bean会将控制器类FirstController映射到"/firstcontroller"请求中,

              然后配置了处理器映射器BeanNameUrlHandlerMapping和处理器适配器SimpleControllerHandlerAdapter,其中处理器映射器用

              于将处理器Bena中的name(url)进行处理器查找,而处理器适配器用于完成对FirstController处理器中的handlerRequest()方法的调

              用,最后配置了视图解析器InternalResourceViewResolver来解析结果是,并将结果呈现给用户

             

              注意:在Spring 4.0以后,就不需要配置处理器映射器BeanNameUrlHandlerMapping和处理器适配器SimpleControllerHandlerAdapter

             

        -->

 

       <!-- 配置处理器Handler映射"/firstcontroller"请求 -->

       <bean name="/firstcontroller" class="com.bdqn.cn.controller.FirstController" />

 

       <!-- 处理器映射器,将处理器Hanlder的name作为url查找 -->

       <!-- <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" /> -->

 

       <!-- 配置处理器适配器,配置对处理器中handlerRequest的调用 -->

       <!-- <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter " /> -->

      

       <!-- 视图解析器 -->

       <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" />

 

       编写控制器类:

      

             SpringMVC(一)

              Jsp:

             SpringMVC(一)

 

              SpringMVC的工作流程:

             SpringMVC(一)SpringMVC(一)转存失败重新上传取消

              解释图中编号含义:

  1. 用户通过客户端向服务器发送请求,请求会被SpringMVC的的前端控制器DispatcherServlet所拦截
  2. DispatcherServlet拦截到请求后,会调用HandlerMapping处理器映射器。
  3. 处理器映射器根据请求URL找到具体的处理器,生成处理器对象及处理器拦截器一并返回给DispatcherServlet
  4. DispatcherServlet会通过返回信息选择合适的HandlerAdapter(处理器适配器)
  5. HandlerAdapter会调用并执行Handler(处理器),这里的处理器指的就是程序中编写的Controller类,也被称之为后端控制器
  6. Controller执行完毕后,会返回一个ModelAndView对象,该对象中会包含视图名或包含模型和视图名
  7. HandlerAdapter将ModelAndView对象返回给DispatcherServlet
  8. DispatcherServlet会根据ModelAndView对象选择一个合适的ViewReslover(视图解析器)。
  9. ViewReslover解析后,会向DispatcherServlet中返回具体的View(视图)
  10. DispatcherServlet对View进行渲染(即将模型数据填充至视图中)
  11. 视图渲染结果会返回给客户端浏览器显示。

关于web.xml配置文件的详解:

SpringMVC(一)

SpringMVC(一)转存失败重新上传取消

              在上述代

码中,<load-on-startup>元素和<init-param>元素都是可选的,如果<load-on-startup>元素的值为1,则在应用程序启动时会立即加载该Servlet;如果<load-on-startup>元素不存在,则应用程序会在第一个Servlet请求时加载该Servlet。如果<init-param>元素存在并且通过其子元素配置了SpringMVC配置文件的路径,则应用程序在启动时会加载配置路径下的配置文件;如果没有<init-param>元素配置,则应用程序会默认到WEB-INF目录下寻找如下命名方式的配置文件:servletName-servlet.xml

       这个servletName指的是部署在web.xml中的DispatcherServlet的名称,在上面web.xml中的配置代码即为Springmvc,- servlet.xml是配置文件的固定写法,所以当前程序中应用程序会在WEB-INF下寻找springmvc-servlet.xml