SpringMVC框架重要知识点总结(一)

ssm框架之springMVC框架 springMVC是一种基于java实现的轻量级web框架,它实现了mvc模型。跟之前struts类似。优点:1、使用简单,开发便捷2、比较灵活,具有很强的扩展性spirngMVC实现的mvc模型如下:springMVC核心处理流程:Springmvc的执行过程就是基于一系列的组件来完成的。DispatcherServlet:前端控制器, 是整体流程控制的中心,由其调用其它组件处理用户的请求, 有效的降低了组件间的耦合性。 阅读详情

深入理解B/S与C/S架构.
在这里插入图片描述

一、什么是SpringMVC?

(一)是一种基于Java实现的MVC设计模型的请求驱动类型的轻量级WEB框架。
(二)Spring MVC 通过一套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实现任何接口。
(三)采用了松散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性。

二、那什么是MVC呢?

MVC(Model-View-Controller,模型-视图-控制器)指把页面、后台的交付分成3层来组成,是一种解决页面代码(视图代码)和后台代码分离的设计思想!!

➢ 模型:指封装数据的数据模型
➢ 视图:指的是页面
➢ 控制器:指接收页面发送数据过来的类

三、为什么要学习SpringMVC ?

首先,可能有人会问我们已经学习了Servlet/JSP了。为什么还要学习SpringMVC呢 ?接下来我们分析一下:

(一)servlet的缺点

①数据类型转化,因为http协议传输的和web容器解析后的都是文本类型,那如果遇到货币、日期之类的,我们就需要大量的转化,繁琐易错。
② servlet只有doGet和doPost,一个servlet类只能处理一个url-pattern。

(二)springMVC的好处

➢ 一个请求对一个方法

➢ 自动支持上传组件,支持各种视图解析器

➢ 自动支持JSON的转成

➢ 支持数据的自动封装

四、SpringMVC能干什么?

  1. 天生与Spring框架集成,如:(IOC,AOP)

  2. 支持Restful风格

  3. 进行更简洁的Web层开发

  4. 支持灵活的URL到页面控制器的映射

  5. 非常容易与其他视图技术集成,如:Velocity、FreeMarker等等

  6. 因为模型数据不存放在特定的API里,而是放在一个Model里(Map数据结构实现,因此很容易被其他框架使用)

  7. 非常灵活的数据验证、格式化和数据绑定机制、能使用任何对象进行数据绑定,不必实现特定框架的API

  8. 更加简单、强大的异常处理

  9. 对静态资源的支持

  10. 支持灵活的本地化、主题等解析

五、SpringMVC怎么玩?

(1)入门案例

①创建maven的web项目,导入开发的坐标(spring-context,spring-web,spring-webmvc,servlet-api,jsp-api)
②编写index.jsp主页面和suc.jsp成功页面
③编写controller类(控制器类),方法就可执行

@Controller
public class HolleController {
    @RequestMapping("hello.do")
    public String say(){
        System.out.println("方法执行成功....");
        return "suc";
    }
}

④在web.xml中配置前端控制器

<web-app>
  <display-name>Archetype Created Web Application</display-name>

  <servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

    <!--加载springMVC.xml配置文件,配置的是spring的配置-->
    <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>dispatcherServlet</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

</web-app>

⑤编写springMVC.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">
    <!--扫描包-->
    <context:component-scan base-package="cn.tx.demo"/>
    <!--视图解析器-->
    <bean id="resourceView" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!--跳转页面的路径-->
        <property name="prefix" value="/WEB-INF/"/>
        <!--跳转页面的后缀名称-->
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

⑥启动Tomcat测试

(2)RequestMapping注解

RequestMapping注解的作用是建立请求URL和处理方法之间的对应关系
RequestMapping注解可以作用在方法和类上
作用在类上:第一级的访问目录
作用在方法上:第二级的访问目录

细节:路径可以不编写 / 表示应用的根目录开始

RequestMapping的属性
①path :指定请求路径的url; ② value: value属性和path属性是一样的;
③mthod: 指定该方法的请求方式; ④ params: 指定限制请求参数的条件;

