0

在一种情况下,aservlet 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,所以我什么都不知道。

4

1 回答 1

2
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
  }

小服务程序 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);
// ...
%>
于 2013-01-24T15:57:30.783 回答