【业务功能篇54】Springboot项目常用工具类:HTTP状态码/客户端request

java Http请求工具类 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ConnectException; import java.net.SocketTimeoutException; import java.net.URL; import java. 阅读详情

 状态码常量类

/**
 * 返回状态码
 **/
public class HttpStatus {

    /**
     * 操作成功
     */
    public static final int SUCCESS = 200;

    /**
     * 对象创建成功
     */
    public static final int CREATED = 201;

    /**
     * 请求已经被接受
     */
    public static final int ACCEPTED = 202;

    /**
     * 操作已经执行成功,但是没有返回数据
     */
    public static final int NO_CONTENT = 204;

    /**
     * 资源已被移除
     */
    public static final int MOVED_PERM = 301;

    /**
     * 重定向
     */
    public static final int SEE_OTHER = 303;

    /**
     * 资源没有被修改
     */
    public static final int NOT_MODIFIED = 304;

    /**
     * 参数列表错误(缺少,格式不匹配)
     */
    public static final int BAD_REQUEST = 400;

    /**
     * 未授权
     */
    public static final int UNAUTHORIZED = 401;

    /**
     * 访问受限,授权过期
     */
    public static final int FORBIDDEN = 403;

    /**
     * 资源,服务未找到
     */
    public static final int NOT_FOUND = 404;

    /**
     * 不允许的http方法
     */
    public static final int BAD_METHOD = 405;

    /**
     * 资源冲突,或者资源被锁
     */
    public static final int CONFLICT = 409;

    /**
     * 不支持的数据,媒体类型
     */
    public static final int UNSUPPORTED_TYPE = 415;

    /**
     * 系统内部错误
     */
    public static final int ERROR = 500;

    /**
     * 接口未实现
     */
    public static final int NOT_IMPLEMENTED = 501;
}

客户端工具类  获取request\response

/**
 * 客户端工具类
 **/
public class ServletUtils {

    public static ServletRequestAttributes getRequestAttributes()
    {
        RequestAttributes attributes = RequestContextHolder.getRequestAttributes();
        return (ServletRequestAttributes) attributes;
    }

    /**
     * 获取request
     */
    public static HttpServletRequest getRequest()
    {
        return getRequestAttributes().getRequest();
    }

    /**
     * 获取session
     */
    public static HttpSession getSession()
    {
        return getRequest().getSession();
    }

    /**
     * 获取response
     */
    public static HttpServletResponse getResponse()
    {
        return getRequestAttributes().getResponse();
    }

    /**
     * 获取String参数
     */
    public static String getParameter(String name)
    {
        return getRequest().getParameter(name);
    }


    /**
     * 获取Integer参数
     */
    public static Integer getParameterToInt(String name)
    {
        return Integer.parseInt(getRequest().getParameter(name));
    }

