从servlet返回的字符串不正确

时间:2013-09-20 02:41:07

标签: android servlets

我面临一个奇怪的问题,即无法正确读取servlet响应。

我的jetty webserver上的servlet返回如下数据:

resp.setStatus(HttpServletResponse.SC_OK);
resp.setContentType("text/plain");
resp.setContentLength(1024);
resp.getWriter().write("DeviceAndNumberAlreadyRegistered");

我的Android应用程序读取这样的响应:

InputStream is = httpEntity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(
        is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
 while((line=reader.readLine())!=null){
 sb.append(line);
 }
is.close();
return sb.toString();

在Logcat上打印值,我可以看到响应值(sb.toString())与我的servlet返回的值相同(“DeviceAndNumberAlreadyRegistered”)。我还使用trim()验证了没有空格。

问题是如果我尝试在IF块中比较我的Android应用程序中的值,它不会将其验证为TRUE ,即下面的代码返回false:

if(result == "DeviceAndNumberAlreadyRegistered")

我的servlet返回的文本无关紧要,它只是在IF块中不验证为TRUE。那是为什么?

1 个答案:

答案 0 :(得分:1)

使用equels检查字符串。

“==”只有当它们是同一个对象时才返回true,我猜?