java请求servlet,[Java]Servlet发送Post请求
演示实例: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请求相关推荐
- Java使用hutool工具类发送http请求
Java使用hutool工具类发送网络请求 引入jar包 pom.xml添加以下hutool依赖 <dependency><groupId>cn.hutool</grou ...
- $.ajax 发送请求,JavaScript之Ajax-2 Ajax(使用Ajax发送get请求、使用Ajax发送post请求)
一.使用Ajax发送get请求 发送异步请求的步骤 - 获取Ajax对象:获取 XMLHttpRequest对象实例 - 创建请求:调用XMLHTTPRequest对象的open方法 - 设置回调函数 ...
- java的connect和http_【JAVA】通过URLConnection/HttpURLConnection发送HTTP请求的方法
Java原生的API可用于发送HTTP请求 即java.net.URL.java.net.URLConnection,JDK自带的类: 1.通过统一资源定位器(java.net.URL)获取连接器(j ...
- java 服务器 http请求_Java网络编程——发送HTTP请求到服务器
当Java程序需要向服务器发送请求或读取服务器数据时,使用URLConnection类是比较好的选择.URLConnection类封装了与服务器互动操作的方法,通过它可以建立与服务器的远程连接,检查服 ...
- http java编程_Java编程:发送HTTP请求到服务器
当Java程序需要向服务器发送请求或读取服务器数据时,使用URLConnection类是比较好的选择.URLConnection类封装了与服务器互动操作的方法,通过它可以建立与服务器的远程连接,检查服 ...
- java httpget 传参数_Java 发送http请求(get、post)
1.情景展示 java发送get请求.post请求(form表单.json数据)至另一服务器: 可设置HTTP请求头部信息,可以接收服务器返回cookie信息,可以上传文件等: 2.代码实现 所需ja ...
- Ajax--概述、xhr对象的常用属性和方法、xhr的常用事件、xhr对象发送POST请求、xhr对象发送GET请求、xhr对象的兼容性问题、数据交换格式(XML、JSON)
一.概述 1.1 发展历程 在开始之前先来看一下Ajax的工作原理吧,如下图所示: Ajax全称Asynchronous javascript and xml(异步 JavaScript 和 XML) ...
- python同时同步发送多个请求_python如何实现“发送一个请求,等待多个响应”的同步?...
我正在写一些代码通过串行口与单片机通信. MCU端基本上是一个请求/响应服务器. 一个或多个MCU发送我的请求. 然而,响应可以异步到达并且具有随机延迟,但是响应的顺序将保持不变. 另外,我的应用程序 ...
- Php如何发出请求,PHP中如何发送HTTP请求?
PHP中如何发送HTTP请求? 在 HTML上 提交参数 A 和 B 到 send.php中,在send.php中接收到传过来的参数 A 和 B 并将这2个参数以 http的形式发送给目标地址:一下是 ...
- php发请求的方法,php发送http请求的几种方法
有很多时候,我们还是需要用php去发送http请求的,它可以模拟浏览器的行为,通常它的应用场景有:1.后端测试自己的接口.2.后端请求别人的数据. 后端测试自己的接口,比如我们写了一个返回json数据 ...
最新文章
- CAS 单点登录 服务器整合
- python3 lambda表达式
- 与客家土楼的约会(增城-河源)
- DL之CNN:利用CNN算法实现对句子分类+进行情感分析(预测句子情感)
- HTML5入门之新的选择器
- 剑指 Offer II 014. 字符串中的变位词
- mysql3.2.2 .tar.gz_关于MySQL-python-1.2.3.tar.gz安装失败的解决方案
- php ora-12154,ORA-12154 和 TNS-03505 监听错误的解决方法
- CTSC2017酱油记
- 【报告分享】2022年中国商业十大热点展望.pdf(附下载链接)
- 五千的手机和两三千的手机使用起来有什么不一样?有必要买贵的吗?
- Linux替代Windows系统软件比拼
- WinRAR压缩文件参数详解
- LINUX下打包jar
- 揭密中国500岁世外异人的真实生活
- 投资理财启蒙之定投出一个千万富翁?
- ARM Cortex-M3/M4/M7 Hardfault异常分析
- Java——aaa是文件夹,里面有bbb.txt,ccc.txt,ddd.txt这些文件,有eee这样的文件夹,eee中有fff.txt和ggg.txt,打印出层级来
- 张小龙-年薪近3亿的微信之父,他是如何做到的?
- 网络之mac地址和ip地址
热门文章
- SQL Server文本和图像函数
- RedHat Linux 5.5系统下配置yum包详细过程
- MongoDB(4)--MongoDB服务的启动
- 安装SQL2005只有配置工具或 错误码是29506 解决方案
- 建立管理SQL Server登录帐户
- Python协程--生成器(通过异常来判断生成器已经结束)
- JavaWeb笔记02-Tomcat
- C语言求最大公约数和最小公倍数的几种算法
- iphone查看删除的短信_iPhone12发布!刚买的苹果手机短信全部消失了怎么办?
- java 字符串转成图片_java 转换图片为字符串,将字符串转换成图片显示