广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >【SpringMVC】| SpringMVC 入门
  • 410
分享到

【SpringMVC】| SpringMVC 入门

springSpringMVCSSM框架 2023-09-06 07:09:11 410人浏览 泡泡鱼
摘要

目录 一:SpringMVC 入门 1. SpringMVC简介 2. SpringMVC的特点和优点 3. SpringMVC的优化 4. SpringMVC执行的流程 5. 基于注解的SpringMVC程序 一:springMV

目录

一:SpringMVC 入门

1. SpringMVC简介

2. SpringMVC的特点和优点

3. SpringMVC的优化

4. SpringMVC执行的流程

5. 基于注解的SpringMVC程序


一:springMVC 入门

1. springmvc简介

(1)首先我们先回忆一下MVC的三层架构

MVC是一种开发模式,它是模型视图控制器的简称;所有的WEB应用都是基于MVC开发
M:Model,模型层,指工程中的JavaBean,作用是处理数据;JavaBean分为两类:

①一类称为实体类Bean专门存储业务数据的,如 Student、User 等。

②一类称为业务处理 Bean:指 Service【业务逻辑层】 Dao【数据访问层】 对象,专门用于处理业务逻辑和数据访问。

总结:包含实体类、业务逻辑层、数据访问层。
V:View,视图层,指工程中的htmljsp等页面,作用是与用户进行交互,展示数据
C:Controller,控制层,指工程中的servlet,作用是接收请求和响应浏览器

MVC的工作流程:用户通过视图层【jsp或html】发送请求到服务器,在服务器中请求被Controller接收【servlet】,Controller调用相应的Model层处理请求,处理完毕将结果返回到Controller【JavaBean】,Controller再根据请求处理的结果找到相应的View视图,渲染数据后最终响应给浏览器。

(2)什么是SpringMVC?

①SpringMVC是Spring的一个后续产品,是Spring的一个子项目;它是基于MVC开发模式的框架用来优化控制器,它是Spring家族的一员;也具备iocaop

②SpringMVC 是 Spring 为表述层开发提供的一整套完备的解决方案。在表述层框架历经 Strust、WebWork、Strust2 等诸多产品的历代更迭之后,目前业界普遍选择了 SpringMVC 作为 Java EE 项目表述层开发的首选方案

注:三层架构分为表述层(或表示层)业务逻辑层数据访问层表示层表示前台页面(jsp或jsp)和后台servlet所有MVC与三层架构的关系是:

①三层架构的业务逻辑层、数据访问层实际上就是MVC架构模式的M。

②而MVC架构模式的V(jsp或servlet)和 C(servlet)实际上就是三层架构的表示层。

(3)SSM框架的优化方向?

mybatis是用来优化数据访问层(持久层框架)

②SpringMVC是用来优化控制机器,例如:Servlet

③Spring是用来整合其它框架的

2. SpringMVC的特点和优点

(1)特点

Spring 家族原生产品,与 ioC 容器等基础设施无缝对接。

基于原生的Servlet,通过了功能强大的前端控制器DispatcherServlet,对请求和响应进行统一处理。

③表述层各细分领域需要解决的问题全方位覆盖,提供全面解决方案。

代码清新简洁,大幅度提升开发效率。

⑤内部组件化程度高,可插拔式组件即插即用,想要什么功能配置相应组件即可。

性能卓著,尤其适合现代大型、超大型互联网项目要求。

(2)优点

①基于MVC架构。基于 MVC 架构,功能分工明确;解耦合。

②容易理解,上手快,使用简单。可以开发一个注解的 SpringMVC 项目,SpringMVC 也是轻量级的,jar 很小;不依赖的特定的接口和类。

③具备IOC和AOP。方便整合Strtus、MyBatis、Hiberate等其他框架。

④强化注解的使用(全注解开发)。在Controller, Service, Dao 都可以使用注解,方便灵活。使用@Controller创建处理器对象、@Service创建业务对象,@Autowired 或者@Resource 在控制器类中注入 Service,在Service 类中注入 Dao。

3. SpringMVC的优化

