봉봉의 개인 블로그
2017-05-23-E 본문
search 분류와 login과 session 분류하기
먼저 search문을 분류하겠다.
위사진과 같이 m_search_list.jsp 파일안을 채워줍니다.
설명을하자면 form에서 sk와 sv 의 값을 받아줍니다 그후 Mdao클래스 타입으로 객체참조변수 m를 선언하고 Mdao 생성자 메서드를 통해서 새롭게 생성된 객체의 주소값을 m에 할당해줍니다.
그후 만약 받아온값이 만약 sk가 null 이고 sv가 null 이거나 sk가 null이아니고 sv의 값이 ""이면 if 절이 시작됩니다.
if절안의에 있는 m의 주소값을 찾가서 mAllselect메서드를 호출합니다(mAllselect메서드는 전체리스트를 가지고 왔을때 list에서 사용하엿던 메서드이다.)
만약 그렇지 않았을 경우에는 else절안에 있는 m의 주소값을 찾아가서 selectsearch메서드 호출시 sk값과 sv의 값이 매개변수 값으로 입력받아 메서드가 실행됩니다.
그후 for문을 통해 list배열안에 있는 갯수 즉 list.size 의 수만큼 for 를 반복하여 안에 있는 내용을 44~56까지의 문과같이 하여 출력해주게 됩니다.
필요한것은 mALlselect 메서드와 selectsearch 메서드 인데 list 에서 mallselect 메서드에 관해서는 설명햇으므로 selectsearch 메서드만 설명하겟다
와Mdao.java 파일에 메서드를 위 사진과 같이 선언해줍니다.
그후 리턴 타입으로는 ArrayList<Member> 타입으로 리턴받고 매개변수값으로는 sk 와 sv 를 받아 메서드가 실행되게 됩니다.
받은 sk 와 sv 를 이용해 쿼리문을 작성하고 회원정보의 검색되는 값 sk sv 를 받아 쿼리문을 토대로 쿼리문을 실행하고 실행된 값을 while 을 통해서 Member 클래스를 통해 생성된 객체 내부 안에 set 메서드를 이용해 DB 안에 내용을 get 하여서 셋팅해준후 list안에 add 메서드를 통해 m 의 주소값을 할당시켜줍니다 이걸 검색결과가 있으면 계속해서 반복하여 list에 추가해줍니다
이때 Member 클래스 타입의 객체 참조 변수 m 은 while문 안에 잇기때문에 계속 생성되어서 새로운 객체의 주소값이 계속 list 안에 추가 되게 됩니다. 그후 list 의 주소값을 리턴해줍니다 호출한곳으로 리턴하여 화면에서의 for 문에서 화면에 뿌려주게 됩니다.
Login 처리 과정 분류 하기
먼저 login 처리과정을 분류하기위해 login_pro.jsp 파일안을 아래와 같이 바꿔줍니다.
위사진과 바꿔줍니다. 설명을 하자면 먼저
login할때 id 의 값과 pw 의 값을 받아줍니다
그후 Mdao생성자 메서드를 통해 생성된 객체의 주소값을 Mdao 클래스 타입으로 선언된 mdao 객체참조변수안에 주소값을 할당해줍니다.그후
String 데이터 타입으로 result 를 선언하고 mdao 안에 잇는 logincheck메서드를 호출합니다
호출시 매개변수값으로 id 와 pw 값을 받아 메서드가 실행됩니다.
logincheck의 리턴값이 result 안에 들어가게 되고
if 문에서 리턴받은 result 값과 입력한 pw 값이 일치하게 되면 안에 if 문이 실행됩니다
실행시 Member 클래스 타입으로 member를 선언하고 그안에 mdao주소값안에 mgetforsession 메서드를 호출합니다 호출시 id 의 값을 매개변수로 받아 메서드를 실행합니다.
받아온 메서드의 리턴값의 주소값을 member에 담고 session.setAttribute를 통해서 session 안에 리턴받은 주소값 member 안에 값을 get해서 session 영역에 값들을 set해줍니다
if 문이 실행되면 로그인 성공이라는 알람창이 뜰것이고
else if 문이 실행되엇을경우에는 비번 불일치가 뜨게 됩니다
그후 else문이 실행되면 아이디 불일치가 뜨게됩니다
여기서 필요한 메서드로는 logincheck 메서드와 mgerforsession 메서드가 필요하다
이 메서드를 선언해주기위해서 Mdao.java 안에 메서드를 선언해줍니다.
Mdao.java 안에 위 사진과 같이 메서드를 추가해줍니다
설명을 하자면 먼저 logincheck 메서드는 로그인 체크만 하는 메서드이다 String 데이터 타입으로 result 를 선언하고 그안에 아이디불일치 값을 넣어 놓고
쿼리문을 통해 검색한 값이 잇으면 검색한 값을 토대로 입력한 pw 값과 db안에 저장된 pw 의 값이 일치하면 db안에 pw값을 리턴하고
그렇지 않으면 비번불일치가 리턴됩니다
만약 검색한 값이 없으면 아이디불일치가 리턴되게 됩니다.
리턴된 값을 토대로 login_pro 에서는 받은 리턴값에 따라 각각의 알림창이 다르게 됩니다.
그후 mgetforsession 메서드에 대해서 설명하다면 먼저
Member Dto 를 이용해 검색한 값을받아 member 안에 셋해주기 위해서 Member 클래스 타입으로 member를 선언하고 생성자 메서드를 통해 새로운 객체의 주소값을 할당해줍니다
그후 쿼리문을 통해 id 와 일치하는 값을 조회 하고 값이 있으면 member안에 set 메서드를 통해서 db 안에 값들을 get 하여 member안에 set해준다음 그 객체의 주소값을 리턴해줍니다.
리턴받은 화면에서는 리턴받은 주소값안에 값을 토대로 session 영역에 값을 set할수 있게됩니다.
'학원에서 배운것들 > TEA - E' 카테고리의 다른 글
2017-05-30-E (0) | 2017.05.31 |
---|---|
2017-05-29-E (0) | 2017.05.31 |
2017-05-16-E (0) | 2017.05.16 |
2017-05-15-E (0) | 2017.05.15 |
2017-05-09-E (0) | 2017.05.09 |