【Java】HttpServlet类中前后端交互三种方式(query string、form表单、JSON字符串)

这篇具有很好参考价值的文章主要介绍了【Java】HttpServlet类中前后端交互三种方式(query string、form表单、JSON字符串)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在前后端的交互中,前端通过以下三种方式来与后端进行交互🌟

✅query string

✅form表单

✅JSON字符串

下面我们将书写这三种方式的后端代码并进行讲解

1、Query String

QueryString即在url中写入键值对,一般用doGet方法进行交互

代码如下 

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/getParameter")
public class GetParameterServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String username = req.getParameter("username");
        String password = req.getParameter("password");

        System.out.println(username);
        System.out.println(password);

        resp.getWriter().write("ok");
    }
}

用postman验证

【Java】HttpServlet类中前后端交互三种方式(query string、form表单、JSON字符串),Java,# Java网络编程,java,开发语言 【Java】HttpServlet类中前后端交互三种方式(query string、form表单、JSON字符串),Java,# Java网络编程,java,开发语言

2、form表单

 form表单一般用doPost方法进行交互

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/postParameter")
public class postParameterServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String username = req.getParameter("username");
        String password = req.getParameter("password");

        System.out.println(username);
        System.out.println(password);

        resp.getWriter().write("ok");
    }
}

【Java】HttpServlet类中前后端交互三种方式(query string、form表单、JSON字符串),Java,# Java网络编程,java,开发语言

3、Jason字符串

 (1)关于Jason

Jason是什么

JSON 是存储和交换文本信息的语法,类似 XML。JSON采用完全独立于任何程序语言的文本格式

要在Servlet中实现Jason相关操作,我们使用Jackson解析器

(2)jackson的配置

怎样配置Jackson呢?🧐

在中央仓库搜索Jackson,选中Jackson Databind👆

【Java】HttpServlet类中前后端交互三种方式(query string、form表单、JSON字符串),Java,# Java网络编程,java,开发语言

 点击进去之后,选择2.15.0版本👆

(Jackson2.15.0对应Tomcat8、对应Servlet3.1.0)

进去后,点击复制下面这段代码📃

【Java】HttpServlet类中前后端交互三种方式(query string、form表单、JSON字符串),Java,# Java网络编程,java,开发语言

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.15.0</version>
</dependency>

粘贴到pom.xml文件中

【Java】HttpServlet类中前后端交互三种方式(query string、form表单、JSON字符串),Java,# Java网络编程,java,开发语言

【Java】HttpServlet类中前后端交互三种方式(query string、form表单、JSON字符串),Java,# Java网络编程,java,开发语言

之后会出现Maven的按钮,点击进行下载 

【Java】HttpServlet类中前后端交互三种方式(query string、form表单、JSON字符串),Java,# Java网络编程,java,开发语言

下载完成后,原本出现的红字报错消失

(3)使用json字符串进行前后端交互

 在配置好json的解析器后,我们书写代码进行前后端交互

import com.fasterxml.jackson.databind.ObjectMapper;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

//定一个Request类
class Request{
    public String username;
    public String password;
}

class Response{
    public Boolean ok;
}

@WebServlet("/json")
public class JsonParameterSerlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        ObjectMapper mapper = new ObjectMapper();
        Request request = mapper.readValue(req.getInputStream(),Request.class);
        //把json字符串映射成Request类的java对象
        System.out.println("username:" + request.username);
        System.out.println("password:" + request.password);
        Response response = new Response();
        response.ok = true;
        //将Response类的java对象映射成json字符串
        String respjson = mapper.writeValueAsString(response);
        resp.setContentType("applicaton/json;charset=utf8");
        resp.getWriter().write(respjson);
    }
}

使用postman进行验证 ​​​​​​​

【Java】HttpServlet类中前后端交互三种方式(query string、form表单、JSON字符串),Java,# Java网络编程,java,开发语言

【Java】HttpServlet类中前后端交互三种方式(query string、form表单、JSON字符串),Java,# Java网络编程,java,开发语言文章来源地址https://www.toymoban.com/news/detail-804254.html

