servlet+JSP与SpringBoot+Vue项目交互——servlet请求SpringBoot接口

news2024/11/18 13:50:27

问题

servlet+JSP与SpringBoot+Vue项目交互——servlet请求SpringBoot接口

详细问题

笔者前一段时间开发一个项目,使用的技术框架是servlet+JSP,现阶段开发的项目技术框架为SpringBoot+Vue,笔者现在需要输入servlet+JSP请求SpringBoot接口,获取接口相应,如何实现

解决方案

1、若读者使用的是 Maven 作为构建工具,您可以在项目的 pom.xml 文件中添加以下依赖项:

Copy code
<dependencies>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.12.4</version>
    </dependency>
</dependencies>

若读者使用的是 Gradle 作为构建工具,您可以在项目的 build.gradle 文件中添加以下依赖项:

dependencies {
    implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.4'
}

2 、创建该工具类

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

import java.io.IOException;

public class RequestUtils {

    public static String sendGetRequest(String url) throws IOException {
        // 创建HttpClient对象
        HttpClient httpClient = HttpClients.createDefault();
        // 创建HttpGet对象,设置接口地址
        HttpGet httpGet = new HttpGet(url);

        // 发送请求并获取响应
        HttpResponse response = httpClient.execute(httpGet);
        // 获取响应码
        int statusCode = response.getStatusLine().getStatusCode();
        // 获取响应内容
        HttpEntity entity = response.getEntity();
        String responseBody = EntityUtils.toString(entity);

        // 输出响应信息
        System.out.println("Response Code: " + statusCode);
        System.out.println("Response Body: " + responseBody);

        return responseBody;
    }

    public static String sendPostRequest(String url, String requestBody) throws IOException {
        // 创建HttpClient对象
        HttpClient httpClient = HttpClients.createDefault();
        // 创建HttpPost对象,设置接口地址
        HttpPost httpPost = new HttpPost(url);
        // 设置请求头信息
        httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded");
        httpPost.setHeader("Accept", "application/json");
        // 设置请求体内容
        httpPost.setEntity(new StringEntity(requestBody));

        // 发送请求并获取响应
        HttpResponse response = httpClient.execute(httpPost);
        // 获取响应码
        int statusCode = response.getStatusLine().getStatusCode();
        // 获取响应内容
        HttpEntity entity = response.getEntity();
        String responseBody = EntityUtils.toString(entity);

        // 输出响应信息
        System.out.println("Response Code: " + statusCode);
        System.out.println("Response Body: " + responseBody);

        return responseBody;
    }

    public static void main(String[] args) throws IOException {
        String getUrl = "http://localhost:8081/data";  // 替换为您的 GET 请求接口地址
        String postUrl = "http://localhost:8081/login";  // 替换为您的 POST 请求接口地址
        String requestBody = "username=test&password=123456";  // 替换为 POST 请求的请求体内容

        String getResponse = sendGetRequest(getUrl);
        // 在这里可以对 GET 请求的响应进行处理

        String postResponse = sendPostRequest(postUrl, requestBody);
        // 在这里可以对 POST 请求的响应进行处理
    }
}

问题原因

原先使用 Servlet 和 JSP 技术框架开发的项目迁移到使用 Spring Boot 和 Vue 技术框架的项目。笔者不了解如何在新的技术框架下,通过 Servlet 和 JSP 发起请求并获取 Spring Boot 接口的响应。

解决原因

通过封装一个请求工具类,您可以在新的技术框架下方便地发送 GET 和 POST 请求,并获取 Spring Boot 接口的响应。该工具类使用 Apache HttpClient 库来处理 HTTP 请求和响应,提供了发送 GET 和 POST 请求的方法。

参考文献

工具类代码实现参考chatgpt

原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈
在这里插入图片描述

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

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

相关文章

C语言编程—递归

递归指的是在函数的定义中使用函数自身的方法。 举个例子&#xff1a;从前有座山&#xff0c;山里有座庙&#xff0c;庙里有个老和尚&#xff0c;正在给小和尚讲故事呢&#xff01;故事是什么呢&#xff1f;"从前有座山&#xff0c;山里有座庙&#xff0c;庙里有个老和尚&…

2024考研408-计算机组成原理第六章-总线学习笔记

文章目录 前言初识总线一、总线概述1.1、总线的概述1.1.1、认识总线1.1.2、设计总线需要的特性1.1.3、总线的分类①按照数据传输格式分&#xff08;串行、并行&#xff09;②按照总线功能连接的总线&#xff08;片内总线、系统总线、通信总线&#xff09;③按照时序控制方式&am…

css新特性(五)

css基础&#xff08;一&#xff09;css基础&#xff08;一&#xff09;_上半场结束&#xff0c;中场已休息&#xff0c;下半场ing的博客-CSDN博客Emmet语法Emmet语法_上半场结束&#xff0c;中场已休息&#xff0c;下半场ing的博客-CSDN博客css基础&#xff08;二&#xff09;c…

Retrofit注解

1. 注解类型 Retrofit路径结合的规则 2. 网络请求方法 2.1 Get请求 完整地址&#xff1a;http://mock-api.com/2vKVbXK8.mock/getUserInfo?iduserid 2.1.1 Query 创建Retrofit实例必须传入baseurl(http://mock-api.com/2vKVbXK8.mock/)&#xff0c;在GET("getUserIn…

Android跨平台语言分析

跨平台技术发展的三个阶段 第一阶段是混合开发的web容器时代 为了解决原生开发的高成本、低效率&#xff0c;出现了Hybrid混合开发原生中嵌入依托于浏览器的WebViewWeb浏览器中可以实现的需求在WebView中基本都可以实现但是Web最大的问题是&#xff0c;它的性能和体验与原生开发…

