演示实例:AServlet发送一个Student对象到BServlet

#### 1.AServlet部分

首先造一个学生stu,然后通过fastjson的`toJSONString`方法把对象转换成字符串,再通过MyHttpUtils的`sendPost`方法把数据发送到BServlet

核心部分是`MyHttpUtils`类,还用到了`fastjson.jar`包

```java

@WebServlet("/AServet")

public class AServet extends HttpServlet {

private static final long serialVersionUID = 1L;

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("utf-8");

response.setContentType("text/html;charset=utf-8");

Stu stu = new Stu();

stu.setAge(12);

stu.setName("ergou");

stu.setSex(1);

String str = JSON.toJSONString(stu);//将java对象转换为json字符串

response.getWriter().append("将发送请求给B");

String ret = MyHttpUtils.sendPost("http://localhost:8080/HttpServletTest/BServet", "data="+str);

System.out.println("来自BServlet的返回值:" + ret);

}

/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doPost(request, response);

}

}

```

##### MyHttpUtils类

```java

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.URL;

import java.net.URLConnection;

public class MyHttpUtils {

/**

* 向指定 URL 发送POST方法的请求

*

* @param url

*            发送请求的 URL

* @param param

*            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。

* @return 所代表远程资源的响应结果

*/

public static String sendPost(String url, String param) {

PrintWriter out = null;

BufferedReader in = null;

String result = "";

try {

URL realUrl = new URL(url);

// 打开和URL之间的连接

URLConnection conn = realUrl.openConnection();

// 设置通用的请求属性

conn.setRequestProperty("accept", "*/*");

conn.setRequestProperty("connection", "Keep-Alive");

conn.setRequestProperty("user-agent",

"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");

// 发送POST请求必须设置如下两行

conn.setDoOutput(true);

conn.setDoInput(true);

// 获取URLConnection对象对应的输出流

out = new PrintWriter(conn.getOutputStream());

// 发送请求参数

out.print(param);

// flush输出流的缓冲

out.flush();

// 定义BufferedReader输入流来读取URL的响应

in = new BufferedReader(

new InputStreamReader(conn.getInputStream()));

String line;

while ((line = in.readLine()) != null) {

result += line;

}

} catch (Exception e) {

System.out.println("发送 POST 请求出现异常!"+e);

e.printStackTrace();

}

//使用finally块来关闭输出流、输入流

finally{

try{

if(out!=null){

out.close();

}

if(in!=null){

in.close();

}

}

catch(IOException ex){

ex.printStackTrace();

}

}

return result;

}

}

```

#### 2.BServlet部分

接收来自AServlet的数据String,然后通过fastjson包的parseObject方法把字符串转成Stu对象,再取出需要的值

```java

/**

* Servlet implementation class AServet

*/

@WebServlet("/BServet")

public class BServet extends HttpServlet {

private static final long serialVersionUID = 1L;

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("utf-8");

response.setContentType("text/html;charset=utf-8");

String data = request.getParameter("data");

if(data == null) {

response.getWriter().append("data为空");

return;

}

Stu stu = JSON.parseObject(data, Stu.class);

System.out.println();

System.out.println("收到请求,学生是: " + stu.getName());

response.getWriter().append("收到请求,学生是: " + stu.getName());

}

/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doPost(request, response);

}

}

```

