首页 > 其他分享 >day127-springMVC的介绍与入门

day127-springMVC的介绍与入门

时间:2023-08-28 22:22:26浏览次数:37  
标签:xml 控制器 入门 day127 SpringMVC 视图 springMVC servlet 请求

springMVC介绍与初始化

介绍

MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分

M:Model,模型层,指工程中的JavaBean,作用是处理数据

JavaBean分为两类:

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

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

V:View,视图层,指工程中的html或jsp等页面,作用是与用户进行交互,展示数据

C:Controller,控制层,指工程中的servlet,作用是接收请求和响应浏览器

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

springMVC

SpringMVC是Spring的一个后续产品,是Spring的一个子项目

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

三层架构分为表述层(或表示层)、业务逻辑层、数据访问层,表述层表示前台页面和后台

servlet

初始化案例

导入依赖,配置web.xml

<!--
    配置springMVC的前端控制器DispatcherServlet
    SpringMVC配置文件默认的位置与名称
    位置:web-inf下
    名称:<servlet-name> - servlet.xml,当前配置下的配置文件名SpringMVC-servlet.xml
​
    url-pattern中/ and /* 的区别
    /: 匹配浏览器向服务器发送的请求,不包括.jsp
    /*: 匹配浏览器向服务器发送的所有请求,包括jsp
  -->
    <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>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

 

默认配置方式

此配置作用下,SpringMVC的配置文件默认位于WEB-INF下,默认名称为<servlet-name>-

servlet.xml,

可通过init-param标签设置SpringMVC配置文件的位置和名称,通过load-on-startup标签设置

SpringMVC前端控制器DispatcherServlet的初始化时间

<url-pattern>标签中使用/和/*的区别:

/所匹配的请求可以是/login或.html或.js或.css方式的请求路径,但是/不能匹配.jsp请求路径的请求

因此就可以避免在访问jsp页面时,该请求被DispatcherServlet处理,从而找不到相应的页面

/则能够匹配所有请求,例如在使用过滤器时,若需要对所有请求进行过滤,就需要使用/的写法

创建请求控制器

创建相关类的controller来控制她

创建SpringMVC的配置文件

<!--  扫描控制层组件  -->
    <context:component-scan base-package="com.gu.springMVC.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>
​
</beans>

 

测试

在控制器中创建处理请求的方法,进行测试

总结

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

标签:xml,控制器,入门,day127,SpringMVC,视图,springMVC,servlet,请求
From: https://www.cnblogs.com/GUGUZIZI/p/17663526.html

相关文章

  • springMvc常用注解与作用
    @Controller注解的作用在SpringMVC中,控制器Controller负责处理由DispatcherServlet分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model,然后再把该Model返回给对应的View进行展示。在SpringMVC中提供了一个非常简便的定义Controller的方......
  • draw.io快速入门(上)
    1编辑图标Draw.io(现名diagrams.net)是免费的在线图形绘制工具,可用于创建各种类型的图表、流程图、组织结构图、UML图、网络拓扑图等。以下是Draw.io的一些特点和功能:免费和开源Draw.io是一个免费的工具,用户可以免费访问和使用其所有功能。并且它是开源软件,用户可以查看和......
  • 第一节 drf入门规范
    一web应用模式它是djangoweb框架,专门用来写web项目1前后端混合开发模式---》常见公司老项目-后端人员,写后端,也要写模板语法--->模板语法就是写的xx.html的Python代码-全栈开发,前后端都写 2前后端分离开发模式---》新项目,时下比较流行-后端不用写前端,只需要写接......
  • 【C++STL基础入门】vector运算和遍历、排序、乱序算法
    @TOC前言C++标准库提供了丰富的容器和算法,其中vector是最常用的容器之一。它以动态数组的形式存储元素,并提供了许多方便的运算符和算法来操作和处理数据。本文将介绍vector的基本运算、遍历方法、排序算法以及乱序算法。通过学习这些内容,您将能够更加灵活、高效地使用vector容器。......
  • Java快速入门
    网上有很多的相关资料,这里也就不做过多概念的论述了本人电脑:目前使用win11,内存64,处理器12900hJava简介Java由詹姆斯高斯林开发,原本归属于SUN公司(斯坦福网络),后来SUN公司被Oracle(甲骨文)收购,目前版本归属于Oracle,现在的java版本已经很多了,目前市面上使用......
  • SpringMVC-cnblog
    SpringMVCspringmvc原理1.配置web.xml资源2.编写配置文件3.编写Controllerspringmvc底层原理HelloSpringMVC(配置版)新建一个Moudle,添加web的支持!确定导入了SpringMVC的依赖!配置web.xml,注册DispatcherServlet<?xmlversion="1.0"encoding="UTF-8"?>......
  • [计算机学习]PWN 入门启程
    2023年8月10日开通开通了ctf.show的PWN入门课程。之前是去年打ctf比赛,买过VIP。题目很多,挺适合新手入门,如果你也要学习打CTF,建议可以买一个VIP会员,题目很多,可以一关一关自己练习。如果纯萌新,也可以买一个私教课程。2023年8月28日第一次写writeupPWN0使用MobaXterm.exe连接题......
  • Redis从入门到放弃(11):雪崩、击穿、穿透
    1、前言Redis作为一款高性能的缓存数据库,为许多应用提供了快速的数据访问和存储能力。然而,在使用Redis时,我们不可避免地会面对一些常见的问题,如缓存雪崩、缓存穿透和缓存击穿。本文将深入探讨这些问题的本质,以及针对这些问题的解决方案。2、缓存雪崩2.1、问题描述在某个时间......
  • vs2019-cuda配置入门
    cuda使用如下1、打开VS,新建C++空项目 2、右击源文件->添加->新建项 3、选择CUDAC/C++File,名称位main.cu 4、把下面的示例源码复制到main.cu中#include"cuda_runtime.h"#include"device_launch_parameters.h"#include<stdio.h>/***************************......
  • SpringMVC3的ResponseBody返回字符串乱码问题解决
    SpringMVC的@ResponseBody注解可以将请求方法返回的对象直接转换成JSON对象,但是当返回值是String的时候,中文会乱码 原因是因为其中字符串转换和对象转换用的是两个转换器,而String的转换器中固定了转换编码为"ISO-8859-1" 网上也很多种解决方法,有通过配置Bean编码的,也有自己重写转......