Mybatis面试题--MyBatis执行流程

首先我们知道Mybatis是目前最流行的持久层框架&#xff0c;当我们了解了执行流程&#xff0c;可以让我们理解各个组件的关系&#xff0c;以及Sql的执行过程&#xff08;参数映射、sql解析、执行和结果处理&#xff09; 1首先我们需要读取框架的核心配置文件 2接下来我们就要去操…

chatgpt赋能python:Python编程的好玩儿之处:介绍几个有趣的Python程序

Python编程的好玩儿之处&#xff1a;介绍几个有趣的Python程序 Python已经成为了一种非常受欢迎的编程语言&#xff0c;除了其在Web开发和数据科学领域的应用&#xff0c;它还能够完成很多好玩儿的事情&#xff01;接下来&#xff0c;我将介绍几个有趣的Python程序&#xff0c…

【零基础入门学习Python---Python多线程和多进程】

&#x1f680; Python &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

基于SpringBoot+vue前后端分离的相机销售系统

文章目录 项目介绍主要功能截图&#xff1a;首页相机详情个人中心 部分代码展示设计总结项目获取方式 &#x1f345; 作者主页&#xff1a;Java韩立 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、 简历模板、学习资料、面试题库【关注我&#xff0c;都给你…

Centos7.9 磁盘分区、挂载

常用命令&#xff1a; fdisk /dev/vdb 创建分区 mkfs.ext2 /dev/vdb3 文件系统&#xff08;ext2&#xff0c;ext4&#xff0c;xfs&#xff09;格式化 mkfs.ext4 /dev/vdb3 mkfs.xfs /dev/vdb3 df -T 命令查看格式化是否成功&#xff08;要先把分区挂载到目录&#xff0c;否则df…

18. WebGPU 计算着色器

本文接续基础知识文章。我们将从一些基本的计算着色器开始&#xff0c;然后希望继续讨论解决现实世界问题并写一些示例。 在上一篇文章中&#xff0c;制作了一个非常简单的计算着色器&#xff0c;可以将数字加倍。 这是着色器 group(0) binding(0) var<storage, read_wri…

Java安装

Java Downloads | Oracle 一直往下拉 配置环境变量 第二部分&#xff1a;idea旗舰版下载安装配置 1. 字号 file-settings-editor-font-23 &#xff0c;还有菜单字号

边坡变形监测主要用到哪些仪器

在建筑行业中&#xff0c;边坡安全问题一直备受关注&#xff0c;尤其是在地质灾害频发地区。为了预防和控制边坡失稳&#xff0c;降低对人民生命财产的危害&#xff0c;保障工程建设的顺利进行&#xff0c;边坡变形监测工作就显得尤为的重要。边坡变形监测仪器可以实时动态监测…

GSM模块(SIM900)详解

GSM模块&#xff08;SIM900&#xff09; 0. GSM概述1. 常用的GSM模块2. SIM900系列3. STM32使用SIM900系列通信方法AT指令示例代码 0. GSM概述 GSM&#xff08;全球系统移动通信&#xff09;是一种数字移动通信技术&#xff0c;是世界上最常用的移动通信标准之一。它是由欧洲电…

[Unity][疑难杂症]Mac电脑打开工程unity attempt to write a readonly database

报错的根本原因&#xff1a; 你Unity项目所在的硬盘&#xff0c;格式不是MacOS或者APFS格式&#xff0c;我的是ExFAT所以报这个错。 可能出现的问题&#xff1a; 1、删除unity项目中的c#之类的文件就会报错&#xff0c;并且强制退出 2、新项目压根打不开&#xff0c;在生成资源…

【学习笔记】Unity基础(九)【cinemachine基础(body、aim参数详解)】(多fig动图示范)

目录 一 速览1.1 cinemachine下载1.2 官方示例速览1.3 cinemachine定义 二 cinemachine详解2.1 Virtual Camera2.1.1 virtual camera参数通览2.1.2 Status2.1.3 有关Dutch angle2.1.4 Standby Update2.1.5 Transitions 2.2 virtual cameral关键参数详解2.2.1 Body2.2.1.1 Do No…

idea搭建springmvc

Spring MVC是一种基于MVC模式的框架&#xff0c;它是Spring框架的一部分。它提供了一种更简单和更有效的方式来构建Web应用程序。它提供了一系列的功能&#xff0c;可以帮助您更快地构建Web应用程序&#xff0c;如控制器&#xff0c;视图&#xff0c;模型&#xff0c;数据绑定&…

【数据挖掘】时间序列模型处理指南(二)

一、说明 本文是一个系列文章的第二部分&#xff0c;本文将用股票数据进行时间序列分析为例&#xff0c;对时间分析的方法、过程&#xff0c;进行详细阐述。 二、前文章节 在文章第一部分种&#xff1a;【数据挖掘】时间序列模型处理&#xff08;一&#xff09;_无水先生的博客…

Spring Boot中的@EnableWebSocketMessageBroker注解是什么,原理,以及如何使用

Spring Boot中的EnableWebSocketMessageBroker注解是什么&#xff0c;原理&#xff0c;以及如何使用 WebSocket是一种在Web浏览器和Web服务器之间进行双向通信的技术。在传统的HTTP通信中&#xff0c;客户端向服务器发送请求&#xff0c;服务器响应请求&#xff0c;然后关闭连…

黑马Java项目实战-瑞吉外卖-笔记01

视频地址&#xff1a;黑马程序员Java项目实战《瑞吉外卖》&#xff0c;轻松掌握springboot mybatis plus开发核心技术的真java实战项目_哔哩哔哩_bilibili资料下载&#xff1a;百度网盘【黑马程序员-Java瑞吉外卖-企业级项目实战-平台实战开发】 黑马Java项目实战-瑞吉外卖-笔…