2012-07-12 99 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中,以便在整個應用程序的使用過程中對用戶進行身份驗證。

隨意添加到答案或糾正我,如果我在上述任何錯誤。

相關問題