[英]Android using java servlets from an existing web application
我有一個現有的並且正在運行的Java Web應用程序。 我想使此應用程序在android上原生,並打算繼續使用相同的servlet。
我上一次做與服務器通信的android應用程序時,將這樣的內容放置在servlet中:
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登錄。 無論如何我能做到嗎?
經過研究,這個問題的答案似乎是否定的。 無法為Web應用程序和android應用程序使用相同的servlet。 無論兩個servlet的內容是否95%相同,都必須創建一個新的servlet。
我目前知道幾種可以通過android登錄的方法:
1)使用上述out.print方法。 創建PrintWriter對象,並使用該對象執行out.print,並通過android java類中的response.toString()。equals(“ expectedString”)進行檢查。
2)cookie,我以為可以用,但是沒有,派遣方法仍然受阻。 關於cookie,我仍然很模糊,但是顯然您可以將用戶信息保留在cookie中,以便在整個應用程序使用過程中對用戶進行身份驗證。
如果以上任何內容有誤,請隨時添加答案或糾正我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.