首页 > 编程语言 >【JavaWeb】SpringBootWeb请求响应

【JavaWeb】SpringBootWeb请求响应

时间:2024-06-16 22:21:35浏览次数:14  
标签:浏览器 name age SpringBootWeb 响应 参数 请求 JavaWeb

前言

在上一次,我们开发了springbootweb的入门程序。 基于SpringBoot的方式开发一个web应用,浏览器发起请求 /hello 后 ,给浏览器返回字符串 “Hello World ~”。

其实呢,是我们在浏览器发起请求,请求了我们的后端web服务器(也就是内置的Tomcat)。而我们在开发web程序时呢,定义了一个控制器类Controller,请求会被部署在Tomcat中的Controller接收,然后Controller再给浏览器一个响应,响应一个字符串 “Hello World”。 而在请求响应的过程中是遵循HTTP协议的。

但是呢,这里要告诉大家的时,其实在Tomcat这类Web服务器中,是不识别我们自己定义的Controller的。但是我们前面讲到过Tomcat是一个Servlet容器,是支持Serlvet规范的,所以呢,在tomcat中是可以识别 Servlet程序的。 那我们所编写的XxxController 是如何处理请求的,又与Servlet之间有什么联系呢?

其实呢,在SpringBoot进行web程序开发时,它内置了一个核心的Servlet程序 DispatcherServlet,称之为 核心控制器。 DispatcherServlet 负责接收页面发送的请求,然后根据执行的规则,将请求再转发给后面的请求处理器Controller,请求处理器处理完请求之后,最终再由DispatcherServlet给浏览器响应数据。

那将来浏览器发送请求,会携带请求数据,包括:请求行、请求头;请求到达tomcat之后,tomcat会负责解析这些请求数据,然后呢将解析后的请求数据会传递给Servlet程序的HttpServletRequest对象,那也就意味着 HttpServletRequest 对象就可以获取到请求数据。 而Tomcat,还给Servlet程序传递了一个参数 HttpServletResponse,通过这个对象,我们就可以给浏览器设置响应数据。

那上述所描述的这种浏览器/服务器的架构模式呢,我们称之为:BS架构。

• BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。

下面我们主要就围绕着:请求、响应进行。主要包含三个部分:

  • 请求
  • 响应
  • 分层解耦

1. 请求

1.1. 简单参数

在Springboot的环境中,对原始的API进行了封装,接收参数的形式更加简单。 如果是简单参数,参数名与形参变量名相同,定义同名的形参即可接收参数。

@RestController
public class RequestController {
    // http://localhost:8080/simpleParam?name=Tom&age=10
    // 第1个请求参数: name=Tom   参数名:name,参数值:Tom
    // 第2个请求参数: age=10     参数名:age , 参数值:10
    
    //springboot方式
    @RequestMapping("/simpleParam")
    public String simpleParam(String name , Integer age ){//形参名和请求参数名保持一致
        System.out.println(name+"  :  "+age);
        return "OK";
    }
}

如果方法形参名称与请求参数名称不一致,可以使用Spring提供的@RequestParam注解完成映射,在方法形参前面加上 @RequestParam 然后通过value属性执行请求参数名,从而完成映射。代码如下:

@RestController
public class RequestController {
    // http://localhost:8080/simpleParam?name=Tom&age=20
    // 请求参数名:name

    //springboot方式
    @RequestMapping("/simpleParam")
    public String simpleParam(@RequestParam("name") String username , Integer age ){
        System.out.println(username+"  :  "+age);
        return "OK";
    }
}

注意事项:

@RequestParam中的required属性默认为true(默认值也是true),代表该请求参数必须传递,如果不传递将报错,可以设置@RequestParam(name = "name", required = false)

1.2. 实体参数

1.3. 数组集合参数

1.4. 日期参数

1.5. JSON参数

1.6. 路径参数

2. 响应

2.1. 注解@ResponseBody

2.2. 统一响应结果

3. 三层解耦

3.1. 三层架构

3.2. 分层解耦

3.3. IOC&DI