六、请求参数的绑定

①绑定机制
1、表单提交的数据都是k=v格式的 username=haha&password=123;
2、SpringMVC的参数绑定过程是把表单提交的请求参数,作为控制器中方法的参数进行绑定的;
3、要求:提交表单的name和参数的名称是相同的;
②支持的数据类型
1、基本数据类型和字符串类型;2、实体类型(JavaBean);3、集合数据类型(List、map集合等);4、基本数据类型和字符串类型;5、如果一个JavaBean类中包含其他的引用类型,那么表单的name属性需要编写成:对象.属性 例如:address.name;
③给集合属性数据封装:JSP页面编写方式:list[0].属性

(一)请求参数中文乱码的解决

在web.xml中配置过滤器

<filter>
    <filter-name>characterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <!-- 指定字符集 -->
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

(二)自定义类型转换器(解决日期问题)

①第一种方式使用DateTimeFormat注解的方式
直接在要转换格式的日期属性上加注解
例如:@DateTimeFormat(pattern = “yyyy-MM-dd”)

②第二种方式,自定义类型转换器。如果想自定义数据类型转换,可以实现Converter的接口

//自定义类型转换器 把String转换成Date
public class StringToDate implements Converter<String,Date> {
    public Date convert(String s) {
        /*进行数据类型转换的方法*/
        if(s == null){
            throw new RuntimeException("请输入内容");
        }
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-ss");
        try {
            //进行转换
            return sdf.parse(s);
        } catch (ParseException e) {
            //抛出运行异常
            throw new RuntimeException(e);
        }
    }
}

springMVC.xml中注解

<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
    <property name="converters">
        <set>
            <bean class="自定义类型转换器路径"/>
        </set>
    </property>
</bean>

<!--让映射器、适配器和处理器生效(默认不配置也是可以的)-->
<mvc:annotation-driven conversion-service="conversionService" />

七、常用注解

(一)RequestParam注解

作用:把请求中的指定名称的参数传递给控制器中的形参赋值

属性:value:请求参数中的名称;
required:请求参数中是否必须提供此参数,默认值是true,必须提供;
defaultValue:如果没有传请求参数,使用默认值;

(二)RequestBody注解

作用:用于获取请求体的内容(注意:get方法不可以)
属性:required:是否必须有请求体,默认值是true;

(三)PathVaribale注解

作用:拥有绑定url中的占位符的。例如:url中有/delete/{id},{id}就是占位符;
属性:value:指定url中的占位符名称;
Restful风格的URL:请求路径一样,可以根据不同的请求方式去执行后台的不同方法;
restful风格的URL优点:结构清晰、符合标准、易于理解、扩展方便;

①编写新的controller
@Controller
public class EmpController {
    @RequestMapping(path = "/emp",method = RequestMethod.POST)
    public String save(){
        System.out.println("保存数据....");
        return "suc";
    }
    @RequestMapping(path = "/emp",method = RequestMethod.GET)
    public String findAll(){
        System.out.println("查询数据....");
        return "suc";
    }
    @RequestMapping(path = "/emp/{id}",method = RequestMethod.GET)
    public String findById(@PathVariable(value = "id")Integer id){
        System.out.println("通过id查询员工...."+id);
        return "suc";
    }
}
②修改前端控制器的配置文件
<servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

(四)RequestHeader注解

作用:获取指定请求头的值;
属性:value:请求头的名称;

@RequestMapping("/save3.do")
    public String save3(@RequestHeader(value = "Accept") String header){
        System.out.println("Accept请求头的值:"+header);
        return "suc";
    }

(五)CookieValue注解

作用:用于获取指定cookie的名称的值;
属性:value:cookie的名称

@RequestMapping("/save4.do")
    public String save4(@CookieValue(value = "JSESSIONID") String cookie){
        System.out.println("值:"+cookie);
        return "suc";
    }

SpringMVC框架重要知识点总结(二)