java请求servlet,[Java]Servlet发送Post请求相关推荐

  1. Java使用hutool工具类发送http请求

    Java使用hutool工具类发送网络请求 引入jar包 pom.xml添加以下hutool依赖 <dependency><groupId>cn.hutool</grou ...

  2. $.ajax 发送请求,JavaScript之Ajax-2 Ajax(使用Ajax发送get请求、使用Ajax发送post请求)

    一.使用Ajax发送get请求 发送异步请求的步骤 - 获取Ajax对象:获取 XMLHttpRequest对象实例 - 创建请求:调用XMLHTTPRequest对象的open方法 - 设置回调函数 ...

  3. java的connect和http_【JAVA】通过URLConnection/HttpURLConnection发送HTTP请求的方法

    Java原生的API可用于发送HTTP请求 即java.net.URL.java.net.URLConnection,JDK自带的类: 1.通过统一资源定位器(java.net.URL)获取连接器(j ...

  4. java 服务器 http请求_Java网络编程——发送HTTP请求到服务器

    当Java程序需要向服务器发送请求或读取服务器数据时,使用URLConnection类是比较好的选择.URLConnection类封装了与服务器互动操作的方法,通过它可以建立与服务器的远程连接,检查服 ...

  5. http java编程_Java编程:发送HTTP请求到服务器

    当Java程序需要向服务器发送请求或读取服务器数据时,使用URLConnection类是比较好的选择.URLConnection类封装了与服务器互动操作的方法,通过它可以建立与服务器的远程连接,检查服 ...

  6. java httpget 传参数_Java 发送http请求(get、post)

    1.情景展示 java发送get请求.post请求(form表单.json数据)至另一服务器: 可设置HTTP请求头部信息,可以接收服务器返回cookie信息,可以上传文件等: 2.代码实现 所需ja ...

  7. Ajax--概述、xhr对象的常用属性和方法、xhr的常用事件、xhr对象发送POST请求、xhr对象发送GET请求、xhr对象的兼容性问题、数据交换格式(XML、JSON)

    一.概述 1.1 发展历程 在开始之前先来看一下Ajax的工作原理吧,如下图所示: Ajax全称Asynchronous javascript and xml(异步 JavaScript 和 XML) ...

  8. python同时同步发送多个请求_python如何实现“发送一个请求,等待多个响应”的同步?...

    我正在写一些代码通过串行口与单片机通信. MCU端基本上是一个请求/响应服务器. 一个或多个MCU发送我的请求. 然而,响应可以异步到达并且具有随机延迟,但是响应的顺序将保持不变. 另外,我的应用程序 ...

  9. Php如何发出请求,PHP中如何发送HTTP请求?

    PHP中如何发送HTTP请求? 在 HTML上 提交参数 A 和 B 到 send.php中,在send.php中接收到传过来的参数 A 和 B 并将这2个参数以 http的形式发送给目标地址:一下是 ...

  10. php发请求的方法,php发送http请求的几种方法

    有很多时候,我们还是需要用php去发送http请求的,它可以模拟浏览器的行为,通常它的应用场景有:1.后端测试自己的接口.2.后端请求别人的数据. 后端测试自己的接口,比如我们写了一个返回json数据 ...

最新文章

  1. CAS 单点登录 服务器整合
  2. python3 lambda表达式
  3. 与客家土楼的约会(增城-河源)
  4. DL之CNN:利用CNN算法实现对句子分类+进行情感分析(预测句子情感)
  5. HTML5入门之新的选择器
  6. 剑指 Offer II 014. 字符串中的变位词
  7. mysql3.2.2 .tar.gz_关于MySQL-python-1.2.3.tar.gz安装失败的解决方案
  8. php ora-12154,ORA-12154 和 TNS-03505 监听错误的解决方法
  9. CTSC2017酱油记
  10. 【报告分享】2022年中国商业十大热点展望.pdf(附下载链接)
  11. 五千的手机和两三千的手机使用起来有什么不一样?有必要买贵的吗?
  12. Linux替代Windows系统软件比拼
  13. WinRAR压缩文件参数详解
  14. LINUX下打包jar
  15. 揭密中国500岁世外异人的真实生活
  16. 投资理财启蒙之定投出一个千万富翁?
  17. ARM Cortex-M3/M4/M7 Hardfault异常分析
  18. Java——aaa是文件夹,里面有bbb.txt,ccc.txt,ddd.txt这些文件,有eee这样的文件夹,eee中有fff.txt和ggg.txt,打印出层级来
  19. 张小龙-年薪近3亿的微信之父,他是如何做到的?
  20. 网络之mac地址和ip地址

热门文章

  1. SQL Server文本和图像函数
  2. RedHat Linux 5.5系统下配置yum包详细过程
  3. MongoDB(4)--MongoDB服务的启动
  4. 安装SQL2005只有配置工具或 错误码是29506 解决方案
  5. 建立管理SQL Server登录帐户
  6. Python协程--生成器(通过异常来判断生成器已经结束)
  7. JavaWeb笔记02-Tomcat
  8. C语言求最大公约数和最小公倍数的几种算法
  9. iphone查看删除的短信_iPhone12发布!刚买的苹果手机短信全部消失了怎么办?
  10. java 字符串转成图片_java 转换图片为字符串,将字符串转换成图片显示