spring mvc笔记

springMVC最全笔记,一篇就够 springMVC最全笔记内容 阅读详情

1.跟踪mvc请求



请求会由DispatcherServlet分配给控制器(Controller)根据Handler mapping来确定,在Controller完成处理后,接着请求会被发送给一个视图(View)由ViewResolver来确定


2.搭建mvc

     <servlet>
        <servlet-name>mvc-demo</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>


servlet-name 很重要 默认情况下DispatcherServlet在加载时会从一个基于servlet-name的xml文件mvc-demo-servlet.xml位于WEB-INF目录下

接下来我们必须声明DispatcherServlet处理哪些URL比较常见的DispatcherServlet匹配模式是*.htm,/*或者/app 但这些模式都存在一些问题


将其匹配到/*上的话,没有映射制定类型的响应,它表明DispatcherServlet将处理所有的请求。这会在处理图片或者样式表这样的静态资源时带来不必要的麻烦

/app模式 帮助我们区分了dispatcherServlet处理的内容和其他内容,但这样就会在URL中暴露实现的细节(具体来说是/app路径)为了隐藏/app路径通常需要复杂的URL重写技巧

为了不使用有缺陷的servlet匹配模式,更倾向使用

<servlet-mapping>
    <servlet-name>mvc-demo</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

通过映射到/ 声明会处理所有的请求,包括对静态资源的请求。

Spring提供了一个方便的配置,使得我们不必过于担心细节Spring的Mvc明明空间包含了一个新的<mvc:resources>元素,他会处理静态资源的请求。

<mvc:resources mapping="/resources/**" location="/resources/"></mvc:resources>


3.配置注解驱动的Spring mvc 

DispatcherServlet需要咨询一个或多个处理器映射来明确地将请求分发给哪个控制器。Spring自带了多个处理器映射实现供我们选择。

BeanNameUrlHandlerMapping:根据控制器bean的名字将控制器映射到URL

ControllerBeanNameHandlerMapping:与BeanNameUrlHandlerMapping类似,根据控制器Bean的名字将控制器映射到URL。使用该处理器映射实现,

Bean的名字不需要遵循URL的约定。

ControllerClassNameHandlerMapping 通过使用控制器的类名作为URL基础将控制器映射到URL

DefaultAnnotationHandlerMapping 将请求映射给使用@RequestMapping注解控制器

SimpleUrlHandlerMapping 使用定义在Spring应用上下文的属性集合将控制器映射到URL


4.定义控制器

@Controller注解表明这是一个控制器类,这个类是@Component是注解的一种具体化,也就是说<context:component-scan>将查找使用@Component注解那样

这意味着需要在配置文件中配置一个<context:component-scan>这样Controller类将会自动被发现并注册为Bean.


@RequestMapping注解指明方法要处理的路径请求


5.解析视图

为了确定指定的请求需要使用哪个视图,DispatcherServlet会查找一个视图解析器来将控制器返回的逻辑视图名称转换成渲染结果的实际视图

实际上,视图解析器的工作是将逻辑视图的名字与org.springframework.web.servlet.View的实现相匹配。


6.完成Spring应用上下文

DispatcherServlet会根据一个xml文件来加载其Spring应用上下文,而这个文件的名字基于它的servlet-name来确定

contextLoaderListener是一个Servlet监听器,除了DispatcherServlet创建的应用上下文以外,它能够加载其他配置文件。

为了使用ContextLoadListener需要在web.xml文件中添加如下的Listener声明


<listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

必须告诉ContextLoaderListener需要加载那些配置文件。如果没有指定,上下文加载器会查找/WEB-INF/applicationContext.xml

这个配置文件。但这个文件本身并没有做到将应用上下文拆分为多个片段,所以我们要重写默认实现。


为了给ContextLoaderListener指定一个或多个Spring配置文件,需要在servlet上下文配置contextConfigLocation参数

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>
  classpath:service-context.xml
  
  </param-value>
</context-param>

7.@RequestMapping 

类级别的@RequestMapping定义了这个控制器所处理的根URL路径。最终会在Controller中添加多个处理方法,每个方法处理不同的请求,但请求必须都以

类级别@RequestMapping配置的路径名开头


方法级别的@RequestMapping缩小了类级别所定义的@RequestMapping路径匹配。method属性表明Http的请求类型

params参数能够限制处理方法只对包含特定参数的请求进行处理。


@RequestParam注解表明它的值应该根据请求的参数来获取。


在方法中可以传递Map<String,Object>或者Model参数。Model提供了几个更便利的方法来填充模型

如:addAttribute()与map的put方法所做的事情完全一样,只不过它能够自己计算出map的键部分,key为类名


@Valid注解 这表明Spitter在传入之前需要通过校验。



8.重定向

前缀redirect:说明请求将被重定向到指定路径。对于重定向的路径,将采用/xxx/{yyy}这样的形式

9.处理带有路径变量的请求

@ReqeustMapping(value="/{yyy}",method=RequestMethod.GET)


10.校验输入

@Valid注解是防御错误表单输入的第一道防线,@Valid是JSR-303的一部分。

如果校验出错的话,检验错误将会作为第二个参数以BindingResult的形式传递给方法,

如果BindingResult的hasErrors方法返回true就意味着校验失败了。


展现校验错误

为用户展现这些错误的一种方式就是通过BindingResult的getFieldError()方法来获取字段的错误

但更好的一种方式是使用Spring的表单绑定Jsp标签库

<sf:errors>


11.文件上传





Spring全家桶笔记:Spring+Spring Boot+Spring Cloud+Spring MVC 阅读详情

相关推荐

关于spring MVC的一些笔记

M Model(模型)V View(视图)C Controller(控制器)V 发送请求给C选择模型,进行处理M返回处理结果C响应建立连接------请求-----------响应关于一些注解@RequestMapping("/user") 1.可以标识一个类 2.也可以标识一个方法通过标识类和方法,就可以通过url http://127.0.0.1:8080/user/....来访问特定的方法1.get和post请求都可以2.如果想要指定Post或者GET就添加method。

2301_80548180的博客 174

SpringMVC-2-Controller和RestFul风格

SpringMVC:Controller控制器、RestFul风格、重定向与转发、请求参数与数据回显、乱码处理

baidu_38126306的博客 597

号称最全的Spring全家桶笔记:Spring+Spring Boot+Spring Cloud+Spring MVC

最近小编整理了一下一线架构师的Spring全家桶笔记:Spring+Spring Boot+Spring Cloud+Spring MVC,分享给大家一起学习一下~ 01 Spring Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spr

Java技术开发工程师的博客 491

SpringMVC 笔记

SpringMVC学习笔记

menergy 1003

cmu15445 2023fall project4 详细过程(包括Bonus Tasks) Concurrency Control

CMU15-445 23fall project 4详解

LA的博客 1604

n8n 快速入门1:构建一个简单的工作流

n8n 快速入门指南

engchina的专栏 1万+

SpringMVC的学习笔记(整合)

SpringMVC初学经历笔记

weixin_52938172的博客 2228

【CubeMX】STM32G474 HRTIM 死区时间与互补PWM实战解析

本文深入解析STM32G474的HRTIM高分辨率定时器在互补PWM生成与死区时间配置中的应用。通过CubeMX工具详细演示时钟配置、单路PWM基础、互补输出与死区时间设置,并结合逆变器等电力电子实战案例,帮助开发者避免直通风险,优化系统性能。

efc12345678的博客 746

SpringMVC学习笔记

学习笔记

2301_80073794的博客 1777

Java写项目前的准备工作指南(技术栈选择 环境搭建和工具配置 项目结构设计与模块划分)

在开始编写一个 Java 项目之前,做好充分的准备工作是至关重要的。很多初学者可能在没有清晰规划的情况下就开始编写代码,导致项目开发进度缓慢、结构混乱,甚至最终无法按预期完成。而事实上,项目的成功不仅仅取决于编码能力,还包括项目初期的规划和准备。准备工作是确保项目顺利进行的基础,它包括技术选型、环境搭建、需求分析、团队协作及项目管理等多个方面。通过这些准备,我们可以确保项目的开发不仅高效而且有可维护性,最终能交付出高质量的代码。在项目开发过程中,异常处理是非常关键的一部分。

eternal__day的博客 1188

二阶高通滤波器硬件设计:5种RC到有源方案对比与选型

在传感器前端和音频信号调理中,二阶高通滤波器是抑制直流偏移与低频干扰的关键模块。其设计核心围绕截止频率、品质因数Q、增益与噪声四个指标展开,其中Q值决定滤波器在转折频率附近的响应形状,如Butterworth最大平坦响应需Q=0.707。从纯无源RC电路到引入运放的有源拓扑,演变逻辑在于解决负载效应、提供增益并借助反馈提升Q值。实际工程中,RC级联、VCVS(Sallen-Key)、状态变量及回转器模拟电感等方案各有适用场景:RC电路简单但Q值受限,Sallen-Key单运放即可实现高Q,状态变量适合Q值独

weixin_32770423的博客 99

Spring MVC笔记

Spring MVC笔记 Spring MVC是Spring提供给我们的一个简化web开发的框架 第一部分Spring MVC 应⽤ 第一节Spring MVC 简介 1.1Spring MVC 简介 三层架构 我们的开发架构⼀般都是基于两种形式,⼀种是 C/S 架构,也就是客户端/服务器;另⼀种是 B/S 架构 ,也就是浏览器服务器。在 JavaEE 开发中,⼏乎全都是基于 B/S 架构的开发。那么在 B/S 架构中,系 统标准的三层架构包括:表现层、业务层、持久层。三层架构在我们的实际开发中使⽤的⾮常多

Author1thy的博客 351

先进封装Interposer仿真步骤及说明

摘要: Interposer仿真是2.5D/3DIC封装设计的关键环节,涵盖信号完整性(SI)、电源完整性(PI)、热及结构应力分析。流程分为五个阶段:1)前处理,定义层叠结构与材料属性;2)参数提取,通过3D电磁建模获取TSV、传输线等寄生参数;3)仿真设置,选择求解器并设定频率范围;4)结果分析,评估信号损耗、阻抗及电源网络性能;5)后处理,进行多物理场协同仿真并生成模型。核心挑战在于多尺度与多物理场耦合,需优先确保高速信号与电源网络的仿真精度。常用工具包括Ansys HFSS、Cadence Sigr

DSY_0324的博客 1348

Spring MVC复习笔记

/ 使用@RequestBody注解,可以将请求体中的数据反序列化成您指定的对象类型,适用于传输数据为一个自定义的对象要求添加 Jackson 依赖(Spring Boot 默认包含)请求头设置支持校验注解(如@NotBlank。

2302_77465225的博客 779

最新Python爬虫实战(入门爬虫篇)——案例18:某气象局全国天气预报数据采集(详细爬虫思路截图 + 抓包动图演示+完整爬虫代码+详细注释)

本次案例针对某气象局天气预报网的静态HTML页面,实现了全国各地区天气数据的全自动化爬取,和之前案例17的动态接口爬虫不同,本次案例聚焦于静态页面的爬虫实现,覆盖了从抓包分析、请求模拟、数据解析到数据存储的完整爬虫流程,非常适合入门学习者巩固基础,核心知识点和实现要点总结如下:首先是页面分析的核心逻辑,静态HTML页面的数据爬取,核心在于通过浏览器开发者工具,完成完整的抓包分析和标签结构定位。

努力让自己发光,对的人才能迎着光而来 27万+

Windows 镜像包大全(附百度云下载链接)

插入U盘,找到下载好的两个驱动软件,并安装,先打开驱动人生万能网卡版,安装好网卡驱动,可以接入wifi或者网线了,然后打开驱动精灵,按照提示,安装所有的驱动(中间要是让你重启,就先选择稍后再说,如果有的驱动安装好之后非要你重启,关不掉的那种,那你就重启吧),等全部安装好了,重启电脑。如果你有显卡,这里以英伟达举例,我是GTX960的,当你的驱动都安装好后,右键桌面,会出现一个英伟达控制面板。安装软碟通,下载之后,一直下一步就ok,啥也不用配置,到了最后一项点击“继续试用”即可。(下载里面的网卡版即可),

悦分享 7360

【Spring】Spring MVC笔记

spring mvc

triticale的博客 1262

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Rhyme/Spring MVC完整学习笔记

Spring MVC学习笔记

RhymeChiang 343

VB摄像头监控

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

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Spring MVC 学习笔记 第二章 Spring MVC注解

Spring MVC 学习笔记 第二章 Spring MVC注解 常用注解: 注解 说明 @RequestMapping Spring MVC通过@RequestMapping注解将URL请求与业务方法进行映射,在Handle的类定义处以及方法定义处都可以添加 @RequestMapping 在类定义处添加,相当于客户端多了一层访问路径。 @Controller 在类的定义...

qq_41684416的博客 1241

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

spring-MVC简写笔记

spring-MVC简写笔记 Spring MVC是什么? Spring MVC是Spring家族中的⼀个web成员,它是⼀种基于Java的实现了Web MVC设计思想的请求驱动类型的轻量级Web框架,即使⽤了MVC架构模式的思想,将web层进⾏职责解耦,基于请求驱动指的就是使⽤请求-响应模型,框架的⽬的就是帮助我们简化开发,Spring MVC也是要简化我们⽇常Web开发的。 spring-MVC基本流程 第一步:发起请求到前端控制器(DispatcherServlet) 第二步:前端控制器请求Han

qq_43709204的博客 213

Spring MVC 超详细学习笔记

Spring MVC介绍 MVC M:Model 封装实体和处理业务逻辑 V:View 展示界面 C:Controller 调度展示,分发请求 Spring MVC概述 轻量级java MVC框架 支持REStful编程风格 完成了Servelet共有的行为 快速入门 引入依赖并指定打包为war包 pom.xml <packaging>war</packaging> <dependencies> <!-- https://mvnr

Twillz的博客 572

Spring MVC 学习笔记 十五 what's new in spring mvc 3.1

原文地址:http://starscream.iteye.com/blog/1098880

470

Spring 4 学习笔记7:MVC 配置(JAVA方式)

Spring MVC Java 配置方式介绍,使用 Servlet 3.0 支持的 Java 配置来配置 web 应用程序。

acherie的博客 1万+
上一篇: wildfly 入门
下一篇: spring 数据库
GeoJava
博客等级 码龄19年 3粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值