연결방법
- DAO (connection, Query문 날리기)
- DTO (테이블의 행 정보를 전달하기 위한 객체=클래스 설계도)
-
Volley (HTTP) : 서버 <> 안드 통신필수 Git이용
- Project Structure => Dependencies => Library Dependency
- => com.android.volley:volley:1.2.1
추가 (Gradle에 추가됨)
Servlet 구현시켜놓은상태 java(Eclipse)
'uses-permission android:name="android.permission.INTERNET"'
'android:usesCleartextTraffic="true"'
DAO
public class LoginActivity extends AppCompatActivity {
EditText edt_id;
EditText edt_pw;
Button btn_login;
Button btn_join;
RequestQueue queue;
StringRequest request;
StringRequest request1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
btn_login = findViewById(R.id.btn_login);
edt_id = findViewById(R.id.edt_id);
edt_pw = findViewById(R.id.edt_pw);
btn_join = findViewById(R.id.btn_join);
// Volley 라이브러리 사용하여 서버랑 통신하기
// 1. App에 인터넷 설정해주기 => Manifest.xml에서 설정 (permission, clear~)
// 2. 서버 url 저장하기(=접속이 되는지 확인)
String Join_url = "http://220.71.97.222:8081/MemberServer/JoinServlet";
// 3. requestQueue 객체 생성하기 => 데이터 전송통로(임시저장소 : Buffer✔✔)
queue = Volley.newRequestQueue(getApplicationContext());
// 4. stringRequest 객체 생성하기 => 전송방식 , 서버 url, 응답시 일어날일 (Listener), 에러났을때 일어날 일(Listener)
// get/post , url, new Response.Listener<String>(), new Response.ErrorListener()
request = new StringRequest(Request.Method.POST, Join_url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
// 응답처리하는곳
if (response.equals("1")){
//회원가입 성공
Toast.makeText(getApplicationContext(), "회원가입 성공", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(getApplicationContext(), "회원가입 실패", Toast.LENGTH_SHORT).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// 에러났을때 처리하는곳
}
})
{
// {} stringRequest 공간 할당
// Alt + Insert => getParams()✔✔✔✔
@Nullable
@Override
protected Map<String, String> getParams() throws AuthFailureError {
// 서버로 보낼 파라미터(변수, 데이터) 설정 해주는 곳
Map<String,String> params = new HashMap<>();
// 순서없이 집어넣는다
// key값 : 서버랑 약속한 값(request.getParameter), Value : EditText 이름
params.put("id",edt_id.getText().toString());
params.put("pw",edt_pw.getText().toString());
return params;//✔✔✔✔✔✔
}
};
// 5. queue에 stringRequest 전송하기 => 회원가입 버튼 눌렀을때
// 이벤트 Listener
btn_join.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
queue.add(request);
}
});
//로그인 기능 구현하기
// 1.App 인터넷설정 O
// 2.로그인
// 3.queue 생성하기 O
// 4.StringRequest 생성하기 => url마다 한개씩 생성
String login_url = "http://220.71.97.222:8081/MemberServer/LoginServlet";
request1= new StringRequest(Request.Method.POST, login_url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
})
{
@Nullable
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> params = new HashMap<>();
// 순서없이 집어넣는다
// key값 : 서버랑 약속한 값(request.getParameter), Value : EditText 이름
params.put("id",edt_id.getText().toString());
params.put("pw",edt_pw.getText().toString());
return params;
}
};
// 5.queue에 StringRequest 연결하기 => 로그인 버튼 눌렀을때
btn_login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
queue.add(request1);
Intent intent_main=new Intent(LoginActivity.this,
MainActivity.class);
startActivity(intent_main);
}
});
// 6. 응답처리하기 => 성공했으면 MainActivity로 전환 => "true","false"
}
}