Android 는 클 라 이언 트 와 서버 의 상호작용 (로그 인 기능) 을 개발 합 니 다.
6806 단어 안 드 로 이 드 개발
: 《Android Client Service 》
이틀 동안 클 라 이언 트 와 서버 의 상호작용 을 배우 고 로그 인 기능 을 간단하게 했다.
\ # 준비 작업:
1, 자바 EE 개발 환경 구축, 해당 eclipse 다운로드
2, Tomcat 설치
3, tomcat eclipse 플러그 인 설치,http://www.eclipsetotale.com/tomcatPlugin/
\ # 바로 시작:
1. 다이나믹 웹 프로젝트 를 새로 만 듭 니 다. 기본 값 으로 합 시다.
2. 과정 지도 에 따라 tomcat -- > lib 폴 더 의 세 개의 파일 을 프로젝트 디 렉 터 리 (WebContent -- > lib) 에 넣 습 니 다.
* el-api.jar; jsp-api.jar; servlet-api.jar
3, src 폴 더 아래, 새 패키지 와 클래스, 클래스 LoginServlet4Android 확장 HttpServlet
새로 만 들 면 두 가지 주요 실현 방법 이 있 을 것 이다 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("---get---");
this.doPost(request, response);
}
/**
* URL?para1=value1 2=value2&...
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //
//
request.setCharacterEncoding("UTF-8");
//
String loginName = request.getParameter("LoginName");
String loginPassWord = request.getParameter("LoginPassWord");
/**
* text/html
*/
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = null;
/**
* Login logical judge
*/
DataOutputStream output = new DataOutputStream(response.getOutputStream());
try{
out = response.getWriter();
if(loginName.equals("sun") && loginPassWord.equals("011"))
{
//right to client response..
output.writeUTF("server data: success!");
output.writeInt(1);
}
else
{
//wrong
output.writeUTF("server data: fail!");
out.print("failed");
}
}
finally
{
if(out != null)
out.close();
if(output != null)
output.close();
}
}
서버 쪽 의 코드 는 비교적 간단 하 며 주로 doPost 에서 데 이 터 를 받 고 검증 합 니 다.후기 에는 데이터베이스 에 해당 하 는 데 이 터 를 저장 할 수 있 기 를 희망 한다.
------------------------------------------------------------------------------------------------------------------------------------------------------
Android 엔 드 의 실현:
package com.example.service;
import java.lang.ref.WeakReference;
import com.example.mapsun.LoginActivity;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
public class LoginAsyncTask extends AsyncTask
여기 서 AsyncTask 를 계승 하 는 클래스 를 실현 하고 서버 의 요청 을 비동기 로 보 내 며 구조 함수 에서 인터페이스의 일부 인 자 를 전달 하여 인터페이스의 변 화 를 실현 합 니 다.
이런 종류의 내 이전 블 로그 에서 도 비동기 로 디 스 플레이 그림 을 불 러 오 는 작업 을 한 적 이 있다.아주 좋 습 니 다. 사실은 바 텀 페이지 에 Handler 의 조작 을 밀봉 하 였 습 니 다.
자, 오늘 은 이틀 간 의 실현 코드 를 대충 붙 여 보 겠 습 니 다. 안 드 로 이 드 폰 은 컴퓨터 에 있 는 서버 에 접근 할 수 없 지만 어 제 는 괜 찮 았 습 니 다.
= = = = = = = = = = = = = = = = = = = = = = = = = = 보충: UserService 의 userLogin 기능 실현 = = = = = = = = = = = = = = = = = = = 2014 - 12 - 10 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
주로 서버 측의 데이터 조작 을 수신 합 니 다. 코드 는 다음 과 같 습 니 다.
package com.example.service;
public class UserServiceImpl implements UserService {
private static final String TAG = "UserServiceImplement";
@Override
public boolean userLogin(String loginName, String loginPassword)
throws Exception {
// TODO Auto-generated method stub
String result;
HttpPost httpPost = new HttpPost(UriAPI.HTTPCustomer);
//create params
List params = new ArrayList();
params.add(new BasicNameValuePair("LoginName", loginName));
params.add(new BasicNameValuePair("LoginPassWord", loginPassword));
try{
//encode data
httpPost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
HttpResponse httpResp = new DefaultHttpClient().execute(httpPost);
//get response
if (httpResp.getStatusLine().getStatusCode()==200) {
byte[] data =new byte[2048];
data =EntityUtils.toByteArray((HttpEntity)httpResp.getEntity());
ByteArrayInputStream bais = new ByteArrayInputStream(data);
DataInputStream dis = new DataInputStream(bais);
result=new String(dis.readUTF());
Log.i("service result:", result);
return true;
}
}catch(ClientProtocolException e){
e.printStackTrace();
}catch(UnsupportedEncodingException e){
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
public class UriAPI{
//
public static final String HTTPCustomer = "http://192.168.0.56:8080/firstweb/login.do";
}
}
요약: 로그 인 기능 은 주로 서버 의 HttpServlet 작업 에 익숙 합 니 다. 그 중에서 자바 웹 과 관련 된 기초 도 배 웠 습 니 다. 안 드 로 이 드 클 라 이언 트 HttpPost 의 실현 과 AsyncTask 류, 그리고 일부 안 드 로 이 드 기본 내용 을 돌 이 켜 보 았 습 니 다. 이 프로젝트 의 시작 이 라 고 할 수 있 습 니 다.
또한 상기 코드 에 많은 세부 적 인 문제 가 존재 합 니 다. 먼저 놓 고 그 다음 에 안 드 로 이 드 클 라 이언 트 의 기능 실현 에 전념 할 것 입 니 다. 인터페이스 레이아웃, 사진 촬영 기능, GPS 궤적 등 을 포함 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Android 개발 에 사용 되 는 MT 난수 생 성기이전의 AS3 이식 판 을 약간 고 쳐 서 현재 jkanji 에 사용 하고 있 습 니 다.테스트 를 좀 해 봤 는데 버그 가 별로 없 는 것 같 아 요.가장 간단 한 동전 테스트 를 해 봤 는데 같은 씨앗 의 경우 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.