    /**
     * 将字符串渲染到客户端
     *
     * @param response 渲染对象
     * @param string 待渲染的字符串
     * @return null
     */
    public static String renderString(HttpServletResponse response, String string)
    {
        try
        {
            response.setStatus(200);
            response.setContentType("application/json");
            response.setCharacterEncoding("utf-8");
            response.getWriter().print(string);
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
        return null;
    }

}

 

还在用HttpUtil?SpringBoot 3.0全新HTTP客户端工具来了,用起来够优雅~ 我们平时开发项目的时候,经常会需要远程调用下其他服务提供的接口,于是我们会使用一些HTTP工具类比如Hutool提供的HttpUtil。前不久SpringBoot 3.0发布了,出了一个Http Interface的新特性,它允许我们使用声明式服务调用的方式来调用远程接口,今天我们就来聊聊它的使用! 阅读详情

相关推荐

Vue+SpringBoot个人博客项目实战:从零搭建到部署全流程

前后端分离架构是现代Web应用开发的主流模式,它将前端交互与后端服务解耦,通过RESTful API通信,既提升了开发效率,也便于独立部署和扩展。在个人博客这类业务场景中,实现这一架构需要掌握Vue Router路由控制、Pinia状态管理、axios请求封装,以及SpringBoot接口设计、JWT鉴权和MyBatis-Plus持久化等关键技术。同时,生产环境还要面对XSS攻击防护、m3u8视频播放等实际问题,这些都是工程实践中的高频需求。本文以个人博客项目为载体,完整梳理从技术选型、数据库建模、前后端联

weixin_33804582的博客 442

SpringBoot-Http请求工具类

【代码】SpringBoot-Http请求工具类。

weixin_45716754的博客 1530

SpringBoot+Vue入校申报审批系统:从设计到部署全解析

前后端分离架构已成为现代Web开发的标配,SpringBoot与Vue的组合更是企业级项目的经典选型。其中,权限管理作为系统安全的核心,通过JWT鉴权与角色控制实现细粒度访问;审批流程则依赖状态机设计,确保业务流转严谨可控。基于这一技术栈构建的入校申报审批系统,覆盖学生申请、多级审批、数据统计等典型场景,既贴合校园实际需求,又完整展现了从数据库设计到前后端联调、部署上线的工程实践能力。本文从系统设计思路、核心表结构、SpringBoot后端实现、Vue前端交互到常见问题排查,深入拆解一个可落地、可扩展的毕业

weixin_33841503的博客 346

【SpringBoot】29 基于HttpClient的Http工具类

Http 协议是 Internet 上使用的最多、最重要的协议之一,越来越多的 Java 应用程序需要直接通过 Http 协议来访问网络资源。虽然在 JDK 的 java net 包中已经提供了访问 Http 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 Http 协议的客户端编程工具包

寻道书生的博客 2809

SpringBoot+Vue校园竞赛管理系统:从需求建模到答辩演示全解析

前后端分离已成为JavaWeb项目的主流开发模式,SpringBoot负责后端接口和业务逻辑,Vue负责页面交互,两者以REST接口联调,组成从需求建模到部署上线的完整链路。此架构在校园竞赛管理系统这类场景中非常典型,核心是区分管理员、评委、学生三类角色,管理竞赛报名、作品提交、打分公示等状态流转,并涉及数据库表结构设计、SQL优化、JWT登录鉴权、跨域处理等一系列常见工程问题。围绕校园竞赛管理系统,从需求建模、技术选型、核心表结构、接口联调方法到毕业设计答辩避坑要点,帮助开发者快速掌握一个前后端分离项目的

weixin_34224941的博客 381

从零搭建JavaWeb一对一聊天系统:WebSocket实战与避坑指南

WebSocket是一种基于TCP的全双工通信协议,通过一次HTTP握手建立持久连接,实现服务端与客户端的实时双向消息推送。其核心原理在于握手升级与帧协议,相比轮询方案能显著降低延迟与服务器压力。在JavaWeb开发中,WebSocket常用于在线聊天、实时通知等场景。一对一聊天系统需要处理用户身份绑定、会话管理、消息路由与离线存储等关键问题。本文基于SpringBoot与WebSocket,详细讲解一对一网页聊天系统的完整实现,包括数据库设计、Session管理、消息协议与常见部署避坑,帮助开发者掌握实时

weixin_34342992的博客 227

2024年最全Spring Boot项目下最优雅的http客户端工具,用它就够了,太香了,真的醉了

金三银四马上就到了,希望大家能好好学习一下这些技术点学习视频:本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录需要这份系统化的资料的朋友,可以点击这里获取r(具体可以参考DefaultLoggingInterceptor的实现),然后在配置文件中进行相关配置即可。金三银四马上就到了,希望大家能好好学习一下这些技术点学习视频:[外链图片转存中…

2301_82241647的博客 1749

STM32 HAL 硬件IIC驱动BNO085:从移植到姿态解算全流程解析(附源码)

本文详细解析了STM32 HAL库下硬件IIC驱动BNO085 IMU传感器的全流程,包括CubeMX配置、驱动移植、传感器初始化、Q格式数据处理及四元数转欧拉角解算。提供了完整的源码实现和常见问题解决方案,帮助开发者快速掌握高精度姿态测量技术。

palm99的专栏 1047

SpringBoot+Vue超市进销存系统:毕业设计实战部署与核心功能解析

企业级应用开发中,前后端分离架构已成为主流范式,其核心在于通过清晰的接口契约实现业务逻辑与用户界面的解耦。SpringBoot作为Java领域高效的微服务框架,简化了后端RESTful API的开发与部署;Vue.js则以其渐进式和响应式特性,成为构建现代化单页面应用(SPA)的热门选择。这种技术组合的价值在于能够快速构建出模块清晰、易于维护的全栈应用,尤其适用于管理后台、电商平台及各类业务系统。本文聚焦于一个典型的应用场景——超市进销存管理系统,详细拆解其基于SpringBoot和Vue的技术实现,涵盖从

weixin_33922672的博客 399

从零构建:四轴机械臂D-H参数建模与MATLAB实战指南

本文详细介绍了四轴机械臂D-H参数建模的完整流程与MATLAB实战应用。从机械臂运动学基础出发,解析D-H参数原理与坐标系建立规则,提供MATLAB Robotics Toolbox的安装、模型创建及正逆运动学求解的代码实现。特别针对四轴机械臂的逆运算优化、轨迹规划和奇异位形规避等高级应用给出实用解决方案,是机器人开发者的实战指南。

weixin_29062255的博客 419

用SOLIDWORKS从零画一个履带机器人,手把手教你搞定底盘和传动

本文详细介绍了如何使用SOLIDWORKS从零开始设计履带式机器人,重点讲解底盘结构优化和传动系统设计的关键步骤。通过七个阶段的实战指南,包括前期规划、底盘建模、驱动系统装配、履带生成、动态模拟等,帮助工程师和爱好者掌握履带机器人的核心设计技巧,提升地形适应能力和动力效率。

weixin_30872499的博客 632

基于SpringBoot+Vue的毕业设计选题系统:从零搭建到部署实战

在高校信息化管理和计算机专业实践教学中,Web应用开发是核心技能之一。其原理在于通过前后端分离架构,实现业务逻辑与用户界面的解耦,从而提升开发效率和系统可维护性。SpringBoot作为Java领域主流的后端框架,以其自动配置和快速启动的特性,极大地简化了企业级应用的搭建;Vue.js则以其响应式和组件化的优势,成为构建现代前端界面的热门选择。两者的结合,为开发功能完整的管理系统提供了成熟的技术方案,具有极高的技术价值和广泛的适用性。毕业设计选题是高校教学管理中的高频场景,传统线下模式存在流程繁琐、信息不透

weixin_33985507的博客 368

Qt Installer Framework 简单使用

qt installer framework 简单使用

qq_42815643的博客 2576

413 Request Entity Too Large

413 Request Entity Too Large 文件大小修改

码农之路,向死而生 3967

大数据与宠物:健康监测数据分析

随着全球宠物市场规模的快速增长(2023年全球宠物产业规模已达3500亿美元),宠物健康管理需求呈现指数级上升。传统宠物医疗依赖定期体检和症状观察,存在滞后性和主观性缺陷。本文聚焦如何通过物联网(IoT)设备采集宠物生理数据(体温、心率、活动量等),利用大数据分析技术构建实时健康监测系统,实现宠物健康状态的动态评估、异常预警和疾病预测。研究范围涵盖数据采集技术、数据预处理方法、机器学习模型构建及实际应用场景落地。背景介绍:明确研究目的、目标读者及核心术语核心概念与联系。

2502_91592937的博客 1067

R语言dplyr包recode函数、recode_factor函数数值或因子替换实战

R语言dplyr包recode函数、recode_factor函数数值或因子替换实战 目录 R语言dplyr包recode函数、recode_factor函数数值或因子替换实战 #导入dplyr包 #recode函数进行数值替换 #recode_factor函数对因子变量进行替换 #导入dplyr包 install.packages("dplyr") # Install & load dplyr library("dpl.

data+scenario+science+insight 1590

JavaWeb知识点

1.Maven中的仓库用来存储什么的?Maven的仓库是用来存储和管理jar包的2.Maven中有哪几类仓库?查找依赖(jar)的顺序是什么样的?本地仓库(1)远程仓库(2)中央仓库(3)

ql200106的博客 303

【3GPP核心网】【5G】史上最全的5G协议规范总结

物理层信道定义:TS38.211(物理层信号的生成、调制,DMRS和额外DMRS,PRACH configuration index,Point A等介绍)传输信道和控制信道的数据处理:TS38.212(包括复用,信道编码,交织,DCI,DMRS端口号等)物理层控制过程:TS38.213(同步,上行功控,随机接入,UE上报和接收控制消息的过程,SSB等)物理层测量:TS38.215(UE和网络的测量控制,UE测量能力)频率、频点相关F R1:TS38.101-1。

风云说通信 3177

SpringBoot全局异常处理

在SpringMVC中可以使用ControllerAdvice来做controller内部的全局异常处理,但对于未进入controller前的异常,该处理方法是无法进行捕获处理的,SpringBoot提供了ErrorController的处理类来处理所有的异常。   1 import java.util.Map; 2 3 import javax.servlet.http.Http...

weixin_34115824的博客 120

Qt应用软件【协议篇】自定义协议处理串口半包贴包

Qt串口数据,半包,贴包,丢包数据处理

小鱼酱的博客 1211

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Feign 高级 JSON 解析与分页实战:基于 Wikipedia 示例的完整解读

本文以 OpenFeign 仓库中的 [example-wikipedia](https://link.gitcode.com/i/ec5164c5ebb4e6ea14b9df2bcbbdce36) 示例为线索,深入讲解如何利用 Feign 的 `Decoder` 扩展机制(Gson 自定义 `TypeAdapter`)解析非标准嵌套 JSON 结构,并通过惰性迭代器实现无限滚动分页。读完本文,你

gitblog_00553的博客 218

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

SpringBoot+Vue高校体育竞赛管理平台:从报名到成绩全链路设计与实践

在数字化校园建设背景下,体育竞赛和运动会的信息化管理需求日益凸显,传统Excel和微信群的协作方式已难以应对多角色、多环节的复杂流程。基于前后端分离架构,后端采用SpringBoot结合MyBatis-Plus和MySQL构建RESTful API,前端使用Vue3、Element Plus及ECharts实现交互界面与数据可视化,并通过JWT实现角色鉴权,是Java全栈开发中典型的实战项目。这类系统涵盖用户权限、赛事发布、在线报名、赛程编排、成绩录入与统计看板等完整闭环,既锻炼数据库设计与接口开发能力,也

weixin_31102231的博客 301

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

工作中使用到的单词(软件开发)

1.エイリアス   alias 别名 powershell使用 get-help 命令时,会得到与此命令 相关(别名)的命令 2.プロキシ proxy 代 理 3.プロモート   promote 促进,提升   开发的系统新功能上线发布,有时会使用到这个词,比如 STプロモート 还有使用リリース这个词的。比如STリリース。个人认为两者含义相同。 4.見逃し み................................................................

sun0322 6万+

面试问题总结

文章目录1.abstract和interface异同2.构造方法3.final关键字作用4.重写和重载的区别4.1重载4.2重写5.this关键字6.封装的作用,实现封装的步骤7.封装中的getter和setter方法分别作用7.1setter方法7.2getter方法8.Mybatis-plus与Spring Data JPA9.装箱和拆箱9.1装箱9.2拆箱10.ArrayList底层原理11.反射12.Filter13.$与#的区别14.js中的DOM对象与jQuery中的DOM区别15.四大元注解1

肥猫不是猫 1111

工作中使用到的单词(软件开发)_第三版

====

sun0322 1万+

Spring Boot 相关知识和工具类

本文主要讲解http的五种与后端交互方法,queryString 格式与 urlencoded 格式区别,登录认证,拦截器,Spring Validation依赖(参数校验),一些常用工具类,分页查询

qq_56109699的博客 796
上一篇: 【业务功能篇53】Springboot 数据封装对象
下一篇: 【业务功能篇55】Springboot+easyPOI 导入导出
studyday1
博客等级 码龄9年 6454粉丝 255原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值