(1)用户发出请求首先是要交给Tomcat服务器,然后检查web.xml配置;如果在里面配置了SpringMVC(DispatcherServlet)就把控制权交给这个框架。

(2)SpringMVC调用控制器Controller,会对客户端提交的数据进行优化、携带数据进行优化、返回跳转进行优化。

(3)然后控制器调用业务逻辑层,业务逻辑层调用数据访问层;然后数据访问层连接数据库,最终返回数据。

4. SpringMVC执行的流程

(1)客户端向服务器发送Http请求,请求被前置控制器DispatcherServlet(SpringMVC框架的核心处理器) 捕获。

(2)DispatcherServlet(前置控制器)【好汉】根据中的配置(DispatcherServlet)对请求的URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用 HandlerMapping(地址映射器)【第一个小帮手】 获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以 HandlerExecutionChain 对象的形式返回。

(3)DispatcherServlet 根据获得的Handler选择一个合适的 HandlerAdapter(适配器)【第二个小帮手】,然后去调用业务逻辑层、数据访问层,最终一个ModelAndView对象

(4)解析:提取Request中的模型数据,填充Handler入参,开始执行Handler。在填充Handler的入参过程中,根据你的配置,Spring将帮你做一些额外的工作:

HttpMessageConveter:将请求消息(如JSON、xml等数据)转换成一个对象,将对象转换为指定的响应信息。

①数据转换:对请求消息进行数据转换;如String转换成Integer、Double等

②数据格式化:对请求消息进行数据格式化;如将字符串转换成格式化数字或格式化日期等

③数据验证:验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中

Handler执行完成后,向 DispatcherServlet 返回一个 ModelAndView 对象。

(5)根据返回的ModelAndView选择一个适合的 ViewResolver(视图解析器,必须是已经注册到Spring容器中的ViewResolver)【第三个小帮手】,主要是用来返回客户端请求地址拼接,分为前缀部分和后缀部分,最终返回给DispatcherServlet

(6)ViewResolver 结合Model和View,来渲染视图;视图负责将渲染结果返回给客户端。

5. 基于注解的SpringMVC程序

第一步:新建项目,选择webapp模板

第二步:修改目录,添加缺失的test,java、resources(两套),并修改目录属性

第三步:修改pom.xml文件,添加SpringMVC的依赖,添加Servlet的依赖

对于最后指定资源文件的解析:Maven默认会把src/main/resources下的所有配置文件以及src/main/java下的所有java文件打包或发布到target\classes下面;我们可能会在src/main/java下面也放置一些配置文件如:xxx.xml配置、xxx.properties配置;如果不做一些额外配置,那我们打包后的项目可能找不到这些必须的资源文件!

注:对于Tomcat9+spring-webmvc依赖(使用5.3版本以下才好使)+javax.servlet.api

:对于高版本的Tomcat实际上内置了Servlet,所以当我们设置了scope为provided,实际上在打包的时候就不会出现在WEB-INF目录下!

  4.0.0  com.bjpowernode  SpringMVC-001  1.0-SNAPSHOT  war  SpringMVC-001 Maven Webapp    http://www.example.com      UTF-8    1.8    1.8                  org.springframework      spring-webmvc      5.2.5.RELEASE                  javax.servlet      javax.servlet-api      3.1.0      provided                junit      junit      4.11      test                  org.thymeleaf      thymeleaf-spring5      3.0.10.RELEASE                              src/main/java                  ***.properties                            src/main/resources                  ***.properties                    

第四步:删除web.xml文件(版本低),新建web.xml;并在web.xml文件中注册springMVC框架

注:我们知道所有的web请求都是基于servlet的,但是SpringMVC的处理器本身却是一个普通的方法;所以需要核心处理器DispatcherServlet,DispatcherServlet要在web.xml文件中注册才可以使用!

①添加初始化配置:指定DispactherServlet要拦截什么样的请求?

引入springmvc.xml配置:使用contextConfigLocation作为nameclasspath:springmvc.xml作为value来引入springmvc.xml配置,告诉DispatchServlet处理

