首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从Servlet Java获取JSON对象

从Servlet Java获取JSON对象
EN

Stack Overflow用户
提问于 2012-12-09 12:46:06
回答 3查看 2.1K关注 0票数 0

我想创建一个应用程序,该应用程序将从servlet获取一个JSON对象以对其进行反序列化,然后使用它的变量执行其他操作。

我的servlet在doPost中有以下代码:

代码语言:javascript
代码运行次数:0
运行
复制
 protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

      ObjectOutputStream os;
      os = new ObjectOutputStream(response.getOutputStream());

      String s = new String("A String");

      Gson gson = new Gson();
      String gsonObject= gson.toJson(s);

      os.writeObject(gsonObject);
      os.close();

    }

现在,当servlet运行时,我可以通过浏览器访问它,如果我在doGet方法中发布相同的代码,将会下载servlet文件,这不是我想要的。

我应该在我的第二个应用程序中使用什么来连接到servlet,获取对象,以便稍后可以操作它?

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-09 13:50:16

您只需在servlet中进行一些更改:

代码语言:javascript
代码运行次数:0
运行
复制
protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
   String s = new String("A String");
 String json = new Gson().toJson(s);
 this.response.setContentType("application/json");
 this.response.setCharacterEncoding("UTF-8");
 Writer writer = null;
 try {
        writer = this.response.getWriter();
        writer.write(json);
 } finally {
    try {
        writer.close();
    } 
    catch (IOException ex) {
    }
 }
}
票数 0
EN

Stack Overflow用户

发布于 2012-12-09 13:02:12

如果正在下载servlet文件,而不是在浏览器中显示它,则很可能没有在响应中设置内容类型。如果要编写JSON字符串作为servlet响应,则必须使用

代码语言:javascript
代码运行次数:0
运行
复制
response.setContentType("text/html");
response.getWriter().write(json);

请注意订单,它的"text/html“而不是"html/text”

票数 0
EN

Stack Overflow用户

发布于 2012-12-09 14:19:55

IfI正确地理解了这个问题,然后您就可以使用、java.net.HttpURLConnectionjava.net.URL对象创建到此servlet的连接,并在第二个servlet中读取上述JSON servlet流传输的JSON。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13784741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档