在一种情况下,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/