java - 这里如何使用Gson将列表发送回jsp页面?

标签 java json jakarta-ee servlets gson

在一种情况下,servlet A 将 IP 发送到远程服务器,希望服务器发回该 IP 共享的文件列表:

Servlet A

connection.openConnection(); // Sends the IP as the query parameters
if(connection.getResponseCode() == 200) {  
    requestDispatcher.forward(request,response); // Forward to ShowFiles.jsp
} else { // Error ! }

注意:“ShowFiles.jsp”是一个 jsp 页面,它将显示将从服务器接收到的列表。

好的!现在服务器上的servlet(我们将其命名为B)接收查询参数并检查数据库中是否有与接收到的IP对应的文件。如果有文件共享,它会发回名称列表,否则会显示一条消息,提示没有文件被共享。

Servlet B (On server that receives IP as query parameter)

String ip = getAttribute("IP");
if( hasSharedFile(ip) ) {
  list = fetchList(ip); // Basically an ArrayList<String>
  // SEND THIS LIST BACK TO THE CLIENT
} else {
   // Return a message saying,No file has been shared till with the server
  }

通过 servlet B (在远程服务器上)将此列表发送到 ShowFiles.jsp (servlet A 发送了请求) 建议我使用 JSON,而不是 Gson。如何使用 Gson 将此列表发送到 ShowFiles.jsp

我没用过Gson,所以一无所知。

最佳答案

Servlet B (On server that receives IP as query parameter)

String ip = getAttribute("IP");
if( hasSharedFile(ip) ) {
  list = fetchList(ip); // Basically an ArrayList<String>
  // SEND THIS LIST BACK TO THE CLIENT

    Gson gson = new Gson();
    gson.toJson(list, resp.getWriter());

} else {
   // Return a message saying,No file has been shared till with the server
  }

Servlet A

if(connection.getResponseCode() == 200) {
    Gson gson = new Gson();
    ArrayList<String> list = gson.fromJson(new InputStreamReader(connection.getInputStream()),ArrayList.class);

.jsp从阅读器读取

<%@page import="com.google.gson.Gson"%>
<%@page import="java.util.ArrayList"%>

<%
Gson gson = new Gson();
ArrayList list = gson.fromJson(request.getReader(), ArrayList.class);
// ...
%>

关于java - 这里如何使用Gson将列表发送回jsp页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14499759/

相关文章:

java - 为什么接口(interface)(方法名称)的实现会被混淆,即使 proguad 中存在 '-keep interface'

php - 将使用 $.ajax() 和 JSONP 的 API 调用替换为服务器到服务器的 API 调用

json - 用于添加多个标签名称和标签值的 Azure Policy

java - 为 JMS 使用特定的 keystore

java - 什么是汤姆猫? Web 容器还是 EE 容器?

java - Mac OS X 如何确定应用程序需要 Java?

java - 使用apache poi将表格插入到word文档的特定位置

java - 在 JPanel 中使文本跟随光标

java - 使用 Jackson 进行 JSON 反序列化 : No suitable constructor found for type - providing default constructor or annotate constructor is imposible

java - JPA 中外键的主详细信息 ID