如何在http响应中发送字符串列表?

时间:2014-09-23 13:38:59

标签: java httpresponse

我在列表assetList中有一个字符串列表。 如何在java servlet的http响应中发送列表? 我是java的新手。

4 个答案:

答案 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);

更多信息:

How to get Object from HttpResponse?

答案 2 :(得分:0)

如果您可以自由选择响应的格式,并且响应主要由客户端应用程序处理,则使用JSON。将字符串列表转换为JSON数组(字符串)并发送。

我推荐使用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中,您可以检索结果并循环遍历列表或者您希望用它做什么!