Java 如何在http响应中发送字符串列表?
我在列表资产列表中有一个字符串列表。 如何在Javaservlet中的http响应中发送列表?Java 如何在http响应中发送字符串列表?,java,httpresponse,Java,Httpresponse,我在列表资产列表中有一个字符串列表。 如何在Javaservlet中的http响应中发送列表? 我对java非常陌生。将列表转换为字符串后调用此方法: private void writeResponse(HttpServletResponse response, String responseString) { try { PrintWriter out = response.getWriter(); out.println(responseString
我对java非常陌生。将列表转换为字符串后调用此方法:
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();
}
}
要将字符串列表转换为字符串,请参见:
对象列表就是一个对象。这与在响应中添加对象(序列化)和在另一端反序列化是一样的
OutputStream out = response.getOutputStream();
oos = new ObjectOutputStream(out);
oos.writeObject(yourSerializableObject);
更多信息:
如果您可以自由选择响应的格式,并且响应主要由客户端应用程序处理,那么请使用JSON。将字符串列表转换为JSON数组(字符串)并发送该数组 我推荐JSON,因为:
- 您最好使用标准格式/序列化方案,而不是非标准(即自定义)方案
- JSON在各种编程语言中易于生成和解析
- JSON是基于文本的(相对而言)人类可读的
但是对于典型的基于web的应用程序协议,JSON实际上是一个不错的选择。我建议您阅读更多关于servlet、JSP和ManagedBeans的信息 首先,现在很高兴知道这些东西是如何工作的,但稍后您可以升级并使用JSF进行Java Web应用程序 回到你的问题: 通常的方法是使用Java“托管”bean来实现这一点 假设您向servlet发送请求,响应应该是一个人员列表: 您可以使用getter和setter方法创建一个名为
Person.java
的Bean,其中包含id、name、tel等等
然后创建一个控制器类,如PersonManager.java
此对象可能具有获取人员列表或员工列表的方法
在servlet中初始化这些数据并将其放入响应的请求范围
下面是如何在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中,您可以检索结果并在列表上循环,或者您想用它做什么 为什么是HTTP Servlet响应?我正在执行GET请求,需要发送响应。您没有向我们提供任何信息。您的代码是做什么的,对客户端的响应是什么?您希望响应以什么格式“显示”给客户端?感谢所有能够更好地帮助您提出问题的技术信息。您可以在web方法中定义希望接收并愿意生成的数据的合同格式。您可以创建自己的格式,也可以只使用已有的格式:JSON、XML等。有大量的库可以帮助您实现这一点。它查询db并获取名称列表。我必须把那张名单寄去作为答复。我不知道什么是更好的格式发送列表的回应。可以是纯文本。我们也可以作为json发送。它不是字符串。这是一个字符串列表。