文档章节

1:spring mvc 概述

小杰java
 小杰java
发布于 2017/10/18 22:08
字数 1237
阅读 50
收藏 2
  1. 什么是mvc

  2. 什么是spring mvc

           Spring MVC 是一种基于 Java 的实现了 Web MVC 设计模式的请求驱动类型的轻量级 Web 框架, 即使用了MVC 架构模式的思想,将 web 层进行职责解耦, 基于请求驱动指的就是使用请求-响应模型, 框架的目的就是帮助我们简化开发, Spring Web MVC 也是要简化我们日常 Web 开发的。

  3. spring mvc能做什么

    ▶ 进行更简洁的 Web 层的开发;

    ▶ 天生与 Spring 框架集成(如 IoC 容器、 AOP 等);

    ▶ 提供强大的约定大于配置的契约式编程支持;

    ▶ 能简单的进行 Web 层的单元测试;提供强大的约定大于配置的契约式编程支持;

    ▶ 能简单的进行 Web 层的单元测试;

    ▶ 支持灵活的 URL 到页面控制器的映射;

    ▶ 非常容易与其他视图技术集成,如 Velocity、FreeMarker 等等, 因为模型数据不放在特定的 API 里,而是放在一个Model 里(Map 数据结构实现, 因此很容易被其他框架使用);

    ▶ 非常灵活的数据验证、 格式化和数据绑定机制, 能使用任何对象进行数据绑定, 不必实现特定框架的 API;提供一套强大的 JSP 标签库, 简化 JSP 开发;
    ▶ 支持灵活的本地化、 主题等解析;
    ▶ 更加简单的异常处理;
    ▶ 对静态资源的支持;
    ▶ 支持 Restful 风格。

  4. spring mvc有哪些东西 

    1. ▶ DispatcherServlet: 前端控制器
      ▶ HandlerMapping: 将请求映射到处理器
      ▶ HandlerAdapter: 把处理器包装为适配器, 用来支持多种类型的处理器
      ▶ View Resolver: 视图解析器
      ▶ Controller接口: 页面控制器/动作/处理器
      ▶ LocalResolver: 本地化解析, 因为Spring支持国际化,因此LocalResolver解析客户端的Locale信息从而方便
      进行国际化
      ▶ ThemeResovler: 主题解析, 通过它来实现一个页面多套风格, 即常见的类似于软件皮肤效果

      ▶ MultipartResolver:文件上传解析, 用于支持文件上传
      ▶ HandlerExceptionResolver: 解析并处理异
      ▶ RequestToViewNameTranslator: 当处理器没有返回逻辑视图名等相关信息时,自动将请求URL映射为逻辑
      视图名
      ▶ FlashMapManager: 用于管理FlashMap的策略接口,FlashMap用于存储一个请求的输出, 当进入另一个请求时作为该请求的输入, 通常用于重定向场景

      spring mvc 处理流程

            spring mvc 开发步骤

            ▶ DispatcherServlet 在 web.xml 中的部署描述, 从而拦截请求到 Spring MVC
            ▶ 配置HandlerMapping, 从而将请求映射到处理器
            ▶ 配置HandlerAdapter, 从而支持多种类型的处理器
            ▶ 配置ViewResolver, 从而将逻辑视图名解析为具体视图技术
            ▶ 配置处理器(页面控制器), 从而进行功能处理

  5. spring mvc的优势

      1、清晰的角色划分: 前端控制(DispatcherServlet)、请求到处理器映射(HandlerMapping)、 处理器适配器(HandlerAdapter)、 视图解析器(ViewResolver)、处理器或页面控制器(Controller)、 验证器(Validator)、 命令对象(Command 请求参数绑定到的对象就叫命令对象)、表单对象(Form Object 提供给表单展示和提交到的对象就叫表单对象)。
      2、 分工明确, 而且扩展点相当灵活, 可以很容易扩展,虽然几乎不需要;
      3、 由于命令对象就是一个 POJO, 无需继承框架特定API, 可以使用命令对象直接作为业务对象;
      4、 和 Spring 其他框架无缝集成,是其它 Web 框架所不具备的;
      5、 可适配, 通过 HandlerAdapter 可以支持任意的类作为处理器;
      6、 可定制性, HandlerMapping、 ViewResolver 等能够非常简单的定制;
      7、 功能强大的数据验证、 格式化、 绑定机制;
      8、 利用 Spring 提供的 Mock 对象能够非常简单的进行Web 层单元测试;
      9、 本地化、 主题的解析的支持, 使我们更容易进行国际化和主题的切换。
      10、 强大的 JSP 标签库, 使 JSP 编写更容易。

  6. spring mvc 的第一个程序

            1.在web.xml下面配置DispatcherServlet

    <servlet>
		<servlet-name>springmvc</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<!-- 启动优先级 -->
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>springmvc</servlet-name>
		<!-- /标示前台所有url请求都会被  DispatcherServlet 拦截-->
		<url-pattern>/</url-pattern>
	</servlet-mapping>

        <!-- 针对Post方式的请求进行编码的设置 -->
	<filter>
		<filter-name>CharacterEncodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>utf-8</param-value>
		</init-param>
	</filter>
	
	<filter-mapping>
		<filter-name>CharacterEncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

