javaweb - 请求响应代码实现

news2024/10/8 9:00:59

简单参数

  • 原始方式

    在原始的web程序中,获取请求参数,需要通过HttpServletRequest对象手动获取。

        @RequestMapping("/simpleParam")
        public String simpleParam(HttpServletRequest request) {
            String name = request.getParameter("name");
            String age = request.getParameter("age");
            System.out.println("Name: " + name + " Age: " + age);
            return "Name: " + name + " Age: " + age;
        }
    

    在这里插入图片描述

  • SpringBoot方式

    • 请求参数名与方法形参变量名相同
    • 会自动进行类型转换
        @RequestMapping("/simpleParam")
        public String simpleParam(String name, Integer age) {
            System.out.println("Name: " + name + " Age: " + age);
            return "Name: " + name + " Age: " + age;
        }
    

    在这里插入图片描述

    如果方法形参名称与请求参数名称不匹配,可以使用@RequestParam完成映射。

        @RequestMapping("/simpleParam")
        public String simpleParam(@RequestParam(name="Name") String name, Integer age) {
            System.out.println("Name: " + name + " Age: " + age);
            return "Name: " + name + " Age: " + age;
        }
    

    注意@RequestParam中的required属性默认为true,代表该请求参数必须传递,如果不传递将报错。如果该参数是可以选的,可以将required属性设置为false。

        @RequestMapping("/simpleParam")
        public String simpleParam(@RequestParam(name="Name", required = false) String name, Integer age) {
            System.out.println("Name: " + name + " Age: " + age);
            return "Name: " + name + " Age: " + age;
        }
    