光学设计进阶:Zemax中的坐标断点与离轴系统优化 本文深入解析了Zemax中坐标断点的核心原理与实战应用,它是实现离轴光学系统设计的关键。文章通过比喻和实例,详细阐述了如何利用坐标断点作为“方向盘”来精确控制光学元件的偏心和倾斜,实现“前断后接”的局部坐标系变换,从而构建并优化无中心遮拦的离轴反射系统,避免光线失控。 阅读详情

相关推荐

SQLite → PostgreSQL 迁移脚本与踩坑清单

本文提供了SQLite迁移到PostgreSQL的两种可靠路径:首选使用pgloader工具自动转换schema和数据,支持类型映射和并行复制;备选方案通过sqlite3导出CSV再用PostgreSQL的COPY命令导入,适合需要自定义清洗的场景。重点介绍了数据类型映射规则、迁移步骤、校验方法和常见问题,包括自增主键、布尔值、时间类型等关键差异处理。迁移后需进行行数核对、哈希抽样等校验,并给出了性能优化建议。最后强调迁移不仅是数据转移,更需要同步升级数据模型和索引策略,根据业务场景选择合适的数据库方案。

aifs2025的博客 1886

开发规范及常用工具

entity : 是与数据库一一对应的字段vo : 返回给前端的视图对象dto : 前端传过来的参数封装成dto,用于返回给前端的对象,一般用于查询操作。POJO是DO/DTO/BO/VO的统称,禁止命名成xxxPOJO。

weixin_37862824的博客 1037

AGX Orin 部署PyTorch与Torchvision 2026避坑指南

本文提供了2026年在AGX Orin开发板上部署PyTorch与Torchvision的详细避坑指南。针对ARM64架构和JetPack 6.2系统,重点解决了Python 3.10环境配置、官方wheel包安装、torchvision源码编译等关键步骤,并分享了常见问题解决方案和性能优化技巧,确保深度学习环境稳定运行。

sky77的博客 752

SpringMVC

浏览器发送请求,若请求地址符合前端控制器的url-pattern,该请求就会被前端控制器 DispatcherServlet处理。前端控制器会读取SpringMVC的核心配置文件,通过扫描组件找到控制器, 将请求地址和控制器中@RequestMapping注解的value属性值进行匹配,若匹配成功,该注解所标识的 控制器方法就是处理请求的方法。.........

程序员一博 674

别再手动跑定时任务了!Spring Boot项目5分钟集成xxl-job保姆级教程(含Docker部署调度中心)

本文提供Spring Boot项目快速集成xxl-job的保姆级教程,包括Docker部署调度中心的详细步骤。通过实战案例展示如何构建企业级分布式任务调度系统,解决传统定时任务的资源竞争、单点故障等问题,提升开发效率与系统可靠性。

weixin_30315905的博客 291

手把手教你用OpenCompass评估Qwen1.5-1.8B模型(含数据集配置详解)

本文提供了使用OpenCompass评估Qwen1.5-1.8B-Chat模型的详细实战教程。内容涵盖从创建独立Python环境、下载模型与核心数据集,到编写配置文件、执行评测命令及解读结果的完整流程。重点解析了模型与数据集的配置细节,并分享了性能调优与常见问题排查方法,旨在帮助开发者快速上手系统化的模型评估。

weixin_29228781的博客 137

学习 SpringMVC 必备的 4 大知识点

Spring MVC 又称作 Spring Web MVC,是基于 Servlet API 构建的原始 Web 框架。Spring MVC 从一开始就包含在 Spring 框架中,是 Spring 框架的核心模块。

LEE180501的博客 801

实战篇(一):从零构建领域知识图谱——基于Protege的本体建模与知识表示

本文详细介绍了如何从零构建领域知识图谱,重点讲解了基于Protege的本体建模与知识表示方法。通过游戏和电影领域的实战案例,展示了类层次结构设计、属性关系定义、推理验证等关键步骤,帮助读者掌握知识图谱构建的核心技术。

weixin_42613501的博客 481

springmvc知识点总结

第一步:发起请求到前端控制器(DispatcherServlet),前端控制器请求HandlerMapping查找 Handler第二步:处理器映射器HandlerMapping向前端控制器返回Handler第三步:前端控制器调用处理器适配器去执行Handler , 处理器适配器去执行Handler第四步:Handler执行完成给适配器返回ModelAndView , 处理器适配器向前端控制器返回ModelAndView。

weixin_52030010的博客 1018

PCB Layout总结

PCB Layout作为硬件设计中的一个环节,也是很重要的一个环节;在硬件电路设计合理的情况下,他其实是影响性能的一个绝对重要的指标。现在很多的PCB Layout工程师都是按照硬件工程师或者PI SI工程师给出的约束规则来完成布局布线的,这些也就是俗称的 “拉线工”。他们重复而机械的完成一块块PCB设计,一段时间设计后,他们中的一些或许已经有了这样的一些经验:哪些要做等长,哪些要走粗、哪些要平...

xydlxd118的博客 2583

实现自己的AI视频监控系统-第一章-视频拉流与解码4(重点)

使用本章节代码请引用此优快云链接,尊重知识、尊重他人劳动。这一小节将正式进入代码实现部分。我们会结合实际业务需要和拉流解码流程实现一个灵活、轻便、易用的视频拉流解码模块,支持多路视频拉流解码且可以动态更新更新内部参数。在开始设计之初,我们首先考虑的是使用大家所熟知的 **OpenCV(cv2.VideoCapture)**来实现拉流和解码功能。它的 API 简单直接,几行代码就能实现从网络流中读取帧,对于快速原型验证来说非常方便。然而,在经过深入的调研和测试后,我们发现 OpenCV 在处理多路视频流、追

soulproficiency的博客 2268

Spring MVC 知识点全解析

Model:表示应用程序的数据和业务逻辑。View:负责呈现数据的用户界面。Controller:处理用户的请求并返回模型和视图。可以自定义异常类,并在控制器中抛出以便统一处理。拦截器实现接口,可以在请求处理前、后执行逻辑。@Override// 处理前逻辑// 继续请求处理@Override// 处理后逻辑@Override// 完成后逻辑Spring MVC 是一个强大且灵活的框架,适用于构建各种类型的 Web 应用程序。

weixin_62818371的博客 1805

Android日志实战——车机日志获取(十五)

这个项目中的 Log 管理系统,其实只是将系统原生 Log 进行输出并导出,并没有太复杂的操作。还有一种 Log 管理系统需要对 Android 原生 Log 系统进行重写,例如我们使用 Log.d(tag, msg) 打印 Log,需要我们根据 tag 信息将不同模块的 Log 数据写入不同的本地文件下,这样可以方便不同模块查看自己的 Log,追踪异常问题。

小旭的专栏 3779

SpringMVC框架理解

JavaEE体系结构包括四层,从上到下分别是应用层、Web层、业务层、持久层。Struts和SpringMVC是Web层的框架,Spring是业务层的框架,Hibernate和MyBatis是持久层的框架。 为什么要使用SpringMVC? 很多应用程序的问题在于处理业务数据的对象和显示业务数据的视图之间存在紧密耦合,通常,更新业务对象的命令都是从视图本身发起的,使视图对任何业务对象更改都...

Tyshawn的博客 35万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

SpringMVC框架①

SpringMVC是Spring的一个后续产品 是spring的一个子项目SpringMVC是spring为表述层开发提供的一整套完备的解决方案不用写的很复杂 因为springMVC封装了请求响应等功能 所以我们只需使用springMVC为我们提供的实现 各个功能的代码 然后完成一个请求的处理了目前业界普遍选择了SpringMVC作为javaEE项目表述层开发的首选方案框架其实是配置文件加jar包。

weixin_59528719的博客 2052

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

springMVC框架-认识springMVC《一》

SpringMVC 是类似于 Struts2 的一个 MVC 框架,它是属于Spring基本架构里面的一个组成部分,属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面,所以我们在后期和 Spring 进行整合的时候,几乎不需要别的什么配置。

小虚竹的专栏 2万+

【SpringMVC】(一)SpringMVC框架理解

