* 10 ~ 12일 *
4개 과정 기계적으로 만들어주면 됨
1. 컨트롤 스페이스 - 기본 생성자
2. 우클릭 > 소스 > 필드 > 속성들을 넘겨받는 생성자
3. 게터 세터 generate 다 선택
4. 맨 끝에 가서, 객체를 문자열로 변화
우클릭 > toString
18~27. jdbc 연결해줘서, Oracle에서 만들어준 데이터를 가지고 온다.
27. 결과 집합 형태로 21개의 쿼리가 담겨있는 상태
16.
쿼리를 담아줄 배열을 만들어줌
원래 14번째줄처럼 만들어줬으나, 이건 고정적으로밖에 배열 형성이 안되서 Collection(set, list, map) 중 list로 '가변적 배열'이 되게 해주고, generic(특화된 자료형)으로 Member의 값만 담도록 해준다.
13. getList() 함수를 만들어준건데 추후 쓰일 일이 있다.
- 이름 아무거나 지어져도 되나, 저 함수를 쓰는! 입장에서 'getList()'라고 하는게 편해서 함수 이름을 저렇게 지은거라고 추정 ㅎㅎ
29. while (rs.next()) 읽을게 없어서 false 나올때까지, 아래를 반복해줄거야
30~32. Oracle DB에서 "id"라고 적혀있는 데이터를 get 해서 int id에 넣어줄거고 ~ 나머지도 그렇게 넣어줄거야.
35. just 저장 용도라며 만들었던 Member.java 파일의 Member를 이제 사용할거야.
36. (우선 지금 예제에서는 3개 - id, nicName, pwd만 사용할건데) member에다가 / set을 해서 값을 넣어줄거야
// while 문 한 번 돌면 (id, nicName, pwd가 담긴) 한 사람의 정보가 Oracle DB에서 지금 java로 옮겨지는거고
37. 이거를 차곡차곡 '2번'에서 만들어준 공간 list에 넣을거야
43. 그리고 반환은 이 list를 하는 / getList()의 함수가 드디어 이제 만들어진거지
cf) 함수 이름 이해 안갔을 때
(배경 설명)
- 원래 여기에 url, sql... 등 jdbc 연결해주는 정보도 같이 있었는데, 콘솔 출력용 vs 데이터용(MemberService)으로 나눠줘서 지금 여기에는 콘솔 출력용 코드만 있다.
- 코드가 있는 이유는 필요가 있기 때문. 오라클 DB에서 데이터 가지고 오고 > 값을 넣어주고(MemberService에서 set)을 해줘도 눈에 보이는게 없으니, '우리에게' 시각적으로 보여주기 위해 이렇게 콘솔용을 만든 것. (여기서는 get을 해서 굳이 출력해주고 있는 중)
26. 이걸 안쓰면 JDBCProgram.java는 MemberService가 만들어져있는지 아닌지도 모름. 여기서 사용하겠다고 선언해주듯 작성
27. memberService의 getList() 함수를 / <- 21명의 (id, nicName, pwd가 담긴 데이터)
List<Member> 타입, listdiffer 이름으로 담아줄 것
- 맨 처음에 Member [] 라고 해서 오류 났었던 것을 기억하기.
MembrService.java에서 getList() 함수의 반환 '타입'은 List<Member>이기 때문에 당연히! 여기에 맞춰서 준비를 해줘야겠지~
29. 처음에 listdiffer.length 했었는데 오류가 났는데 이럴 경우 .size()를 해보면 된다는 꿀팁 有
31. Oracle DB에서 -> 자바에 마련된 공간들에 set 해주었던 과정'만' 하면 우리 눈에 보이지 않아.
그래서 굳이 get을 해서 출력을 해줘본다.
cf) 맨 처음에 오류나게 썼던 코드. listdiffer[i] <- 이건 '일반' 배열일 때고, 컬렉션에서의 List는 .get(i) 형태로 꺼내야함
- 위에 27번째줄에서 21명의 id, nicName, pwd가 담긴 데이터를 listdiffer라고 지금 이 페이지에서 다시 명명해줬잖아?
그걸 하나씩 하나씩 .get(i)해본다. 반복문 통해서 (이 과정이 31~34 for 하나하나씩 출력해보려고!)
21명의 id, nicName, pwd가 담긴 listdiffer 하나하나가 다 Member인 것 (아래 그림에서 35번째줄 봐도 이해 easy)
->
자, 이제 브라우저에 출력을 해보자.
콘솔 출력용으로 JDBCPrgram.java에서 적어줬듯이 (26, 27행)
서블릿 파일에도 적어줘서, 이제 브라우저 출력을 해보자. (오라클에서 불러온 DB들을 이제 화면에 볼 수 있게 되는것!)
cf) 10번째의 list를 JDBCProgram.java에서 listdiffer라고 연습했었다.
-> 그 때는 담겨진 것들을 '굳이 꺼내서' 콘솔에 전체 출력했었는데, 이제는 담겨진 것들 중 필요한 것들을 '굳이 꺼내서' 화면에 출력하고 있는 것.
왜 타입이 Member형인지는 위에 그림판에 직접 그린걸 보면 된다.
참고) for-each문
* 13일 *
Notice.java
-> 기계적으로 4단계 거쳐서 만들어주고
NoticeService.java
-> jdbc 연결해주고
결과집합 rs에 있는 것들을 한 줄 한 줄 씩 꺼내고오고 (while(rs.next())
그 꺼내온거를 Notice notice = new Notice(); 이후 notice에 set해서 담아주고
미리 만들어놓은 List<Notice> list = new ArrayList<>(); 의 list에 .add(notice)해서 배열로 담아 return해준다.
jsp에다가 연결해서 화면에도 출력가능하도록 해보자
타입이 Notice라는거☆ 이제는 그림판 안그려도 알지!
![]() list.jsp 파일, |
|
![]() f, q를 getParameter로 '받아서' |
참고) html에 name="x", "y"로 값 받아서 사용했던 '계산기' 만들었을 때를 떠올려보시오. |
![]() f, q를 인자로 getList 함수를 사용해서 / |
참고) '인자'와 '매개변수' |
![]() NoticeService.java 파일 |
참고)
* 14일 *
![]() 질문 ) 35번째줄 쿼리식 |
|
![]() 이제 데이터 전체를 가지고 오는게 아니라, HI 검색 시 HI만 나오는 것 처럼 이제 매개변수로 관련된 데이터들을 들고와주게 된 것 :) |
|
매개변수로 page도 추가해주자 | |
![]() 페이지를 p로 넘겨받는데, 눌러서 입력 받는 것 |
![]() 기본 page는 1로 설정 (page 값을 전해주는게 없어도 첫 페이지는 나오도록 :)) |
![]() 18-20번째 줄을 쓰지 않으면 -> null 값이 되서 500 오류가 남 |
ex) 2페이지를 누르면 -> 10~20까지의 데이터를 불러오는 것
우선,
select 태그 내에 'selected'라는 함수가 있다.
170,171 - (select 태그) 옵션을 아무것도 선택하지 않으면 빈 공백 ""
173. 만약 옵션은 '제목'으로 했으면 -> 공백이 아니라 그게 선택되는거고
174. 옵션을 '작성자'로 했으면 -> 공백이 아니라 그게 선택되는거고
184, 185 - 아래 결과 그림에서 보면 selected가 'writer-id'에 있는데 검색분류를 작성자로 선택해서 그러함. (만약에 제목으로 선택했으면 seleted가 위로 올라감)
전체 검색한 개수가 몇 개인지 알아내야함
225. field, query값을 '인자'로 줘서 / 받은 / getCount() 함수의 결과를 / int count
226. lastPage는 = 위에서 받은 count/10 + (count를 10으로 나눠서 나머지가 0이면 0, 아니면 1)
230. page_는 위쪽에서 이렇게 전달받은 p를 정수 변환한 값 (즉, 현재 페이지)
if(p != null && !p.equals(""))
page_ = Integer.parseInt(p);
15일부터는 자세 페이지에서 확인 (큰 흐름 정리는 끝났고, 이렇게 기능들만 이제 추가하는 것이니)
인증 서블릿 필터 (0) | 2021.05.29 |
---|---|
55일차. Servlet 17 - ★CRUD (2) (0) | 2021.05.07 |
54일차. Servlet 16 - ★CRUD (1) (0) | 2021.05.06 |
38일차. Servlet 6 (0) | 2021.04.13 |
서버 ↔ 브라우저 요청 정리 (0) | 2021.04.12 |