当前位置: 首页 > news >正文

【Java闭关修炼】SpringBoot-SpringMVC概述和入门

SpringMVC概述和入门

MVC概述

在这里插入图片描述

  • 实体类Bean:专门 存储业务数据 Student User
  • 业务处理Bean:指的是Service或者Dao 专门用来处理业务逻辑或者数据访问

用户通过视图层发送请求到服务器,在服务器中请求被Controller接受,Controller调用相应的MOdel层处理请求,处理完毕结果返回到Controller,COntroller再根据请求的处理结果找到相应的View视图,渲染数据之后最终给浏览器

SpringMVC

在这里插入图片描述

HelloWorld入门程序

开发环境

在这里插入图片描述

创建一个工程,导入依赖WebApplication.xml

在这里插入图片描述

pom.xml添加依赖

<dependencies><!-- SpringMVC --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.21</version></dependency><!-- 日志 --><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version></dependency><!-- ServletAPI --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><!-- Spring5和Thymeleaf整合包 --><dependency><groupId>org.thymeleaf</groupId><artifactId>thymeleaf-spring5</artifactId><version>3.0.12.RELEASE</version></dependency></dependencies>

默认方式配置WEB.XML

此配置作用下,SpringMVC的配置文件默认为与WEB.INF下面,默认名称是servelct-name-servlet.xml,比如下面的配置文件就是springMVC-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0">
<!--    配置SpringMVC的前端控制器 对浏览器发送请求进行统一处理 name要和mapping保持一致--><servlet><servlet-name>SpringMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class></servlet>
<!--    一个servlet配置一个请求 /表示配置浏览器发送的所有请求 不能匹配jsp请求--><servlet-mapping><servlet-name>SpringMVC</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>

扩展配置方式web.XML

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0">
<!--    配置SpringMVC的前端控制器 对浏览器发送请求进行统一处理 name要和mapping保持一致--><servlet><servlet-name>SpringMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--        配置springMVC配置文件的位置和名称--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath*:springMVC.xml</param-value></init-param><!--        将前端控制器DispatcherServlet的初始化时间提前到服务器启动时候-->
<!--        前端所有请求都被前端控制器所拦截  那么需要初始化前端控制器--><load-on-startup>1</load-on-startup></servlet>
<!--    一个servlet配置一个请求 /表示配置浏览器发送的所有请求 不能匹配jsp请求--><servlet-mapping><servlet-name>SpringMVC</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>

创建请求控制器

在这里插入图片描述

请求控制器中每一个处理请求的方法叫做控制器方法

package com.ustc.mvc.controller;import org.springframework.stereotype.Controller;// 请求控制器
@Controller
public class HelloController {
}

在springMVC.xml配置component-scan,表示将controller资源作为一个bean注入到IOC容器中进行管理

 <context:component-scan base-package="com.ustc.mvc.controller"></context:component-scan>

配置视图解析器,跳转地址:文件前缀+文件名+视图后缀

<!--配置thymeleaf视图解析器--><bean id="viewResolver" class="org.thymeleaf.spring5.view.ThymeleafViewResolver"><property name="order" value="1"/><property name="characterEncoding" value="UTF-8"/><property name="templateEngine"><bean class="org.thymeleaf.spring5.SpringTemplateEngine"><property name="templateResolver"><bean class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver">
<!--                        跳转目标文件  目标视图  视图前缀 加上 视图后缀--><!-- 视图前缀 --><property name="prefix" value="/WEB-INF/templates/"/><!-- 视图后缀 --><property name="suffix" value=".html"/><property name="templateMode" value="HTML5"/><property name="characterEncoding" value="UTF-8" /></bean></property></bean></property></bean>

访问首页

在请求控制器中创建处理请求的方法,跳转到index.html


package com.ustc.mvc.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;// 请求控制器
@Controller
public class HelloController {//    浏览器请求与控制器方法相关联@RequestMapping(value = "/")public String index(){return "index";// 返回的是视图名称  然后视图前缀 + 视图名称 + 试图后缀  解析指定页面}
}

配置Tomcat

在这里插入图片描述

在这里插入图片描述

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

建议使用MAVEN模板配置SpringMVC工程

http://www.lryc.cn/news/57910.html

相关文章:

  • pdf转换器免费版哪种好用:Aiseesoft PDF Converter Ultimate | 无损转word转Excel转PPT转图片啥都行!!!
  • 革新市场营销,突破瓶颈:关键词采集和市场调查的秘密武器
  • 3年测试经验只会“点点点”,不会自动化即将面临公司淘汰?沉淀100天继续做测试
  • python:异常处理与文件操作(知识点详解+代码展示)
  • SpringBoot 过滤器和拦截器(三十八)
  • Memcache论文总结——Lec16
  • 父子组件传值问题
  • Redis大key问题
  • 00后卷王的自述,我难道真的很卷?
  • Redis第七讲 Redis存储模型详解
  • Python 进阶指南(编程轻松进阶):十五、面向对象编程和类
  • windows下postgresql安装timescaledb
  • Linux系统常用命令大全
  • 月报总结|Moonbeam 3月份大事一览
  • 多功能料理锅语音播放芯片——NV040C
  • vue23自定义svg图标组件
  • 相机雷达时间同步(基于ROS)
  • 素数环PrimeRing [3*]
  • mongodb 连接池配置
  • 数据在内存中的存储(深度剖析)
  • python 实现二叉搜索树的方法有哪些?
  • ORM概述
  • 程序员必知必会7种UML图(类图、序列图、组件图、部署图、用例图、状态图和活动图)画法盘点
  • 基于asp的搜索引擎开发和实现
  • 代码随想录刷题-字符串-实现 strStr()
  • 前端已死?金三银四?你收到offer了吗?
  • C生万物 | 十分钟带你学会位段相关知识
  • Spring Boot基础学习之(十):修改员工的信息
  • 闭关十几天,我完成了我的毕业设计
  • 认识rust的项目管理工具--cargo