2.在/WEB-INF/springmvc-servlet.xml中配置 HandlerMapping 和 HandlerAdapter 和 ViewResolver

      <!-- 配置HandlerMapping   默认配置,可省略 -->
      <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
	  <!-- 配置HandlerAdapter 默认配置,可省略 -->
      <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
      
      <!-- 配置ViewResolver-->
      <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      	<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
      	<!-- 第一个斜杠/不能省略 -->
      	<property name="prefix" value="/pages/"></property>
      	<property name="suffix" value=".jsp"></property>
      </bean> 
      <bean class="com.hejie.controller.HelloWorldController"></bean>

3.最后编写controller即可

@Controller
public class HelloWorldController {
		
	@RequestMapping (value="/hello")
	public Model helloWorld (HttpServletRequest request,
			HttpServletResponse response,Model model) {
		//获取前端传递的值
		String name = request.getParameter("name");
		System.out.println("name==============="+name);
		model.addAttribute("name", name);
		return model;
	}
}

 

© 著作权归作者所有

小杰java
粉丝 13
博文 51
码字总数 31927
作品 0
西安
后端工程师
私信 提问
☆聊聊Spring系列_Index

Spring经典详解 Spring事务机制详解 Spring配置事务五种方式 关于Spring加载classpath与classpath*的过程剖析 深入分析Spring 与 Spring MVC容器 Spring系列文章 【第1章 Spring概述与结构】...

陶邦仁
2015/12/09
1K
0
Spring MVC原理及配置详解

【spring】Spring MVC原理及配置 1.Spring MVC概述: Spring MVC是Spring提供的一个强大而灵活的web框架。借助于注解,Spring MVC提供了几乎是POJO的开发模式,使得控制器的开发和测试更加简...

qq58edf1d989a2d
2018/06/26
0
0
系列一、SpringMVC概念及测试案例

三层架构和MVC概念 一.、三层架构概念 咱们开发服务器端程序,一般都基于两种形式,一种C/S架构程序,一种B/S架构程序,使用Java语言基本上都是开发B/S架构的程序,B/S架构又分成了三层架构 ...

我叫小糖主
05/27
21
0
Spring MVC 执行过程详解

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/Rsx/article/details/96309840 文章目录 Spring MVC简述 大部分Java应...

不专业得Cook
07/17
0
0
深入分析Spring 与 Spring MVC容器

Spring经典详解 Spring事务机制详解 Spring配置事务五种方式 关于Spring加载classpath与classpath*的过程剖析 深入分析Spring 与 Spring MVC容器 Spring系列文章 【第1章 Spring概述与结构】...

陶邦仁
2015/10/30
3.3K
5

没有更多内容

加载失败,请刷新页面

加载更多

js中将字符串转换成json的三种方式

使用ajax的开发项目过程中,经常需要将json格式的字符串返回到前端,前端解析成js对象(JSON )。 ECMA-262(E3) 中没有将JSON概念写到标准中,还好在 ECMA-262(E5) 中JSON的概念被正式引入了...

物种起源-达尔文
22分钟前
6
0
centos7下面python3.7安装

我这里使用的是CentOS7,默认系统自带python2.7的版本,这个版本被系统很多程序所依赖,所以不建议删除,如果使用最新的Python3那么我们知道编译安装源码包和系统默认包之间是没有任何影响的...

chenhongjiang
28分钟前
5
0
带你入门SpringCloud统一配置 | SpringCloud Config

前言 在微服务中众多服务的配置必然会出现相同的配置,如果配置发生变化需要修改,一个个去修改然后重启项目的方案是绝对不可取的。而 SpringCloud Config 就是一个可以帮助你实现统一配置选...

桌前明月
28分钟前
5
0
9.21 日常记录

先说说最近的状态: 一句话,很不好。缺失了目标感,做什么事都是浑浑噩噩的。 每天都是想着轻松的活路去做复习,没有看书,根本没有去思考如何让自己变得更好。 回想起年初的约定,也是一个...

Garphy
37分钟前
5
0
借助Python 函数进行模块化代码

你是否对函数、类、方法、库和模块等花哨的编程术语感到困惑?你是否在与变量作用域斗争?无论你是自学成才的还是经过正式培训的程序员,代码的模块化都会令人困惑。但是类和库鼓励模块化代码...

问题终结者
41分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部