Spring MVC【入门】

MVC 设计概述

在早期 Java Web 的开发中,统一把显示层、控制层、数据层的操作全部交给 JSP 或者 JavaBean 来进行处理,我们称之为 Model1:

  • 出现的弊端:
  • JSP 和 Java Bean 之间严重耦合,Java 代码和 HTML 代码也耦合在了一起
  • 要求开发者不仅要掌握 Java ,还要有高超的前端水平
  • 前端和后端相互依赖,前端需要等待后端完成,后端也依赖前端完成,才能进行有效的测试
  • 代码难以复用

正因为上面的种种弊端,所以很快这种方式就被 Servlet + JSP + Java Bean 所替代了,早期的 MVC 模型(Model2)就像下图这样:

首先用户的请求会到达 Servlet,然后根据请求调用相应的 Java Bean,并把所有的显示结果交给 JSP 去完成,这样的模式我们就称为 MVC 模式。

  • M 代表 模型(Model)
    模型是什么呢? 模型就是数据,就是 dao,bean
  • V 代表 视图(View)
    视图是什么呢? 就是网页, JSP,用来展示模型中的数据
  • C 代表 控制器(controller)
    控制器是什么? 控制器的作用就是把不同的数据(Model),显示在不同的视图(View)上,Servlet 扮演的就是这样的角色。

让我们来写一下我们的第一个 Spring MVC 程序:

扩展阅读:Web开发模式

Spring MVC 的架构

为解决持久层中一直未处理好的数据库事务的编程,又为了迎合 NoSQL 的强势崛起,Spring MVC 给出了方案:

传统的模型层被拆分为了业务层(Service)和数据访问层(DAO,Data Access Object)。 在 Service 下可以通过 Spring 的声明式事务操作数据访问层,而在业务层上还允许我们访问 NoSQL ,这样就能够满足异军突起的 NoSQL 的使用了,它可以大大提高互联网系统的性能。

  • 特点:
    结构松散,几乎可以在 Spring MVC 中使用各类视图
    松耦合,各个模块分离
    与 Spring 无缝集成

示例:

1、在web.xml 配置一个DispatcherServlet 并且使用 
初始化参数 contextConfigLocation 关联容器对应的配置文件

可以<url-pattern>元素的值改为 / ,表示要拦截所有的请求,并交由Spring MVC的后台控制器来处理(也可以用*)

contextConfigLocation 关联容器对应的配置文件 也可以写到WebContent下面的WEB-INF下面,这个时候就不用再web.xml中配置初始化上下文配置,如果不配置,运行servers的时候,编译器会报这个异常,xml文件名字自定义可改

2、编写netmk_web.xml(也就是异常报错说缺少dispatcher-servlet.xml,名字可自定义的哈)

开启基于标注 Spring MVC
开启组件扫描 <context:component-scan base-package="" /> 
开启mvc的标注 <mvc:annotation-driven /> 自动配置了一个HandlerMapping

3、编写一个普通的java类使用@Controller 把java类变成控制器
控制器方法的返回值可以是String也可以是 ModelAndView

方法名任意参数任意 在控制器方法上加 @RequestMapping("/请求路径")

我这里创建了个实体类,使用了实体里面的属性

4、在WEB-INF建立一个login.jsp

控制器接收请求数据

使用控制器接收参数往往是 Spring MVC 开发业务逻辑的第一步,为探索 Spring MVC 的传参方式,为此我们先来创建一个简单的表单用于提交数据:

重启服务器之后

测试结果如下:

控制台显示:

小问题:

什么是springMVC?作用?

springMVC是一种web层mvc框架,用于替代servlet(处理|响应请求,获取表单参数,表单校验等)。

为什么要用springMVC?

基本上,框架的作用就是用来简化编程的,相对于servlet来说,获取表单参数,响应请求等变得更简单了。

说出spring mvc底层执行流程(工作原理):

说说spring mvc中常用注解有哪些,分别什么作用?

  @Controller      标识这个类是一个控制器

  @RequestMapping  给控制器方法绑定一个uri

  @ResponseBody  将java对象转成json,并且发送给客户端

  @RequestBody  将客户端请求过来的json转成java对象

  @RequestParam  当表单参数和方法形参名字不一致时,做一个名字映射

  @PathVarible  用于获取uri中的参数,比如user/1中1的值 Rest风格的新api

  @RestController  @Controller+ @ResponseBody

  @GetMapping@DeleteMapping@PostMapping

  @PutMapping

  其他注解

  @SessionAttribute

声明将什么模型数据存入session

  @CookieValue  获取cookie值

  @ModelAttribute  将方法返回值存入model中

  @HeaderValue  获取请求头中的值

springmvc和strus2的区别?

1,入口不同:

springmvc 入口是Servlet。struts2入口是filter。

2,生命周期不同:

spring mvc Controller是单例的。所以不能使用成员变量获取参数。所以效率高。

struts action是多例的。所以可以使用成员变量获取参数。所以效率低。

如何在spring mvc实现RESTful 服务

1,导入jackson2包

2,开启注解驱动<mvc:annotation-driven/>

