Spring Web MVC学习笔记:原理简介与环境搭建

来源:互联网 发布:手机解锁软件 编辑:程序博客网 时间:2024/05/29 07:35

简介

引自官方文档并进行翻译:

Spring Web MVC是一个基于MVC(模型、试图、控制器)设计模式的Web框架。
Spring Web MVC的核心是用来将请求分派给控制器的DispatcherServlet,它使用配置的方式完成控制器映射,同时它也提供对视图解析、本地化、时区、主题解析和文件上传的支持。
Spring Web MVC的默认控制器是基于@Controller@RequestMapping注解的,通过这种方式,它可以提供广泛而且灵活的处理方法。随着Spring 3.0的引入,@Controller机制还允许您通过@PathVariable注解和其他功能创建RESTful Web站点和应用程序。

特性

Spring Web MVC相比于其它框架有很多特性

  1. 清晰的角色划分。每一个角色如 controller,validator,command object,form object,model object,DispatcherServlet,handler mapping,view resolver等等都可以用专门的对象完成
  2. 框架和作为JavaBeans的应用程序类都拥有强大而直观的配置功能。这包括跨上下文的引用,如从Web控制器到业务对象和验证器
  3. 适应性,非侵入性和灵活性。你可以定义任何所需的控制器方法签名,在给定场景下可能使用一些注解(@RequestParam,@RequestHeader,@PathVariable等)
  4. 可重用的业务代码。你可以将现有业务对象用作命令或表单对象,而不是拷贝它们以扩展特定的框架基类
  5. 可定制的绑定和验证。类型不匹配作为应用程序级别的错误会保留错误的值,使用本地化的日期和数字绑定等,而不是使用纯String表单对象再手动解析和转换成业务对象
  6. 可定制的处理器映射和视图解析。处理器映射和视图解析策略范围很广泛,从简单的基于URL的配置到复杂的专用解析策略都可以支持。Spring MVC比任何其它需要特定技术的MVC框架都要更加灵活。
  7. 灵活的模型传输。使用value/key映射的模型传输支持与任何视图技术的轻松集成。
  8. 可定制的本地化、时区和主题解析,支持使用或不使用Spring标签库的JSP页面、支持JSTL标签库、支持Velocity而不需要任何桥接
  9. 拥有Spring标签库这个简单但强大的标签库,它提供了对数据绑定和主题的支持,自定义的标签为代码提供了极高的灵活性
  10. 提供了一个JSP表单标签库,使得表单编写更加简单
  11. Bean的生命周期限定为当前HTTP请求或HTTP会话

框架原理

在Spring MVC框架中请求的处理流程

Spring Web MVC框架环境搭建

创建项目

为了提前熟练maven的使用,本次环境搭建创建的是一个maven-webapp项目
新建maven-webapp项目
新建项目后,项目结构大致如下:
项目结构
为了后期方便,需要对项目的默认结构和内容做以下调整:

  1. 在pom.xml文件的build标签内加入如下内容,防止maven在重新导入jar包时重置project language level

    <plugins>    <plugin>        <groupId>org.apache.maven.plugins</groupId>        <artifactId>maven-compiler-plugin</artifactId>        <version>3.1</version>        <configuration>            <source>1.8</source>            <target>1.8</target>        </configuration>    </plugin></plugins>
  2. 在pom.xml文件中使用属性标签定义junit包的版本号,并将默认的3.8.1版本改为4.12,因为默认的版本没有文档jar包

    <properties>    <junit.version>4.12</junit.version></properties>
  3. 将项目结构调整到如下图所示,并进行源码根目录、资源根目录等相应的配置

    新项目结构

  4. 将web.xml修改为3.0版本的约束,因为默认的2.3版本会禁用jsp页面中的EL表达式

  5. 在web.xml中通过welcome-file标签修改网站首页文件位置,因为默认的首页文件index.jsp被我们移到了统一的jsp文件夹下

项目依赖引入

暂时只引入最基本的依赖,后期将根据需要引入其它包,方便理清各包的作用和关系。

<dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-webmvc</artifactId>    <version>${spring.version}</version></dependency>

Tomcat配置

  1. 将On frame deactivation,On update action配置为Update classes and resources,实现代码和资源的热更新,避免无意义的服务器重启
  2. 将部署类型选为explored,方便资源热更新

运行结果

运行结果

好了,基本的介绍和环境搭建就这些了,明天就可以正式学习Spring Web MVC了。。。

0 0
原创粉丝点击