注:设置springMVC的核心控制器所能处理的请求的请求路径,【斜杠/】所匹配的请求可是/login或.html或.js或.CSS方式的请求路径;但是/不能匹配.jsp请求路径的请求!

注:斜杠【/】表示所有请求,但不包括.jsp。斜杠星【 @RequestMapping("/demo") public String demo(){ System.out.println("服务器被访问到了......"); // 根据返回的main,就可以跳转到/admin/main.jsp页面上 return "main"; }}

第八步:测试

首先访问的是index.jsp,当点击超链接时,会跳转到DemoAction(类似于Servlet的功能),然后返回一个“main”字符串

根据返回的字符串“mian”,核心处理器DispatcherServlet会根据注册的springmvc.xml文件里面的视图解析器:加上前缀和后缀,完成路径的拼接:/admin/main.jsp,最终完成页面的跳转

补充:当然也可以使用thymeleaf【前面配置都已经配置好了】

编写controllelr

package com.zl.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class HelloController {    @RequestMapping("/")    public String index(){        return "index";    }}

开启Tomcat,当访问根目录时会进行跳转到index.htm

 

注:此时过过引入了logback-classic依赖,还会输出一下请求处理的信息

     ch.qos.logback     logback-classic     1.2.11

 

通过index.jsp在访问其他页面目标程序

原来的写法:如果使用的是.jsp;可以使用超链接+EL表达式获取上下文路径/访问的路径

现在的写法:现在使用的是html的形式,不能使用EL表达式,怎么办呢?

注:首先属性名用【th:】去修饰属性值放到@{"/target"}的形式,检测到是绝对路径/target会在前面加上下文路径bank。

编写controller

    @RequestMapping("/target")    public String toTarget(){        return "target";    }

编写WEB-INF/templates下的target.html

        Title    

HelloWorld

总结:浏览器发送请求,若请求地址符合前端控制器的url-pattern(该请求我们写的是"/",表示匹配除.jsp的任何形式的请求),该请求就会被前端控制器DispatcherServlet处理。前端控制器会读取SpringMVC的核心配置文件,通过扫描组件找到控制器,将请求地址和控制器中@RequestMapping注解的value属性值进行匹配,若匹配成功,该注解所标识的控制器方法就是处理请求的方法。处理请求的方法需要返回一个字符串类型的视图名称,该视图名称会被视图解析器解析,加上前缀和后缀组成视图的路径,通过Thymeleaf对视图进行渲染,最终转发到视图所对应页面!

来源地址:https://blog.csdn.net/m0_61933976/article/details/128796992

--结束END--

本文标题: 【SpringMVC】| SpringMVC 入门

本文链接: https://www.lsjlt.com/news/396627.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 【SpringMVC】| SpringMVC 入门
    目录 一:SpringMVC 入门 1. SpringMVC简介 2. SpringMVC的特点和优点 3. SpringMVC的优化 4. SpringMVC执行的流程 5. 基于注解的SpringMVC程序 一:SpringMV...
    99+
    2023-09-06
    spring SpringMVC SSM框架
  • SpringMVC入门指南
    目录 前言 一、什么是SpringMVC 二、MVC架构模式 三、SpringMVC的工作流程 四、SpringMVC核心组件 五、SpringMVC的优势 六、SpringMVC的配置与常用注解 七、SpringMvc请求处理流程、 控...
    99+
    2023-09-05
    spring mybatis java intellij-idea maven servlet
  • SpringMVC入门实例
    1介绍MVC框架是什么MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到...
    99+
    2023-05-30
    springmvc 入门 sprin
  • SpringMVC入门实例分析
    今天小编给大家分享一下SpringMVC入门实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
    99+
    2022-10-19
  • springboot与springmvc基础入门讲解
    目录一,SpringBoot–1,概述–2,用法二,SpringMVC–1,概述–2,原理–3,入门案例总结一,SpringBoot –1,概述 用来整合maven项目,可以和Sp...
    99+
    2022-11-12
  • 实例详解SpringMVC入门使用
    MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model),视图(View)和控制器(Controller...
    99+
    2022-11-12
  • 基于SpringMVC入门案例及讲解
    目录一、SpringMvc概述二、入门案例 开发步骤1、创建web工程、引入依赖2、配置SpringMvc入口文件3、创建Springmvc.xml文件4、创建 业务处理器...
    99+
    2022-11-12
  • SpringMVC注解的入门实例详解
    目录1、在 web.xml 文件中配置前端处理器2、在 springmvc.xml 文件中配置处理器映射器,处理器适配器,视图解析器3、编写 Handler4、编写 视图 index...
    99+
    2022-11-13
  • 一文带你入门SpringMVC的配置与使用
    目录1.概述2.中心控制器3.搭建SpringMVC更新pom依赖配置web.xml配置springmvc-servlet.xml创建Controller创建视图层1.概述 Spri...
    99+
    2022-11-16
    SpringMVC配置 SpringMVC使用 SpringMVC入门
  • 零基础入门SpringMVC拦截器的配置与使用
     在SpringMVC中 我们说到了拦截器 , 它会在映射处理器(HandleMapping)执行时检查我们访问的地址是否配置拦截器 , 在拦截器中实现一些功能 &nbs...
    99+
    2022-11-13
  • 详解SpringMVC中拦截器的概念及入门案例
    目录一、拦截器概念二、拦截器入门案例一、拦截器概念 拦截器(Interceptor)是一种动态拦截方法调用的机制,在SpringMVC中动态拦截控制器方法的执行 作用: 在指定的方法...
    99+
    2022-11-13
  • SpringMVC+Hibernate4
    开发环境1,项目用到的框架有:Spring3.2.14.RELEASE、Hibernate4.2.20.Final、Bootstrap32,开发工具eclipse、maven3,数据库Mysql5.6.24正文1.数据库表CREATE TA...
    99+
    2023-01-31
    SpringMVC
  • 简述SpringMVC
    一、典型的Servlet + JSP + JavaBean UserServlet看作业务逻辑处理(Controller)User看作模型(Model)user.jsp看作渲染(View) 二、高级MVC 由DispatcherServ...
    99+
    2023-08-30
    java spring servlet
  • SpringMvc介绍。
    目录 1、SpringMvc概述 1、基本介绍 2、工作流程  3、bean加载控制  二、请求 1、请求映射路径 2、请求方式 3、请求参数 4、请求参数(传递json数据) 5、日期类型参数传递 三、响应 四、REST风格 1、REST...
    99+
    2023-09-01
    java SpringMVC
  • 深入理解SpringMVC参数解析器
    这篇文章主要讲解了“深入理解SpringMVC参数解析器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“深入理解SpringMVC参数解析器”吧!1.参数解析...
    99+
    2022-10-19
  • 深入了解SpringMVC初始化流程
    目录前言1.HttpServletBean2.FrameworkServlet3.DispatcherServlet4.小结前言 框架源码是我们 Coding 晋级中的必修课,SSM...
    99+
    2022-11-13
  • SpringMvc定制化深入探究原理
    目录一、SpringBoot 自动配置套路二、定制化常见方式@EnableWebMvc 原理三、使用 @EnableWebMvc 案例一、SpringBoot 自动配置套路 引入场景...
    99+
    2022-11-13
    SpringMvc定制化 SpringMvc定制化原理 SpringBoot定制化
  • SSM(Spring-Mybatis-SpringMVC)
    文章目录 1. 介绍1.1 概念介绍 2 SSM整合框架3. SSM功能模块开发4 测试4.1 业务层接口测试4.2 表现层接口测试 5.优化 -表现层数据封装6.异常处理 ...
    99+
    2023-09-05
    spring mybatis tomcat
  • SpringMVC是什么
    这篇文章主要为大家展示了“SpringMVC是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“SpringMVC是什么”这篇文章吧。一、SpringMvc概述SpringMVC是一个基于MVC...
    99+
    2023-06-26
  • SpringMVC拦截器
    7.SpringMVC拦截器 7.1-SpringMVC拦截器-拦截器的作用(理解) Spring MVC 的拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理和后处理。 将拦截器按一定的顺序联结成一条链,这...
    99+
    2023-08-19
    java servlet spring
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作