实体参数

  • 简单实体参数:请求参数名与形参对象属性名相同,定义POJO接收即可。

    pojo目录下新建User.java文件,并设置:

    package com.example.pojo;
    
    public class User {
        private String name;
        private Integer age;
    
        public User() {
        }
    
        public User(String name, Integer age) {
            this.name = name;
            this.age = age;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Integer getAge() {
            return age;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
    }
    
    

    controller层内添加:

        @RequestMapping("/simplePojo")
        public String simplePojo(User user) {
            System.out.println("Name: " + user.getName() + " Age: " + user.getAge());
            return "simplePoj:  Name: " + user.getName() + " Age: " + user.getAge();
        }
    

    在这里插入图片描述

  • 复杂实体参数

    在这里插入图片描述

    新建Address.java文件

    package com.example.pojo;
    
    public class Address {
        private String province;
        private String city;
    
        public String getProvince() {
            return province;
        }
    
        public void setProvince(String province) {
            this.province = province;
        }
    
        public String getCity() {
            return city;
        }
    
        public void setCity(String city) {
            this.city = city;
        }
        public String toString() {
            return "Address{" +
                    "province='" + province + '\'' +
                    ", city='" + city + '\'' +
                    '}';
        }
    }
    
    

    修改User.java

    package com.example.pojo;
    
    public class User {
        private String name;
        private Integer age;
    
        private Address address;
    
        public Address getAddress() {
            return address;
        }
    
        public void setAddress(Address address) {
            this.address = address;
        }
    
        public User() {
        }
    
        public User(String name, Integer age) {
            this.name = name;
            this.age = age;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Integer getAge() {
            return age;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
        public String toString() {
            return "User{" +
                    "name='" + name + '\'' +
                    ", age=" + age +
                    ", address=" + address +
                    '}';
        }
    }
    
    

    controller层添加新GET:

        @RequestMapping("/complexPojo")
        public String complexPojo(User user) {
            System.out.println(user);
            return "complexPojo: " + user;
        }
    

    在这里插入图片描述

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

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

相关文章

基于Springboot+Vue的养老院管理系统的设计与实现 (含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 这个系…

TMC2209堵转检测配置详细教程

按如下图将TMC2209和串口模块连接: 配置流程: 寄存器配置: 通用寄存器: 校验码见我之前文章:使用uart串口配置TMC2209模块_tmc2209 uart-CSDN博客 通用寄存器主要是配置第0和第1位,第1位要给1&#xff0…

python之详解列表

有序的可变容器,可以存储不同类型的元素。用中括号[]表示。 1、列表的查找访问 1.1、通过下标查找。 与字符串类似,列表也可通过 列表名[index] 的方式查找其中的元素。 索引的初始值为0,最大值为列表长度-1。 示例: list1 …

刷题 位运算 / 数学

面试经典 150 题 - 位运算 ⭐️⭐️67. 二进制求和 加法进位 class Solution { public:string addBinary(string a, string b) {int na a.size(), nb b.size();string ans;ans.reserve(max(na, nb) 1); // 预留空间,避免动态扩展时的性能损耗int carry 0;for …

platform bus平台总线详解

往期内容 驱动中的device和device_driver结构体-CSDN博客bus总线的相关结构体和注册逻辑-CSDN博客bus中设备驱动的probe触发逻辑和device、driver的添加逻辑-CSDN博客 前言 注:以下的代码皆摘自于linux 4.9.88版本的内核源码,不同版本可能有所出入。 之…

【EXCEL数据处理】保姆级教程 000016案例 EXCEL的vlookup函数。

【EXCEL数据处理】000016案例 vlookup函数。 前言:哈喽,大家好,今天给大家分享一篇文章!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【EXCEL数据处理】保姆级教…

【动态规划】斐波那契模型 dp

动态规划的步骤: 状态表示。所谓状态表示就是 dp 表里的值表示什么含义,那么状态表示怎么找呢? a. 题目要求 b. 经验(以某一个位置为结尾 / 起点) 题目要求 c. 分析问题的过程中发现重复子问题状态转移方程。dp[ i ] …

ChatGPT Canvas:系统提示词泄漏了~

OpenAI 推出了一款叫做 Canvas 的新工具,用来帮助用户更好地与 ChatGPT 协作写作和编程。详细介绍可以看这篇文章:ChatGPT Canvas:交互式对话编辑器-CSDN博客​编辑 以下是 OpenAI 新功能 “Canvas” 的系统提示内容 你是 ChatGPT&#xff0…

基于连续小波变换(CWT)批量生成一维信号的时频图 最终生成30张时频图。生成的图像可用于后续的深度学习分类或其他处理。附详细的说明文档。

Matlab基于连续小波变换(CWT),将一维信号批量生成时频图的源代码。此示例中,原始信号data是30*1280的格式,一共30条信号,信号长度为1280。最终生成30张时频图。生成的图像可用于后续的深度学习分类或其他处…

SpringBoot开发——SpringSecurity安全框架17个业务场景案例(二)

文章目录 一、Spring Security 常用应用场景介绍二、Spring Security场景案例6、CSRF 保护(CSRF Protection)6.1 Spring Security 配置6.2 业务逻辑代码7、密码编码(Password Encoding)7.1 Spring Security 配置7.2 业务逻辑代码7.3 控制器8、方法级安全性(Method Securit…

Vue2电商项目(八) 完结撒花:图片懒加载、路由懒加载、打包的map文件

一、图片懒加载 安装:npm i vue-lazyload1.3 -s (弹幕建议按1.3版本) 引入 // 引入懒加载的图片 import hlw from /assets/hulu.jpg // 引入插件 import VueLazyload from vue-lazyload // 引入插件 Vue.use(VueLazyload, {// 懒加载默认的图…

Oracle登录报错-ORA-01017: invalid username/password;logon denied

接上文:Oracle创建用户报错-ORA-65096: invalid common user or role name 我以为 按照上文在PDB里创建了用户,我以为就可以用PLSQL远程连接了,远程服务器上也安装了对应版本的Oracle客户端,但是我想多了,客户只是新建…

【爬虫】网站反debugger、内存爆破以及网站限制开发者工具

【爬虫】网站反debugger、内存爆破以及网站直接限制开发者工具 声明:本文中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途&#xff0…

JWT集成Keycloak

一、直接使用现有域账号、密码获取token方式 1.KeyClack 使用现有配置 Client id : account-console 2.服务配置文件配置 3.API接口配置 4. 获取token 5.调用方式(Swagger)(代码方式直接在请求头加上token) 5.1 配置在Swagger访问 5.2 访问需要认证的接…

JavaWeb——Vue路由(概述、介绍、使用、解决bug)

目录 概述 介绍 使用 解决bug 概述 员工管理的页面已经制作完成。其他页面的制作方式一致。 项目中准备了部门管理的页面组件 DeptView ,这样就有了员工管理和部门管理两个页面组件。 在系统中,要实现点击部门管理菜单展示部门管理组件&#xff0c…

为什么Java不支持多重继承?

不支持多重继承主要是因为会产生“菱形继承”,也称为钻石继承的问题。 那什么是菱形继承呢? 它涉及到一个类继承两个父类,而这两个父类又继承自同一个祖先类。这种结构在没有适当处理的情况下,会导致继承层次中的歧义和冗余。 如…

关于BSV区块链覆盖网络的常见问题解答(下篇)

​​发表时间:2024年9月20日 在BSV区块链上的覆盖网络服务为寻求可扩展、安全、高效交易处理解决方案的开发者和企业家开辟了新的视野。 作为开创性的曼达拉升级的一部分,覆盖网络服务提供了一个强大的框架,用于管理特定类型的交易和数据访问…

【目标检测】室内地板砖铺设缺陷检测数据集2000张VOC+YOLO格式

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2002 标注数量(xml文件个数):2002 标注数量(txt文件个数):2002 标注…

图论大总结

图论基础 98. 所有可达路径 result [] path [] def dfs(graph,x,n):if x n:result.append(path[:])returnfor i in range(1,n1):if graph[x][i] 1:path.append(i)dfs(graph,i,n)path.pop() def main():n,m map(int,input().split())# 邻接矩阵graph [[0]*(n1) for _ in …

【EXCEL数据处理】000021 案例 保姆级教程,附多个操作案例。EXCEL文档安全性设置。

前言:哈喽,大家好,今天给大家分享一篇文章!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【EXCEL数据处理】000021 案例 保姆级教程,附多个操作案例。…