21.SSM框架-SpringMVC

news/2024/5/3 0:55:05/文章来源:https://blog.csdn.net/khmff/article/details/129995452

目录

一、SpringMVC。

(1)SpringMVC快速入门。

 (2)SpringMVC的数据响应方式。

(1)页面跳转。

(2)回写数据。

(3)获取请求参数。

(4)请求数据乱码问题。 

(5)参数绑定注解。

(6)获取Restful风格的参数。 

(7)自定义类型转换器。

(8)获取Servlet相关API (请求头等)。

(9)文件上传。

(1)文件上传客户端的三要素。

(2)单文件上传。

(3)多文件上传。

(10)知识总结。 


一、SpringMVC。

(1)SpringMVC快速入门。

@Controller是Spring框架中的一个注解,用于标注一个类为控制器。在Spring MVC应用程序中,控制器类负责接收和处理浏览器发来的请求,然后调用相应的业务逻辑进行处理,并最终返回响应结果。

@Controller注解会将标注的类注册为Spring容器中的Bean对象,并自动识别其中标注了@RequestMapping注解的方法作为请求处理方法。

@Controller注解作为Spring框架中的一个组件(Bean)的标识,在Spring和Spring MVC框架中使用时,有一些细微的区别:

在Spring框架中,@Controller注解用于定义一个类作为Spring容器中的组件(Bean),让Spring容器对其进行实例化和管理,并表明该类是应用程序中的控制器(Controller)。在这种情况下,控制器主要处理业务逻辑,而不是HTTP请求和响应。因此,它可以与其他技术(如JSP、Thymeleaf等)结合使用,实现Web应用程序开发的完整流程。

而在Spring MVC框架中,@Controller注解用于定义一个类作为处理客户端HTTP请求的控制器。通过使用@Controller注解,我们可以将请求路由到相应的处理方法上,从而实现对请求进行处理并返回数据到视图层。在这种情况下,控制器类通常包含多个带有@RequestMapping注解的方法,以实现不同的业务逻辑。

注意:要在web.xml中配置DispatcherServlet(前端控制器)等组件后,springMVC就会让控制器类(标识了@Controller的类)负责接收和处理浏览器发来的请求,还需要结合@RequestMapping注解进行方法级别的映射配置,以使Spring MVC框架能够将请求路由到相应的处理方法上。

<!--配置SpringMVC的前端控制器--><servlet><servlet-name>DispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value><!--spring-mvc.xml是在resources目录下--></init-param><load-on-startup>1</load-on-startup><!--表示服务器一启动就加载,不配置的话,第一次访问时再加载--></servlet><servlet-mapping><servlet-name>DispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
@Controller//没有这个注解访问不了这个类的方法,标识这个类作为springMVC的控制器
@RequestMapping("/user")//不在类上面使用这个注解:http://localhost:8080/quick,在类上使用注解:http://localhost:8080/user/quick
public class UserController {
//    @RequestMapping(value = "/quick",method = RequestMethod.GET,params = {"username","address","age!=100"})@RequestMapping(value = "/quick")public String  save(){System.out.println("Controller save running....");return "success";}@RequestMapping(value = "/quick2")public ModelAndView save2(){/*** Model:模型  作用封装数据* View: 视图  作用展示数据*/ModelAndView modelAndView = new ModelAndView();//设置视图名称modelAndView.addObject("username","itcast");modelAndView.setViewName("success");return modelAndView;}@RequestMapping(value = "/quick3")public ModelAndView  save3(ModelAndView modelAndView){modelAndView.addObject("username","itheima");modelAndView.setViewName("success");return modelAndView;}
}

 (2)SpringMVC的数据响应方式。

(1)页面跳转。

(2)回写数据。

(3)获取请求参数。

(4)请求数据乱码问题。 

(5)参数绑定注解。

(6)获取Restful风格的参数。 

(7)自定义类型转换器。

(8)获取Servlet相关API (请求头等)。

(9)文件上传。

(1)文件上传客户端的三要素。

(2)单文件上传。

(3)多文件上传。

(10)知识总结。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_283294.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringSecurity实战解析

