首页 > 其他分享 >SpringMVC笔记

SpringMVC笔记

时间:2022-10-05 15:44:59浏览次数:53  
标签:xml web SpringMVC 笔记 Controller DispatcherServlet servlet

一、SpringMVC简介

1、什么是MVC

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视图,渲染数据后最终响应给浏览器

2、什么是SpringMVC

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

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

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

3、SpringMVC的特点

  • Spring家族原生产品,与IOC容器等基础设施无缝对接
  • 基于原生的Servlet,通过了功能强大的前端控制器DispatcherServlet,对请求和响应进行统一处理
  • 表述层各细分领域需要解决的问题全方位覆盖,提供全面解决方案
  • 代码清新简洁,大幅度提升开发效率
  • 内部组件化程度高,可插拔式组件即插即用,想要什么功能配置相应组件即可
  • 性能卓著,尤其适合现代大型、超大型互连网项目要求

二、搭建环境

1、开发环境

IDE:IDEA:2020.3.4

构建工具:maven 3.8.6

服务器:tomcat 9

Spring版本

2、创建maven工程

(1)添加web模块

(2)打包方式:war

(3)引入依赖

<?xml version="1.0" encoding="UTF-8"?>
<!--Maven作用:1.用来做项目构建 2.项目jar包管理-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>springMVC_demo1</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>


    <dependencies>
<!--        SpringMVC-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.3.23</version>
        </dependency>

<!--        日志-->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.4.3</version>
            <scope>test</scope>
        </dependency>


<!--        ServletAPI-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
<!--            依赖范围:provided,代表服务器已经提供-->
            <scope>provided</scope>
        </dependency>

<!--        thymeleaf和spring5整合包-->
        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf-spring5</artifactId>
            <version>3.1.0.M3</version>
        </dependency>

    </dependencies>
</project>

3、配置web.xml

注册SpringMVC的前端控制器DispatcherServlet

(1)默认配置方式

此配置作用下,SpringMVC的配置文件默认位于WEB-INF下,默认名称为<servlet-name>-servlet.xml,例如,以下配置所对应SpringMVC的配置文件位于WEB-INF下,文件名springMVC-servlet.xml

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的前端控制器,对浏览器发生的请求进行统一处理-->
    <servlet>
        <servlet-name>springMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>springMVC</servlet-name>
        <!--
            设置springMVC的核心控制器所能处理的请求的请求路径
            '/'所匹配的请求可以是/login或.html或.js或.css方式的请求路径
            但是'/'不能匹配.jsp请求路径的请求
         -->
        <url-pattern></url-pattern>
    </servlet-mapping>
</web-app>

(2)扩展配置方式

可通过init-param标签设置SpringMVC配置文件的位置和名称,通过load-on-startup标签设置SpringMVC前端控制器DispatcherServlet的初始化时间

<!--    配置SpringMVC的前端控制器,对浏览器发送的请求统一进行处理-->
    <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-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

标签:xml,web,SpringMVC,笔记,Controller,DispatcherServlet,servlet
From: https://www.cnblogs.com/DFshmily/p/16755669.html

相关文章

  • Closed-loop Matters: Dual Regression Networks for Single Image Super-Resolution
    第一遍:摘要:现有的SR方法有两个潜在的限制:首先,学习从LR到HR图像的映射函数通常是一个病态问题,因为存在无限个HR图像可以下采样到相同的LR图像;其次,配对的LR-HR数据在现实应......
  • 2022最新SpringMVC面试题附完整答案
    SpringMVC面试题一、单选题1.下列关于SpringMVC说法正确的是BA.SpringMVC和Spring没有关系B.SpringMVC是一个控制层框架,复制接收和处理请求C.SpringMVC可以脱离Spring单独......
  • 算法笔记(5)
    题目1一个子序列的消除规则如下:在某一个子序列中,如果'1'的左边有'0',那么这两个字符->"01"可以消除在某一个子序列中,如果'3'的左边有'2',那么这两个字符->"23"可以......
  • Python-错误笔记
    TypeError:sliceindicesmustbeintegersorNoneorhavean__index__method原因1:存在带除法的操作,“/”会生成浮点数,需要将除法符号“/”更改成“//”。原因2:“[......
  • STL学习笔记
    目录STL介绍什么是STL泛性编程STL基本组成STL序列式容器什么是STL容器什么是迭代器什么是序列式容器array容器vector容器deque容器list容器STL关联式容器pair容器map容器mu......
  • 【学习笔记】数据库用户管理和备份
    数据库用户管理和备份 用户管理可视化管理用navicat可视化管理软件进行用户的添加删除和权限的管理新建用户连接用户  sql命令操作对用户的......
  • Python-API笔记
    random.seed()&np.random.seed()np.random.seed()函数用于生成指定随机数。seed()被设置了之后,np,random.random()可以按顺序产生一组固定的数组。如果使用相同的se......
  • MYSQL学习笔记之索引
    (一)什么是索引??    索引(Index)是在数据库的字段上添加的,是为了提高查询的效率存在的一种机制。一张表的一个字段可以添加一个索引,当然,多个字段联合起来也可以添加索引。......
  • 图论专题-学习笔记:树上启发式合并(dsu on tree)
    目录1.前言2.详解3.总结1.前言树上启发式合并(dsuontree),是一种类似于启发式合并的方式解决关于部分子树内问题的算法,一般都是什么子树内颜色个数等等的。前置知识:......
  • hadoop学习笔记
    XIhadoop​文本文件(索引);​structureddata,RDBMS(表,字段,数据类型,约束);​semi-structureddata,半结构化数据(xml,json);​google(网络爬虫、网络蜘蛛、网络机器人,20亿个页面,unstruc......