我在列表assetList中有一个字符串列表。 如何在java servlet的http响应中发送列表? 我是java的新手。
答案 0 :(得分:0)
将列表转换为字符串后调用此方法:
private void writeResponse(HttpServletResponse response, String responseString) {
try {
PrintWriter out = response.getWriter();
out.println(responseString);
out.flush();
response.flushBuffer();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
要将字符串列表转换为字符串,请参阅: Best way to convert an ArrayList to a string
答案 1 :(得分:0)
对象列表是一个对象。这与在响应中添加对象(序列化)和在另一端添加反序列化相同。
OutputStream out = response.getOutputStream();
oos = new ObjectOutputStream(out);
oos.writeObject(yourSerializableObject);
更多信息:
答案 2 :(得分:0)
如果您可以自由选择响应的格式,并且响应主要由客户端应用程序处理,则使用JSON。将字符串列表转换为JSON数组(字符串)并发送。
我推荐使用JSON,因为:
当然有很多替代方案,包括语言特定的(Java对象序列化),更紧凑的选择,更快的编码,解码等等。
但JSON是典型的基于Web的应用程序协议的事实上的选择。
答案 3 :(得分:0)
我建议你阅读有关servlet,JSP和ManagedBeans的更多信息。
现在开始讨论它们如何工作,但稍后你可以升级并使用JSF for Java Web Applications。
回到你的问题:
通常的方法是使用 Java“Managed”Beans !
假设您向servlet发送请求,响应应该是人员列表:
使用getter和setter方法创建一个名为Person.java
的Bean,其中 id,name,tel,... etc 。
然后你会创建一个类PersonManager.java
此对象可能有获取人员列表或者列表的方法
在您的servlet中,您启动这些数据并将其放入REQUEST Scope中以进行响应
这是一个如何在Servlet中执行此操作的示例:
public class YourServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
{
Person p = new Person();
p.setName("Mohamad ...");
p.set....
ArrayList phones = new ArrayList();
PhoneNumber ph = new PhoneNumber();
ph.set...;
ph.set...;
al.add(ph);
ph = new PhoneNumber();
ph.set...;
ph.set...;
al.add(ph);
a.setPhoneNumbers(al);
req.setAttribute("person", p);
RequestDispatcher rd = req.getRequestDispatcher("yourResult.jsp");
rd.forward(req, res);
}
}
然后,在JSP中,您可以检索结果并循环遍历列表或者您希望用它做什么!