프론트 엔드 - 서블릿 - jdbc - db 연결 (기능 적용 하는 과정)
1. 기능을 구현하기 위한 입력받고자 하는 것이나 표현하고자 하는것을 프론트 엔드에 구현
2. 어떤 형식으로 (onclick 할시 or useEffect (화면 킬때)) 등등 데이터 값을 불러오는 과정의 통신을 어떻게 작동시킬 건지 고려해서 작성한다
3. 해당 통신에서 사용하게 될 api 양식을 만들기
4. api 에 원하는 데이터를 보낼때 쓰일 데이터나 데이터 정보를 얻기위한 값들을 보낼 양식 작성
5.도메인 주소값이 백엔드와 동일한지, 그리고 통신api 뒤의 도메인 뒤에 붙은 값이
백엔드의 servlet 의 어노테이션과 같은지 확인
6. 원하는 데이터를 받을 수 있도록 해당 데이터를 받을 수 있도록 Vo 파일에 받으려는 데이터 양식과
getter 와 setter를 만들어 준다.
7. 각 기능별 Servlet 에 아래의 양식을 입력해준다
여기서 doget을 넣은이유는 통신과 연결했을때 서버가 잘 켜질때 확인하기 위해서 넣은거지 나는 post 방식의 통신방법을 이용했다.
두번째 doOption 라인에서
Common.corsResSet(response);
이 코드를 꼭 넣어줘야 한다.
8. 요청값을 dopost 를 통해 받아준후 스트링 버퍼형식으로 받아준다.
이후에 제이슨 객체의 형식으로 담아주고 그걸 다시 String 으로 읽어준다.
그리고 MemberDao에 해당 데이터 값을 전달해 준다.
9.memberDAO 에서 원하는 쿼리를 DB로 날려준다
이때 ExcuteQuery 는 select 문 같은 조회할때 사용되는데 반환값은 문장으로 반환된다.
그리고 한 라인당 하나의 조회값을 의미한다.
이때 rs.next 값이 true 인지 체크한다고 System.out.println(rs.next) 를 조회한다면 true 라고 나오더라도
값이 제대로 전달안되고 소모된다.
업데이트 문 같은 경우에 ExcuteUpdate 문을 통해서 query문을 날리는데 이때 영향을 미친 데이터의 수만큼
숫자를 반환한다. 예를 들어 한줄을 업데이트하는 쿼리문을 날렸다면 그 쿼리문이 제대로 작동한 것을 알기 위해서는
되돌아 오는 값이 1과 같은지 확인하면 된다.
어쨌든 조회한 값에 의해 데이터가 반환된 값을 dao 밖으로 가져가거나 db의 데이터 값이 수정되었다는 것에 대한 boolean 값을 가지고 dao 밖으로 나간다. 이를 통해서 업데이트가 제대로 진행 되었는지 확인 할 수 있다.
10. DAO 에서 나온 데이터 값을 전달하거나 boolean 값을 전달받아 print.out 을 통해서 프론트앤드 쪽으로 데이터를 날려준다.
11. 프론트에서 요청을 통해서 백엔드에 가서 db에 쿼리문을 통해 조회하거나 db값에 변경을 주고 다시 프론트로 그에 해당하는 데이터값이나 변경되었는지에 대한 boolean 값을 가지고 돌아온다.
딱 이 요청 하나로 시작된 것이 서블릿을 통해 날라가고 db를 거친후 다시 프론트로 날라온 것이다.
그리고 그의 결과값으로 웹에 그에 해당하는 반응을 띄우거나 정보를 전달 할 수있게 된다.