标签:浏览器,name,age,SpringBootWeb,响应,参数,请求,JavaWeb
From: https://www.cnblogs.com/hudad/p/18251381

相关文章

  • 响应式布局mediaquery使用,鸿蒙NEXT星河版
    一、导入方法,定义响应式接口//组件的封装importmediaqueryfrom'@ohos.mediaquery'exportinterfaceLandType{isLandScape:boolean}二、监听当前是否是横屏状态//监听当前是否是横屏状态@StatelandRes:LandType={isLandScape:false}liste......
  • 【JavaWeb】SpringBoot基础
    SpringBootWeb入门HTTP协议Web服务器-Tomcat前言Spring的官网(https://spring.io)。Spring的官方提供很多开源的项目,我们可以点击上面的projects,看到spring家族旗下的项目。Spring发展到今天已经形成了一种开发生态圈,Spring提供了若干个子项目,每个项目用于完成特定......
  • JavaWeb学习-MVC
    前言基于JavaWeb基础知识进行优化,形成了MVC的开发模式。程序结构优化教程原来案例中的servlet太多了,希望只有一个servlet,把原来多个servlet的合并成一个,根据参数operation判断用哪个方法并用反射调用,都写到了新servlet的service方法中了。引入dispatcherservlet,作为中心控制器,......
  • JavaWeb学习-前端知识小结
    前言参照B站尚硅谷的教程进行学习,对javaweb的前端知识做个简单的小结,主要内容包括html、css、javascript。其中html表示了前端页面的结构和元素,例如表格、文本框、表单等;css表示前端页面的样式,例如段落中文字的颜色、字体大小,表格中文字的颜色,字体大小等;JavaScript是弱类型的脚本......
  • JavaWeb学习-tomcat和servlet
    前言本文介绍javaweb的基本知识,包括CS和BS的架构形式、web容器、servlet等。CS和BSCS:客户端服务器架构模式优点:充分利用客户端机器的资源,减轻服务器的负荷。缺点:需要安装;升级维护成本较高。BS:浏览器服务器架构模式优点:客户端不需要安装;维护成本较低。缺点:所有的计算和存储......
  • 如何做高效的应急响应?
    前言本文只做分享,技术交流由于攻击面广、攻击路径不定;怎样快速定位、快速分析安全入侵、攻击事件,快速取证并及时上报就显得尤为重要。目录前言常见的安全事件有哪些?入侵事件信息泄露事件Web应用安全事件怎么去找这些造成安全事件的因素呢?日志分析恶意文件监控安......
  • 应急响应处置思路与流程
    HVV中常见应急问题:不确定攻击成功服务器进行排查windows服务器账号排查隐藏用户排查netuserwmic查看用户管理查看注册列表查看账户登录日志排查4624登录成功4625登录失败4720账户创建4724尝试重置密码4738账户已更改logoff踢出用户网络连接排查netstat  -ant-a......
  • JIPB | 中国农科院&华南农大王海洋等综述玉米响应密植的遗传调控分子机制
    现代玉米育种中,提高品种耐密性和种植密度是提高玉米单产的关键措施。玉米密植后群体通风、透光性降低,会引起避荫反应,造成株高和穗位高增加、抗生物和非生物胁迫能力降低、植株抗倒性降低,并最终导致产量损失。因此,培育耐密理想株型玉米是提高玉米耐密性的重要途径。2023年12月22日......
  • JavaWeb课程设计/期末大作业-电影网站+源代码+文档说明+数据库sql
    文章目录源码下载地址项目介绍项目功能界面预览项目备注源码下载地址源码下载地址点击这里下载代码项目介绍项目功能界面预览项目备注1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!2、本项目适合计算机相关专业(如计科......
  • 响应状态码
    文章目录1.状态码大类2.常见的响应状态码1.状态码大类状态码分类说明1xx响应中——临时状态码,表示请求已经接受,告诉客户端应该继续请求或者如果它已经完成则忽略它2xx成功——表示请求已经被成功接收,处理已完成3xx重定向——重定向到其它地方:它让客户端再发起一......