2012-07-12 94 views
0

我有一个现有的可用的Java Web应用程序。我想让这个应用程序原生在android上,并打算继续使用相同的servlet。使用来自现有Web应用程序的Java servlet的Android

上次我在做与服务器是在servlet把这样的事情连通的Android应用程序:

PrintWriter out = response.getWriter(); 
out.print("pass"); 

而在Android的Java类,我这样做:

String response = null; 
    try { 
     response = CustomHttpClient.executeHttpPost(
     "http://10.0.2.2/ProjectName/" + "LoginServlet",postParameters); 
     String res = response.toString(); 
        if(res.equals("pass") 
        { 
         /**do the things i want**/ 
        } 
       } 
       catch(Exception e) 
       { 
        e.printStackTrace(); 
       } 

是在我的web应用程序的servlet的使用HttpSession中,具有分配方法是这样的:

HttpSession session = request.getSession(); 
session.setAttribute("user",user); 

这:

dispatch(request, response, "/login.jsp"); 

我加入了PrintWriter的到我的web应用程序使用它没有现有的servlet。制作了关于logcat的 而这个错误:

07-12 08:59:46.344: E/jdwp(487): >>> comparing 'jsp' to 'ers' 
07-12 08:59:46.454: E/jdwp(487): >>> comparing 'jsp' to 'nfo' 
07-12 08:59:46.524: E/jdwp(487): >>> comparing 'jsp' to 'o$1' 
07-12 08:59:46.534: E/jdwp(487): >>> comparing 'jsp' to 'nfo' 
07-12 08:59:46.534: E/jdwp(487): >>> comparing 'jsp' to 'o$1' 
07-12 08:59:46.594: E/jdwp(487): >>> comparing 'jsp' to 'Key' 
07-12 08:59:46.934: E/jdwp(487): >>> comparing 'jsp' to 'ver' 
07-12 08:59:47.044: E/jdwp(487): >>> comparing 'jsp' to 'ile' 
07-12 08:59:47.334: E/jdwp(487): >>> comparing 'jsp' to 'gin' 
07-12 08:59:47.334: E/jdwp(487): >>> comparing 'jsp' to 'nfo' 
07-12 08:59:47.354: E/jdwp(487): >>> comparing 'jsp' to 'ame' 
07-12 08:59:47.404: E/jdwp(487): >>> comparing 'jsp' to 'ger' 
07-12 08:59:47.404: E/jdwp(487): >>> comparing 'jsp' to 'eme' 
07-12 08:59:47.504: E/jdwp(487): >>> comparing 'jsp' to 'ams' 

和比较的清单去。

问题:我错过了什么,或者我应该创建新的servlet吗? (我真的希望它不是第二个选项)

编辑

我发现该错误是由变成一个jsp文件,而不是只是一个文本字符串响应调度方法产生,并注释掉调度方法允许我使用android成功登录到服务器。

但是,我想保持调度方法和PrintWriter,使得android应用程序和web应用程序都可以使用相同的单个servlet来登录。无论如何,我可以做到这一点?

回答

0

经过一番研究,这个问题的答案似乎是一个没有。没有办法在web应用程序和android应用程序中使用相同的servlet。无论2个servlet的内容是否相同,都必须创建一个新的servlet。

有多种方法,我现在知道了Android登录可以做到:使用的out.print方法如上所述

1)。创建PrintWriter对象并使用该对象执行out.print,并通过android java类中的response.toString()。equals(“expectedString”)对其进行检查。

2)饼干,我认为可以工作但没有,调度方法仍然存在。在cookies方面,我仍然非常模糊,但显然您可以将用户信息保存在cookie中,以便在整个应用程序的使用过程中对用户进行身份验证。

随意添加到答案或纠正我,如果我在上述任何错误。

相关问题