Spring MVC框架原理与开发

一、学习指南

1.基础知识:

1)什么是springMVC;
2)springMVC框架原理(掌握);
3)springMVC入门程序;

  • a.非注解的处理器映射器,非注解的处理器适配器;
  • b.注解的处理器映射器,注解的处理器适配器;
  • 目的:学习前段控制器,处理器映射器,处理器适配器,视图解析器;

4)springMVC与Mybatis整合(掌握);
5)springMVC注解开发:

  • 常用的注解学习;
  • 参数绑定(简单类型,pojo,集合类型);
  • 自定义参数绑定(掌握)(CTO常设计);

6)springMVC与struts2的区别;

2.高级应用:

1)参数绑定(集合类型);
2)数据回显;
3)上传图片;
4)json数据交互;
5)RESTful支持;
6)拦截器;

二、springMVC框架:

1.什么是springMVC:

springMVC是spring框架的一个模块,springMVC和spring无需中间整合层进行整合;
springMVC是一个基于MVC的web框架;

2.什么是MVC:

MVC是一个设计模式,为了更好把系统框架框架维护扩展;
MVC在b/s系统的应用:


MVC原理图

3.springMVC框架:

springMVC框架原理图

三、程序开发:

1.配置前端控制器:(web.xml)

<!--配置springMVC的dispatcherServlet-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--contextConfigLocation配置springMVC加载的配置文件,
        如果不配置contextConfigLocation,默认加载的是/WEB-INF/servletname-servlet.xml(springmvc-servlet.xml)-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springMVC-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <!--配置参数:
    1)*.action,访问以.action结尾由DispatcherServlet进行解析;
    2)/,所有访问的地址都由DispatcherServlet进行解析,对于静态文件的解析需要配置不让DispatcherServlet解析,使用此种方式可以实现RESTful风格的url;
    3)/*,此种配置错误;-->

2.配置注解的处理器适配器与处理器映射器:(springmvc.xml)

  • 不常用:
    <!--注解映射器 -->
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
    <!--注解适配器 -->
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
  • 实际开发时使用
    <!-- 使用 mvc:annotation-driven代替上边注解映射器和注解适配器配置
    mvc:annotation-driven默认加载很多的参数绑定方法,
    比如json转换解析器就默认加载了,如果使用mvc:annotation-driven不用配置上边的RequestMappingHandlerMapping和RequestMappingHandlerAdapter-->
 <mvc:annotation-driven></mvc:annotation-driven> 

3.开发Handler:

实现Controller接口;
在controller中需要在类前添加注解@Controller (标识让容器管理创建对象)和在要处理url请求的方法前添加@Requestmapping("/requestURL");

4.视图编写

jsp文件,html文件等前端界面;

5.配置Handler:(springmvc.xml)

对于注解的Handler可以进行单个配置,实际开发中建议使用组件扫描。
1)单个配置:

    <bean class="com.honey.ssm.controller.TestController"/>

2)组件扫描:(可以扫描controller,service等)

    <context:component-scan base-package="com.honey.ssm.controller"></context:component-scan>

6.配置视图解析器:(springmvc.xml)

  • jsp解析器:
<!-- 视图解析器这里配置前缀为jsp,vm所在的路径,后缀配置为jsp,vm,
所以在Controller中返回的时候只需要进行返回文件的名称就可以了,视图解析器会找到该名称的文件进行渲染 -->
    <bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- 配置jsp路径的前缀 -->
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <!-- 配置jsp路径的后缀 -->
        <property name="suffix" value=".jsp"/>
    </bean>
  • html解析器:
<!-- html视图解析器 必须先配置freemarkerConfig,注意html是没有prefix前缀属性的-->
    <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">  
        <property name="templateLoaderPath">  
            <value>/WEB-INF/view/html</value>  
        </property>  
    </bean>  
     <bean id="htmlviewResolver"  
        class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">  
        <property name="suffix" value=".html" /> 
        <property name="contentType" value="text/html;charset=UTF-8"></property>         
    </bean>

详见:https://blog.csdn.net/superdog007/article/details/56488550

推荐阅读更多精彩内容