文章目录一、Security认证和原理1、认证基本流程1.1 表单认证概述1.2 基本流程分析1.3 权限访问流程2、请求间共享认证信息2.1 概述2.2 获取认证用户信息3、认证的几种方式4、注解权限4.1 概述4.2 Secured注解使用方式4.3 jsr250Enabled4.4 prePostEnabled 规范(重要)5、自定义…

【数据结构初阶】二叉树OJ题

⭐博客主页&#xff1a;️CS semi主页 ⭐欢迎关注&#xff1a;点赞收藏留言 ⭐系列专栏&#xff1a;数据结构初阶 ⭐代码仓库&#xff1a;Data Structure 家人们更新不易&#xff0c;你们的点赞和关注对我而言十分重要&#xff0c;友友们麻烦多多点赞&#xff0b;关注&#xff…

Flume笔记

Flume 概念 高可用、高可靠&#xff0c;分布式海量日志采集、聚合和传输的系统。 主要作用&#xff1a;实时读取服务器本地磁盘的数据&#xff0c;将数据写入到HDFS 组成 Agent&#xff0c;JVM进程&#xff0c;以事件的形式将数据从源头送到目的地 Agent分为Source、Chann…

李宏毅2021春季机器学习课程视频笔记5-模型训练不起来问题(当梯度很小的时候问题)

求解最小Loss的失败&#xff0c;不能得到最优的值&#xff0c;找不到Loss足够小的值。 1.Loss关于参数的梯度为0&#xff0c;不能继续更新参数。&#xff08;local minima 或者 saddle point&#xff09;如何知道走到了哪个点&#xff1f; 利用泰勒展开&#xff1a; Critical P…

免费ChatGPT接入-国内怎么玩chatGPT

免费ChatGPT中文版 OpenAI 的 GPT 模型目前并不提供中文版的免费使用&#xff0c;但是有许多机器学习平台和第三方服务提供商也提供了基于 GPT 技术的中文版模型和 API。下面是一些常见的免费中文版 ChatGPT&#xff1a; Hugging Face&#xff1a;Hugging Face 是一个开源社区…

Mysql主备一致性保证

大家知道 bin log 既可以用来归档&#xff0c;又可以用来做主备同步。有人可能会问&#xff0c;为什么备库执行了 bin log 就可以跟主库保持一致了呢&#xff1f;bin log的内容是什么样的呢&#xff1f;今天我们就来聊聊它。 在最开始&#xff0c;Mysql 是以容易学习和方便的高…

JDK1.8下载与安装完整教程

目录 一、获取安装资源 1、百度网盘共享 2、官方网站下载(百度网盘文件下载下来有问题情况下) 2.1、搜索jdk官方网站 2.2、进到官网下拉找到Java8&#xff0c;选择Windows 2.3、下载安装程序(下载要登录&#xff0c;没有账号就注册就行) 二、正式安装 1、先在D盘(不在C…

【模型复现】Network in Network,将1*1卷积引入网络设计,运用全局平均池化替代全连接层。模块化设计网络

《Network In Network》是一篇比较老的文章了&#xff08;2014年ICLR的一篇paper&#xff09;&#xff0c;是当时比较厉害的一篇论文&#xff0c;同时在现在看来也是一篇非常经典并且影响深远的论文&#xff0c;后续很多创新都有这篇文章的影子。[1312.4400] Network In Networ…

蓝桥杯刷题冲刺 | 倒计时1天

作者&#xff1a;指针不指南吗 专栏&#xff1a;蓝桥杯倒计时冲刺 &#x1f43e;蓝桥杯加油&#xff0c;大家一定可以&#x1f43e; 文章目录我是菜菜&#xff0c;最近容易我犯的错误总结 一些tips 各位蓝桥杯加油加油 当输入输出数据不超过 1e6 时&#xff0c;scanf printf 和…

elasticsearch基础6——head插件安装和web页面查询操作使用、ik分词器

文章目录一、基本了解1.1 插件分类1.2 插件管理命令二、分析插件2.1 es中的分析插件2.1.1 官方核心分析插件2.1.2 社区提供分析插件2.2 API扩展插件三、Head 插件3.1 安装3.2 web页面使用3.2.1 概览页3.2.1.1 unassigned问题解决3.2.2 索引页3.2.3 数据浏览页3.2.4 基本查询页3…

