0

あるケース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 (サーブレットAがリクエストをディスパッチした)JSONに送信するには、むしろを使用することをお勧めしますGsonGsonこのリストをに送信するにはどうすればよい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 に答える