package lixiang;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
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 com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
/**
* Servlet implementation class Fangxiang
*/
@WebServlet("/Fangxiang")
public class Fangxiang extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Fangxiang() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
// 设置响应内容类型和字符编码(非常重要,避免中文乱码)
response.setContentType("text/html;charset=UTF-8");
response.getWriter().append("Served at: ").append(request.getContextPath());
String username = request.getParameter("a");
PrintWriter out = response.getWriter();
out.println("<h1>Hello, World!</h1>");
out.println(username);
String urlString ="http://localhost:8080/curd/Fangxiang";
String jsonInputString = "{\"SystemName\":\"中文\", \"age\":30}";
try {
// 创建 URL 对象
URL url = new URL(urlString);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
// 设置请求方法和头
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json; utf-8");
con.setRequestProperty("Accept", "application/json");
con.setDoOutput(true);
// 发送 JSON 数据
try (OutputStream os = con.getOutputStream()) {
byte[] input = jsonInputString.getBytes("utf-8");
os.write(input, 0, input.length);
}
try (BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(), "utf-8"))) {
StringBuilder res = new StringBuilder();
String responseLine;
while ((responseLine = br.readLine()) != null) {
res.append(responseLine);
out.println(res);
}
System.out.println(res.toString());
} catch (IOException e) {
// 处理错误,例如打印错误信息或记录日志等
e.printStackTrace();
} finally {
con.disconnect(); // 关闭连接
}
// 获取响应
int responseCode = con.getResponseCode();
System.out.println("Response Code: " + responseCode);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//doGet(request, response);
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("UTF-8"); //处理中文乱码的问题
StringBuilder json = new StringBuilder();
String line;
BufferedReader reader = request.getReader();
while ((line = reader.readLine()) != null) {
json.append(line);
}
System.out.println(json.toString());
// 解析JSON字符串
// String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";
JSONObject jsonObject = JSON.parseObject(json.toString());
String SystemName = jsonObject.getString("SystemName");
System.out.println(SystemName);
// 响应客户端(示例:返回接收到的数据)
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(jsonObject.toJSONString());
PrintWriter out = response.getWriter();
out.println("<br>");
out.println(SystemName);
}
}
java中使用servlet发送json与接收json的示例代码
于 2026-02-13 14:24:51 首次发布

1437

被折叠的 条评论
为什么被折叠?