微服务+springcloud+springcloud alibaba学习笔记(1/9)

1.微服务简介 什么是微服务呢&#xff1f; 就是将一个大的应用&#xff0c;拆分成多个小的模块&#xff0c;每个模块都有自己的功能和职责&#xff0c;每个模块可以 进行交互&#xff0c;这就是微服务 简而言之&#xff0c;微服务架构的风格&#xff0c;就是将单一程序开发成…

项目管理案例分析有哪些?

项目管控中遇到的问题有哪些&#xff1f;这些问题是如何解决的&#xff1f; 在项目管理领域&#xff0c;案例分析是一种常见的方法来学习和理解项目管理实践&#xff0c;下面就来介绍几个成功案例&#xff0c;希望能给大家带来一些参考。 1、第六空间&#xff1a;快速响应个性…

1669_MIT 6.828 xv6代码的获取以及编译启动

全部学习汇总&#xff1a; GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 6.828的学习的资料从开始基本信息的讲解&#xff0c;逐步往unix的一个特殊版本xv6过度了。这样&#xff0c;先得熟悉一下这个OS的基本代码以及环境。 在课程中其实…

最短路径算法及Python实现

最短路径问题 在图论中&#xff0c;最短路径问题是指在一个有向或无向的加权图中找到从一个起点到一个终点的最短路径。这个问题是计算机科学中的一个经典问题&#xff0c;也是许多实际问题的基础&#xff0c;例如路线规划、通信网络设计和交通流量优化等。在这个问题中&#…

Downloader工具配置参数并烧录到flash中

1 Downloader工具介绍 Downloader工具可以用来烧录固件到设备中&#xff0c;固件格式默认为*dcf。该工具还可以用来在线调试EQ或者进行系统设置。 2 配置参数 2.1 作用 当有一个dcf文件时&#xff0c;配合不同的配置文件*.setting&#xff0c;在不进行编译的情况下&#xff…

【毕业设计】ESP32通过MQTT协议连接服务器(二)

文章目录0 前期教程1 前言2 配置SSL证书3 配置用户名和密码4 配置客户端id&#xff08;client_id&#xff09;5 conf文件理解6 websocket配置7 其他资料0 前期教程 【毕业设计】ESP32通过MQTT协议连接服务器&#xff08;一&#xff09; 1 前言 上一篇教程简单讲述了怎么在虚拟…

【调试】ftrace(三)trace-cmd和kernelshark

之前使用ftrace的时候需要一系列的配置&#xff0c;使用起来有点繁琐&#xff0c;这里推荐一个ftrace的一个前端工具&#xff0c;它就是trace-cmd trace-cmd安装教程 安装trace-cmd及其依赖库 git clone https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git/ c…

【Ruby学习笔记】19.Ruby 连接 Mysql - MySql2

Ruby 连接 Mysql - MySql2 前面一章节我们介绍了 Ruby DBI 的使用。这章节我们技术 Ruby 连接 Mysql 更高效的驱动 mysql2&#xff0c;目前也推荐使用这种方式连接 MySql。 安装 mysql2 驱动&#xff1a; gem install mysql2你需要使用 –with-mysql-config 配置 mysql_conf…

【DevOps】GitOps 初识(下) - 让DevOps变得更好

实践GitOps的五大难题 上一篇文章中&#xff0c;我们介绍了GitOps能为我们带来许多的好处&#xff0c;然而&#xff0c;任何新的探索都将不会是一帆风顺的。在开始之前&#xff0c;如果能了解实践GitOps通常会遇到的挑战&#xff0c;并对此作出合适的应对&#xff0c;可能会使…

数据结构和算法(一):复杂度、数组、链表、栈、队列

从广义上来讲&#xff1a;数据结构就是一组数据的存储结构 &#xff0c; 算法就是操作数据的方法 数据结构是为算法服务的&#xff0c;算法是要作用在特定的数据结构上的。 10个最常用的数据结构&#xff1a;数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树 10…