21.05.20
Machine Learing
@Decision Tree ( 의사 결정 나무)
- 스무고개 하듯이 예/아니오 질문을 반복하며 학습한다.
- 특정 기준(질문)에 따라 데이터를 구분하는 모델
- 분류와 회귀에 모두 사용 가능
그냥 일종의 마인드맵.
@Python - DecisonTree 사용법
================================================
JSP
@RequestDispatcher & sendRedirect
조금 어려울 수 있다.. 그냥 어렵ㄷ...
우선 기존 JSP 실습 때 <input> 태그가 아닌 sendRedirect( ) 명령어를 통해 페이지 이동을 수행했다.
--> 로그인하면 ID&PW 맞는지 판별 후, 로그인 성공 페이지로 이동
해당 경우에는 만일 "A라는 페이지에서 작업 수행 -> B 파일(JSP) redirect -> B 페이지 이동" 의 단계로 수행됐다.
즉, <로그인 -> 로그인정보 확인 -> 로그인 성공 페이지> 이렇게 3단계다. ( A: 정보확인 | B: 성공페이지 )
근데, RequestDispatcher 란 녀석은 페이지를 호출하지 않고 그냥 내용만 보여준다.
일단 아래의 예시로 보자
< login.html -> 로그인 | Login.jsp -> 정보확인 | LoginSuccess.jsp -> 로그인 성공 >
보는바와 같이 sendRedirect (좌측)의 경우 로그인 성공페이지로 이동, RequestDispatcher (우측)는 로그인 정보 확인 페이지가 주소 값에 나타나있다.
결국 가볍게 얘기하자면,
RequestDispatcher 는 페이지 호출 없이 jsp 파일 내에서 다른 파일로 요청을 보내고 바로 응답을 받는것이고, sendRedirect 는 브라우저가 response에 따라 서버로 지정된 경로를 다시 요청하여 페이지를 호출한다.
" RD는 A가 B를 비춰주는거, sendRedirect는 A가 요청을 받아 B에게 바톤을 준거... 정도?? "
%코드 확인 - forward / setAttribute
- HTML파일에서 Data를 전송한 방식이 "post" 이므로 < 1 > 과 같이 인코딩
- setAttribute 명령어를 통해 request란 객체에 이름이 name이고, 속성 값은 value인 걸 setting한다.
- request객체의 getRequestDispatcher 명령어를 통해 요청할 경로를 지정해준다.
- forward 명령어는 대상이 되는 자원으로 제어를 넘기는 역할을 한다.
=> 브라우저는 A에게 요청했지만 A는 B에게 제어를 넘겨주고, 결과를 B가 브라우저에게 준다.
=> 즉, 이는 브라우저가 단 한번만 요청해서 작업이 이뤄진 것.
--> 전달한 data값은 request나 response에 담아서 전송한다.
@Web에서의 MVC - Model1 실습
조금 간단히 얘기하면
Model 1 -> View단과 Controller 모두 JSP 에서 작성
Model 2 -> View단은 JSP 로, Controller는 Servlet 으로 작성해준다.
으아음..... Web에서는 내가 일반적으로 알고있는 MVC 패턴과 다른게 또 존재한다고 한다.
무튼.... 해당 내용에 대한 실습을 진행한다.
@로그인 & 회원가입 페이지
대략 이런식의 실습을 진행
- DB에 회원가입한 아이디와 비밀번호, 이름을 저장한다
- 로그인할때에는 DB에서 해당 정보를 SELECT하여 일치하면 로그인할 수 있도록 한다.
- 로그인에 성공하면 회원가입때 작성한 "name"을 노출시킨다.
@main 페이지
- Main 페이지의 경우 각각 회원가입&로그인 창으로 이동하는 버튼을 만들었다.
- 각각 2개의 페이지로 이동하기 때문에 2개의 form 태그로 2개의 input 태그를 만들어주었다.
@회원가입 페이지
%그냥 보이는 부분
우선 회원가입에 필요한 부분들을 적도록하는 파일
- JSP 파일이긴 한데 그냥 HTML 코드밖에 없다.
- 회원가입시 입력 정보는 개인정보니까 전달 방법은 post로 주었다.
이게... 끝이다.
%DB에 필요한 부분
일부분씩 리뷰
- "post"방식으로 데이터를 전달 받았기 때문에 인코딩 작업을 해주었다.
- sql문을 미리 작성하는데 이때 내기 기입할 부분은 "?"라고 써준다.
- 첫번째 줄부터 5번째까지는 동적로딩 및 DB서버에 로그인하는 부분
- psmt 및 conn 변수는 예외처리 문 하위에서 사용하기 위해 윗부분에서 미리 null값을 주어 정의했다.
- executeUpdate( ) 명령어는 제데로 수행됐다면 1을, 아니면 0을 반환한다.
- 제데로 insert 구문이 작동됐다면 main 페이지로 이동하도록 헸다.
- 오류가 나면(insert가 수행이 안되면) 다시 회원가입창으로 이동하도록 했다.
- finally 안에 DB 연결을 close해주는 부분을 넣어주었다.
@로그인 페이지
%보이는 부분
- 로그인 페이지의 경우 또한 2개의 <form> 태그를 만들어 회원가입 창으로 이동할 수 있도록 하였다.
- 윗부분의 경우 회원가입 창으로 이동하기 위한 <form> 태그 또한 <table> 태그로 감싸주었다.
==> 그냥 이쁘게 만들라구 ^^
%DB 부분
로그인 페이지 또한 post 방식으로 데이터를 전달 받기 때문에 인코딩 작업이 필요하다.
때문에 위의 회원가입 창과 겹치는 부분은 생략한다.
- SELECT 문을 통해 id와 password가 일치한지 찾는다.
- 조회할 때는 Update가 아닌 executeQuery( ) 를 사용한다. 또한 이때에는 ResultSet이란 객체로 값을 받는다.
- rs.next( ) 문을 통해 들어온 값이 있다면 조건문을 통해 로그인 성공 페이지로 이동한다.
- 또한 조건문에서 ID와 PW가 일치한지도 검사한다.
==> 제약조건을 주지 않았기 때문에 ID와 PW가 일치하는 경우 또한 존재하겠지만 일단 실습이니까..
- 조건문에 모두 일치하다면, 해당 로그인 정보의 이름 값을 로그인 성공 페이지에 전달한다.
- 실패하면 로그인 실패 페이지로 이동하게 된다. ( 에러가 뜬다거나 하면... )
%로그인 성공&실패 페이지
- 로그인 성공시에는 해당 정보의 이름값을 페이지에 노출시킨다.
- 실패시에는 실패문구와 함께 로그인 및 메인 페이지로 이동할 수 있도록 하였다.
'국비교육기관 > 수업' 카테고리의 다른 글
50일차_머신러닝 / JSP_Session_Cookie_실습 (0) | 2021.05.22 |
---|---|
49일차_JSP_MVC Model.1_쿠키 / 머신러닝_결측치_시각화 (0) | 2021.05.21 |
47일차_JSP_sendRedirect_fieldset (0) | 2021.05.18 |
46일차_머신러닝 기초 / JSP_지시자 (0) | 2021.05.17 |
45일차_머신러닝 기초 / JSP_기초 및 실습 (0) | 2021.05.14 |
댓글