3,json交互[email protected] @ResponseBody

spring mvc如何返回JSON数据

在处理方法前加上 @ResponseBody注解

或者

在控制器上使用 @RestController

什么是拦截器?有什么用?spring mvc如何定义拦截器?

what:

类似于filter的一个对象,用于预处理以及后处理处理器(控制器)。

how:

新建class实现HandlerInterceptor重写三个方法preHandlerpostHandlerafterCompletionspringmvc.xml中配置拦截器

spring mvc中如何做表单数据校验?

环境搭建

1,springmvc.xml中配置一个validator

2,<mvc:annotation-driven validator="validator"/>;

给Entity添加校验规则

@NotEmpty

@Length

...

用BindingResult 紧接着entity之后来接收错误信息。

原文地址:https://www.cnblogs.com/xss512/p/10954614.html

时间: 2024-10-25 15:36:24

Spring MVC【入门】的相关文章

Spring MVC入门教程(二)

第一篇文章宏观讲了Spring MVC概念,以及分享了一个快速入门的例子(文章链接). 这篇文章主要来谈谈Spring MVC的配置文件. 首先来谈谈web.xml: web项目启动时自动加载到内存中的信息,比如服务器配置参数,<listener>监听器,<filter>过滤器,<servlet>等.再如,如果在项目中使用了spring框架,则必须定义ContextLoaderListener,那么在启动Web容器时,会自动装配Spring applicationCon

spring MVC入门示例(hello world demo)

1. Spring MVC介绍 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框 架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的. Spring Web MVC也是服务到工作者模式的实现,但进行可优化.前端控制器是DispatcherServlet:应用控制器其实拆为处理器映射器(Handler M

Spring MVC 入门实例

概述: springmvc 框架围绕DispatcherServlet这个核心展开,DispatcherServlet是Spring MVC的总控制,它负责截获请求并将其分派给相应的处理器处理.SpringMVC框架包括注解驱动控制器.请求及响应的信息处理.视图解析.本地化解析.上传文件解析.异常处理以及表单标签绑定等内容. SpringMVC是主要基于MODEL2实现的技术框架,Model2是经典的MVC(model.view.control)模型在web应用中的变体,这个改变主要源于HTTP

【转载】Spring MVC入门

转自:http://www.importnew.com/15141.html MVC框架是什么 模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计模式.它主要通过分离模型.视图及控制器在应用程序中的角色将业务逻辑从界面中解耦.通常,模型负责封装应用程序数据在视图层展示.视图仅仅只是展示这些数据,不包含任何业务逻辑.控制器负责接收来自用户的请求,并调用后台服务(manager或者dao)来处理业务逻辑.处理后,后台业务层可能会返回了一些数据在视图层展示.控制器收集这些数据及

Spring MVC 入门示例讲解

MVC框架是什么 Dispatcher Servlet(Spring控制器) Spring入门示例 运行时依赖库 web.xml和spring-servlet.xml文件配置 请求控制器EmployeeController.java 视图模型EmployeeVO.java Dao类 业务层类 视图employeeListDisplay.jsp MVC框架是什么 模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计模式.它主要通过分离模型.视图及控制器在应用程序中的角色将业务

Spring MVC 入门 - 框架搭建

感觉网上从环境搭建讲起的教程不多,好多示例也比较复杂,而且也没个图啥的,所以就上一个简单易懂的版本. 有多简单捏?从eclipse建立工程开始,结束后作出一个可以响应请求的Servlet. 在这个文章里面,我们需要 - 建立一个eclipse工程: 编写两个xml: 编写两个jsp页面: 编写一个Java文件. 准备工作 - Eclipse J2EE版本: Tomcat 一只: 注:所有斜体字代表-文件名,类名,变量名等可替换内容. 第一步: 使用Eclipse建立动态网页工程. 输入项目名字,

Spring MVC入门讲解

一.Springmvc是什么? Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想, 将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的. 二.Spring MVC 架构图: 1.DispacherServlet前端控制器 负责用户请求和响应,是一个中央控制器(调度),调用HandlerMapping查找H

Spring MVC入门教程(一)

直接干货 model 考虑给用户展示什么,关注支撑业务的信息构成,构建成模型: control 调用业务逻辑产生合适的数据以及传递数据给视图用于呈献: view 如何对数据进行布局,以一种优美的方式展示给用户: MVC核心思想:业务数据抽取和业务数据呈献相分离. 看看Spring MVC官网给的图:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html Spring'sweb MVC f

spring mvc入门教程(快速入门,深入分析)

目录 一.前言 二.spring mvc 核心类与接口 三.spring mvc 核心流程图 四.spring mvc DispatcherServlet说明 五.spring mvc 父子上下文的说明 六.springMVC-mvc.xml 配置文件片段讲解 七.spring mvc 如何访问到静态的文件,如jpg,js,css 八.spring mvc 请求如何映射到具体的Action中的方法 九.spring mvc 中的拦截器: 十.spring mvc 如何使用拦截器 十一.sprin

Spring MVC入门实例

1.web.xml配置 <?xml version="1.0" encoding="UTF-8"? > <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/