到了这里,关于【Java】HttpServlet类中前后端交互三种方式(query string、form表单、JSON字符串)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【JAVA原理系列】Java String类中的三个替换方法replaceFirst、replaceAll和replace原理用法示例源码详解

    这里是三种字符串替换方法的原理: replaceFirst() 方法的原理是通过编译给定的正则表达式,然后使用编译后的模式创建一个匹配器对象,将该匹配器应用于目标字符串,并使用给定的替换字符串替换第一个匹配的子字符串。 replaceAll() 方法的原理与 replaceFirst() 类似,也是通过

    2024年04月16日
    浏览(32)
  • 探究前后端数据交互方式

    前端和后端在 Web 开发中扮演着不同的角色,两者需要进行数据的传递和交互。本篇文章将主要讨论前后端数据交互方式的不同类型和应用场景。 一、什么是前后端数据交互? 在 Web 开发中,前端负责用户界面的设计和交互,后端负责数据的处理和存储。因此,前后端之间需

    2024年02月09日
    浏览(28)
  • 前后端图片交互的简易方式

    测试结果 在项目的实际开发中,难免会遇到前端需要渲染数据库中保存的图片,那咱知道图片也属于一种文件,不好保存到数据库,那怎么处理比较好呢? 这边小编采用的方式是将图片链接保存到数据库中,而实际图片保存在具体目录中。前端当使用 el-image 标签去渲染图片

    2024年02月07日
    浏览(28)
  • ASP.NET-WebFoms常见前后端交互方式

    在 ASP.NET Web Forms 中,实现前后端交互是开发 Web 应用程序的重要部分。通过合适的数据传递方式,前端页面能够与后端进行有效的通信,并实现数据的传递、处理和展示。本文介绍了ASP.NET Web Forms开发中常见的前后端交互方式,包括控件绑定、Ajax、WebService、自定义处理程序和

    2024年03月18日
    浏览(29)
  • 【JavaEE】Servlet 中常用API有哪些?前后端交互方式有哪些?

      博主简介:想进大厂的打工人 博主主页: @xyk: 所属专栏: JavaEE初阶   目录 一、Servlet 运行原理 二、Servlet常用API 2.1 HttpServlet(抽象类) 2.1.1. init 方法 2.1.2 service方法 2.1.3 destroy方法 三、HttpServletRequest 3.1 HttpServletRequest常用方法演示 四、前端给后端传输数据的三种方式 4.

    2024年02月13日
    浏览(35)
  • Mybatis报错: Error querying database. Cause: java.lang.NumberFormatException: For input string: “A“

    报错信息:Error querying database. Cause: java.lang.NumberFormatException: For input string: “A” 解决办法: xml里面 if 判断里面的条件判断字符串相等用双引号,外层套单引号。这是因为在比较的时候默认单引号括起来的是数字 ‘A’ 不能转化为数字 ,所以报错。 [正常情况下用字符串放在单

    2024年02月16日
    浏览(27)
  • 【MyBatis中报错‘Error querying database. Cause: java.lang.NumberFormatException: For input string: “XX】

    MyBatis中报错‘Error querying database. Cause: java.lang.NumberFormatException: For input string: “XXX”’解决方案 SpringBoot项目中通过MyBatisPlus在mapper中查询数据时报错:【通用异常:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: Error querying database. Cause:

    2024年03月22日
    浏览(50)
  • Android使用WebView与Native交互的三种方式 ( 附源码 )

    javascript.html: jsToAndroid.html jsToAndroid2.html 1.JS与Native的交互 一.Android调用JS的方法 目前学习了俩种方法:1. 调用webview的loadUrl 2.调用webview的evaluateJavascript 方法说明: 1. webView.loadUrl(“javascript:callJS()”); 参数是一个字符串,说明调用了javascript中的 callJS方法 webview.evaluateJavascript(

    2024年02月11日
    浏览(50)
  • hive-3.1.2分布式搭建与hive的三种交互方式

    在官网或者镜像站下载驱动包 华为云镜像站地址: hive: Index of apache-local/hive/hive-3.1.2 mysql驱动包: Index of mysql-local/Downloads/Connector-J # 1、解压 tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /usr/local/soft/ # 2、重名名 mv apache-hive-3.1.2-bin hive-3.1.2 # 3、配置环境变量 vim /etc/profile # 4、在最后增加

    2024年04月16日
    浏览(28)
  • string类中的一些问题

        前言:C++中的string类是继承C语言的字符数组的字符串来实现的,其中包含许多C的字符串的相关知识的同时,也蕴含很多的类与对象的相关知识,在面试中,面试官总喜欢让学生自己来模拟实现string类,最主要是实现string类的构造、拷贝构造、赋值运算符重载以及析构函

    2024年02月10日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包