文章目录一、为什么要使用SpringMVC二、MVC设计模式三、SpringMVC架构 本文转载自https://blog.youkuaiyun.com/litianxiang_kaola/article/details/79169148 javaEE体系结构包括四层,从上到下分别是应用层,Web层,业务层,持久层。Struts和SpringMVC是web层的框架,Spring是业务层的框架,Hibernat...

siting97的博客 829

SpringMVC框架——初学知识点篇1

SpringMVC框架 1.MVC模型: Model(模型):通常指的就是我们的数据模型,主要作用用于封装数据 View(视图):通知指的的是.html或者.jsp 应用,作用一般是进行数据展示的。 Controller(控制):通常指应用程序中处理用户交互的部分,作用就是处理程序的逻辑。 2.SpringMVC在三层架构的位置 Mybatis负责处理数据访问层 ...

qq_57205114的博客 1457

SpringMVC框架

SpringMVC与三层架构的区别,基本概念,执行流程与基础搭建

weixin_72899212的博客 2260

SpringMvc完整知识点一

SpringMvc快速入门、SpringMvc配置文件及配置类形式、SpringMvc数据响应

cgrs5572的博客 1643

SpringMVC框架基本使用

目录 一、SpringMVC概述 1、简介 2、MVC模型 3、框架架构关系图 4、SpringMVC优势 二、SpringMVC入门案例 1、SpringMVC环境搭建 【1】创建maven工程 【2】导入 jar 包 【3】配置前端控制器 【4】创建SpringMVC配置文件 【5】创建控制器类 【6】创建跳转页面 【7】部署服务器并启动 2、SpringMVC ...

ONESTARの博客 6971

SpringMVC(一)——流程框架总体介绍

SpringMVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能MVC 模块 ,其功能和Strtus2,Struts1是类似的,只不过是实现的原理不同而已。其中Struts2是通过过滤器来实现路劲和action的映射等控制流转功能,而Struts1和SpringMVC则是通过最传统的servlet

学会改变自己——才能突破 4万+

SpringMVC核心知识点梳理

1.1 Springmvc是什么? SpringMvc是spring的一个模块,基于MVC的一个框架 无需中间整合层来整合 。 1.2 框架结构 1.3 架构流程 1、用户发送请求至前端控制器DispatcherServlet 2、DispatcherServlet收到请求调用HandlerMapping处理器映射器 3、处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器...

初学者乐园的博客 4226

Spring+SpringMVC+MyBatis框架知识点

Spring+SpringMVC+MyBatis框架知识点

zmw1502的博客 1066

SpringMVC框架知识点记录

什么是SpringMVC? SpringMVC是Spring的一个模块,是基于Java实现了MVC设计模式的一个轻量级WEB框架,该框架把模型model,视图view,控制器controller分离,实现了职责解耦(前端页面的展示,业务数据的处理),简单开发,易上手。 MVC设计模式的好处: 1. 分层设计,实现了业务系统各个组件之间的解耦,有利于业务系统的可扩展性,可维护性。 2. 有利...

m0_37718872的博客 381

SpringMVC框架(一)

一、概述 SpringMVC是一种基于Java的实现了MVC设计模式的Web框架,它也是属于Spring旗下的一个子项目。 使用SpringMVC框架的好处: 简化web层的开发工作,提高开发效率; 因为它是Spring框架的一部分,不需要额外导入jar包; 功能强大,可以很好与其他技术整合; 二、入门实例 第一步:由于springmvc是spring框架的一部分,所以只需要把spring里面...

zhongliwen1981的专栏 1007

Springmvc知识点总结

Springmvc知识点总结 文章目录Springmvc知识点总结1、什么是Spring MVC ?简单介绍下你对springMVC的理解?2、springmvc流程3、springmvc的主要组件4、springmvc的优点5、SpringMVC重定向和转发的6、springMVC和struts2的区别7、springmvc常用注解8、springmvc异常处理9、springmvc拦截器的初步...

烟雨gps 1762
上一篇: Spring框架重要知识点总结(四)
下一篇: javaScript实现多球运动
智汇风渔AI小白
博客等级 码龄7年 1万+粉丝 179原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智汇风渔AI小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值