SpringMVC的请求处理

请求映射路径的配置

  • 请求映射路径的配置主要是通过@RequestMapping注解实现的
  • 相关注解作用使用位置
    @RequestMapping设置控制器方法访问路径的资源,可以接收任何请求方法和类上
    @GetMapping设置控制器方法访问路径的资源,可接收GET请求方法和类上
    @PostMapping设置控制器方法访问路径的资源,可接收Post请求方法和类上

请求数据的接收

参数的接收在JavaWeb后端SpringBoot专栏已经进行了学习,此处就不再赘述。感兴趣可以去我主页对应专栏进行阅读。主页传送门:内容管理-CSDN创作中心

  • 接收Restful风格的数据

  • 什么是Restful风格?

    • Rest(表象化状态转变/表述性状态转变),在2000年被提出,基于HTTP,URI,xml,JSON等标准和协议,支持轻量级、跨平台、跨语言架构设计。是Web服务的一种新网络应用程序的设计风格和开发方式。 
  • 常用规则
    • 用URI表示某个模块资源,资源名称为名词:
    • 模块

      URI资源

      用户模块userhttp://localhost/user
      商品模块producthttp://localhost/product
      账户模块accounthttp://localhost/account
      日志模块loghttp://localhost/log
  • 用HTTP响应状态码表示结果,国内常用的响应包括三部分:状态码、状态信息、响应数据


  •  
  • Restful风格参数是通过路径参数进行传递的,具体可以参照文章:请求响应-路径参数的接收_保持敬畏的博客-CSDN博客
  •  接收上传文件

  • 接收上传文件的数据,文件上传的表单有一定的要求:如下
    • 表单的提交方式必须是POST
    • 表单的enctype属性必须是,multipart/form-data
    • 文件上传需要name属性
       
  • 具体可以参照文章:SpringBoot案例-文件上传_保持敬畏的博客-CSDN博客
  •  虽然使用了不同的框架但是对于原理介绍是一样的。
  • 获取headers头信息和cookie信息

    • 接收Http请求头数据,接受指定名称的数据头
    • package com.example.Controller;import com.example.Service.Service01;
      import org.springframework.beans.factory.annotation.Autowired;
      import org.springframework.stereotype.Controller;
      import org.springframework.web.bind.annotation.RequestHeader;
      import org.springframework.web.bind.annotation.RequestMapping;import java.util.Map;@Controller
      public class Controller01 {@Autowiredprivate Service01 service01;@RequestMapping("/show")// 获取指定请求头信息public String show(@RequestHeader("Accept-Encoding") String requestHeader) {System.out.println(requestHeader);return "/index.jsp";}@RequestMapping("/show1")// 获取所有请求头信息public String show1(@RequestHeader Map<String, String> requestHeader) {requestHeader.forEach((k, v) -> {System.out.println(k + "====" + v);});return "/index.jsp";}
      }
      
  • 启动web服务器后就可以,请求对应的路径
  • 请求show路径,终端输出
  • 请求show1
  • 终端输出
  • 获取客户端携带的Cookie数据
  • 关键代码如下
  • package com.example.Controller;import com.example.Service.Service01;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.CookieValue;
    import org.springframework.web.bind.annotation.RequestMapping;@Controller
    public class Controller01 {@Autowiredprivate Service01 service01;@RequestMapping("/show")// 获取Cookie信息public String show(@CookieValue(value = "JSESSIONID", defaultValue = "") String requestHeader) {System.out.println(requestHeader);return "/index.jsp";}}
    


     

后天再来,p124

JavaWeb常用对象获取

请求静态资源

注解驱动<mvc:annotation-driven>标签

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

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

相关文章

Step 1 搭建一个简单的渲染框架

Step 1 搭建一个简单的渲染框架 万事开头难。从萌生到自己到处看源码手抄一个mini engine出来的想法&#xff0c;到真正敲键盘去抄&#xff0c;转眼过去了很久的时间。这次大概的确是抱着认真的想法&#xff0c;打开VS从零开始抄代码。不知道能坚持多久呢。。。 本次的主题是搭…

Linux运行环境搭建系列-虚拟机安装

Virtual Box 搭建虚拟机 注意&#xff1a;需要开启CPU的虚拟化。 1. Virtual Box安装包和 ISO镜像文件&#xff1a;自备。 2. 创建虚拟机&#xff1a;打开Virtual Box&#xff0c;点击“新建”按钮1. 输入虚拟机名称2. 设置文件夹为非C盘3. 选择操作系统为Linux&#xff0c;选择…

go语言基础之常量与itoa

视频学习地址&#xff1a;Go零基础入门_在线视频教程-CSDN程序员研修院 一. 常量 定义&#xff1a;常量是一个简单值的标识符&#xff0c;在程序运行时&#xff0c;不会被修改的量。注意&#xff1a;常量中的数据类型只可以是布尔型、数字型&#xff08;整数型、浮点型和复数…

centos8 jenkins 搭建和使用

一、安装jenkins 直接war包搭建下载地址&#xff1a;https://get.jenkins.io/war-stable/ 下载稳定长期版本 二、jenkins 启动依赖java, 安装java sdk &#xff0c;好像支持java 11和17版本&#xff0c;21版本不支持会报错 下载sdk地址&#xff0c;https://www.oracle.com/j…

idea(添加jsp文件模板)

初始jsp模板代码&#xff1a; <%-- Created by IntelliJ IDEA. User: ${USER} Date: ${DATE} Time: ${TIME} To change this template use File | Settings | File Templates. --%> <% page contentType"text/html;charsetUTF-8" language&q…

局域网上IP多播与IP单播关于MAC地址的区别

IP单播进行到局域网上的时候&#xff1a; 网际层使用IP地址进行寻址&#xff0c;各路由器收到IP数据报后&#xff0c;根据其首部中的目的IP地址的网络号部分&#xff0c;基于路由表进行查表转发。 查表转发的结果可指明IP数据报的下一跳路由器的IP地址&#xff0c;但无法指明…

SpringCloud小项目——订单积分商城 使用Nacos、Open Feign、Gateway、Sentinel技术栈

目录 引出小项目要求创建极简数据库表订单表&#xff0c;订单明细表商品表积分表 相关微服务积分微服务产品微服务订单微服务调用积分和订单微服务 网关微服务登陆认证通过网关实现对外提供接口API走网关功能 sentinel相关使用Sentinel限流&#xff0c;流量整形Sentinel降级服务…

Flink自定义sink并支持insert overwrite 功能

前言 自定义flink sink&#xff0c;批模式下&#xff0c;有insert overwrite 需求或需要启动任务或任务完成后时&#xff0c;只执行一次某些操作时&#xff0c;则可参考此文章 分析 待补充 步骤 待补充

Python正则表达式

正则表达式 当处理文本数据时&#xff0c;正则表达式是一种强大的工具&#xff0c;它允许我们根据特定的模式来匹配、搜索和处理字符串。 正则表达式由一系列字符和特殊字符组成&#xff0c;用于描述文本模式。这些模式可以包含普通字符&#xff08;如字母、数字和标点符号&a…

kafka 开启认证授权

前言 1、前面自己写了一篇关于各个环境各个模式的安装的文章&#xff0c;大家可以去看看 kafka各种环境安装(window,linux,docker,k8s),包含KRaft模式 2、使用版本 kafka_2.13-3.4.1 3、kafka验证方式&#xff0c;有两大类如下&#xff0c;文档内容在 kafka官方文档的 第七节…

蓝桥杯每日一题2023.10.14

年号字串 - 蓝桥云课 (lanqiao.cn) 题目描述 我们发现每个字母都与26紧密相关&#xff0c;其%26的位置就是最后一个字母&#xff0c;由于最开始将0做为了1故在写答案时需要注意细节问题 #include<bits/stdc.h> using namespace std; char s[] "ABCDEFGHIJKLMNOPQ…

编译linux的设备树

使用make dtbs命令时 在arch/arm 的目录Makefile文件中有 boot : arch/arm/boot prepare 和scripts是空的 在文件scripts/Kbuild.include中 变量build : -f $(srctree)/scripts/Makefile.build obj 在顶层Makefile中 $(srctree)&#xff1a;. 展开后-f ./scripts/Mak…

Linux:mongodb数据库源码包安装(4.4.25版本)

环境 系统&#xff1a;centos7 本机ip&#xff1a;192.168.254.1 准备的mongodb包 版本 &#xff1a; 4.4.25 全名称&#xff1a;mongodb-linux-x86_64-rhel70-4.4.25.tgz 下载源码包 Download MongoDB Community Server | MongoDBhttps://www.mongodb.com/try/downloa…

hive复合类型的数据查询

hive数据表创建-CSDN博客 --第一个名字以M开头的 访问数组array 数组&#xff08; array) 引用方式 列名 [ 元素索引 _ 以 0 开始 ] select * from emp where emp_name[0] rlike "^M"; -- 出生日期是在 5 几年 访问 Map map 引用方式 列名 ["Key"] selec…

论文学习——Class-Conditioned Latent Diffusion Model For DCASE 2023

文章目录 引言正文AbstractIntroductionSystem Overview2.1 Latent Diffusion with sound-class-based conditioning以声音类别为条件的潜在扩散模型2.2 Variational Autoencoder and neural vocoder变分自编码器和神经声码器FAD-oriented Postprocessing filter&#xff08;专…

出现 PowerShell终端执行conda activate无效 解决方法

目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 在cmd命令行中执行conda activate 可以成功,但是回pycharm的PowerShell终端执行该命令,一直无效 具体过程如下: PS E:\pythonProject\SteganoGAN-master> conda activate py37 PS E:\pythonProject\SteganoGAN-mas…

数据中心机房供电配电及能效管理系统设计

安科瑞虞佳豪壹捌柒陆壹伍玖玖零玖叁 摘要&#xff1a;现代的数据中心中都包括大量的计算机&#xff0c;对于这种场所的电力供应&#xff0c;都要求供电系统需要在所有的时间都有效&#xff0c;这就不同于一般建筑的供配电系统&#xff0c;它是一个交叉的系统&#xff0c;涉及…

使用图像处理跟踪瞳孔(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

LeetCode 每日一题 2023/10/9-2023/10/15

记录了初步解题思路 以及本地实现代码&#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录 10/9 2578. 最小和分割10/10 2731. 移动机器人10/11 2512. 奖励最顶尖的 K 名学生10/12 2562. 找出数组的串联值10/13 1488. 避免洪水泛滥10/14 136. 只出现一次的数字10/1…

HTTPS 加密全过程

加密协议以前是SSL,现在都是TLS, 而证书现在大多数都是SSL证书 抓包流程: TCP三次握手过后, 客户端发送Client Hello 服务器相应Server Hello 服务器再次响应发送证书: 服务器再发送公钥: