快速 Java Servlet 和 HTTP Q(使用 Titanium Appcelerator)

Quick Java Servlet and HTTP Q (with Titanium Appcelerator)

我创建了一个基本的 Java Servlet 页面,它只显示 hello world

我试图学习和理解的是如何基本上从网络服务器上提取信息并将其显示在移动设备上(然后希望 post 信息返回到网页)

我这里有一些示例代码,当应用程序运行时没有连接错误,一切都按计划进行,警报消息显示 Hello World,我猜是 'this.response.text)

我一直在阅读 Appcelerator Titanium 提供的文档,但发现很难理解 JSON 文件和解析等。

问。所以如果有人能帮助我理解如何从 servlet 页面上拉下 'Hello World'' 并可能显示在 label/textfield 中 谢谢 希望你的回答能帮助我理解如何从移动客户端获取数据并将信息发送到网页

var xhr = Ti.Network.createHTTPClient({
onload : function(e){
    Ti.API.info('Received text: ' + this.responseText);
    alert(this.responseText);


},
onerror: function(e) {
    Ti.API.info('error, HTTP status = ' + this.status);
    alert('error');
},
timeout:5000
});

xhr.open("GET", "http://130.206.127.43:8080/HelloWorld");
xhr.send();

我认为您想要的是 return 来自 Java servlet 的结果作为 JSON 字符串,以便您可以在 Titanium 中正确读取它。

首先创建地图或w/e,其中包含您想要return 给客户的信息。

{message=Hello world, action=display, extra=extra}

然后将其转换为JSON字符串(examples)

现在在您的 Titanium 应用程序中,您可以将结果解析为 JSON 并使用您的 returned 信息:

onload : function(e){
    var result = JSON.parse(this.responseText);
    alert(result.message);
    alert(result.action);
    alert(result.extra);
},

编辑: 替换了评估

我认为它不会响应,因为您尝试拉取 json 您的 servlet 页面中不存在的表单

您需要使用的是一个 Web 服务页面,其中包含 JSON 形式的数据,例如:

[{"message" : "Hello World"}]

因此,如果您对 j2ee 有很好的了解,请尝试编写包含 json 形式的 Web 服务页面

然后在 onload 函数中输入:

var json = eval('('+this.responseText+')');

并使用 alert(json.message);

显示数据

感谢您的回答,这是基本的 servlet class

// Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// Extend HttpServlet class
public class HelloWorld extends HttpServlet {

private String message;

public void init() throws ServletException
{

  message = "Hello World";
}

public void doGet(HttpServletRequest request,
                HttpServletResponse response)
        throws ServletException, IOException
{
  // Set response content type
  response.setContentType("text/html");

  // Actual logic goes here.
  PrintWriter out = response.getWriter();
  out.println("<h1>" + message + "</h1>");
}

不幸的是,我对 j2ee 不是很了解,但我现在会查一下 但我需要改变吗

public void init() throws ServletException
{

  message = "Hello World";
}
...to
public void init() throws ServletException
{

  [{"message" : "Hello World"}]
}

以及

response.setContentType("text/html");
...to
response.setContentType("application/json");