[JSP & Servlet] 핵심&필수 개념 정리 - (복습)
by 무작정 개발VO? DTO?
VO (Value Object) 란 값을 담는 용도로 사용하기 위한 객체를 뜻한다.
계층 또는 데이터를 전달하는데 이용해서 DTO(데이터 수송 객체)라고도 불린다.
VO랑 DTO는 값을 가진다는 객체의 기본적인 공통점이 있지만, 값 자체에 의미가 있는 VO와
전달될 데이터를 보존해야 하는 DTO의 특성상 개념의 차이가 매우 다르다.
또한 VO는 칼럼 값들에 대해 read-only를 보장해줘야 존재 자체의 신뢰성이 확보되지만,
DTO의 경우 단지 데이터를 담는 그릇의 역할일 뿐 값은 그저 전달되어야 할 대상일 뿐이다.
각종 값들을 가지고 있고 get, set메서드로 이루어져 있다. (getter/setter로 만들어줌)
쉽게 말하자면 값을 set 해놓으면 get으로 가져와서 출력한다.
[출처 및 참고]
DTO와 VO 이야기(feat. Entity) (tistory.com)
DAO
DAO는 DB 혹은 파일, 메모리 등을 이용해서 데이터를 생성, 조회, 변경, 삭제(CRUD) 역할을 수행한다.
쉽게 말하자면 데이터 처리 부분을 맡아서 수행한다.
JSP 내장 객체 ( request / response / session )
(1) - request
- 클라이언트(사용자)의 요청 정보를 저장하고 있는 내장 객체
- 주로 클라이언트(사용자) -> Server(서버)로 전달되는 정보를 처리할 때 사용
request 객체에 포함된 메서드
메서드(Method) | 설명 |
getParameter(name) | 문자열 name에 매칭된 value값 리턴(가져옴) |
getParameterValues(name) | 문자열 name에 매칭된 value를 배열 형태로 가져옴 |
getCookies() | 모든 쿠키 값을 javax.servlet.http.Cookie의 배열 형태로 리턴 |
getRemoteAddr() | 클라이언트(사용자)의 IP 주소를 리턴 |
getCharacterEncoding() | JSP로 전달되는 내용들을 지정한 캐릭터셋으로 변환해줌.(한글깨짐 방지) |
getParameter
- jsp 내장 객체 중 request 객체에 포함된 메서드
- form으로부터 값을 받아온다.
사용자에게 get , post방식으로 얻어온 데이터는 request.getParameter("name속성 값")으로 출력 가능
dto.setUserId(req.getParameter("userId"));
-> dto의 UserId에 getParameter로 "userId"값을 받아와서 넣는다. (form에서 받아온다)
★ set함수로 변수에 값을 넣어주고(저장) / get함수로 변수의 값을 가져온다.
(2) - Session (세션)
HTTP 프로토콜은 한 페이지가 출력된 다음에 클라이언트와 서버의 연결이 끊어진다.
따라서 사용자가 특정 행동을 할 때까지 보관해야 할 정보가 있다면 처리가 어려워지는데 이런 문제점을
해결하기 위한 것이 세션(Session)과 쿠키(Cookie)이다.
Session는 사용자와 관련된 정보를 Server(서버)에 저장하고, Cookie는 사용자 PC에 저장한다.
- Session이 설정돼서 종료될 때까지 상태 유지 (ex. 로그인 정보, 장바구니 등)
- Servlet : HttpSession 클래스를 이용 세션 객체 얻기 -> HttpSession session=request.getSession();
- Session은 객체가 어떤 타입인지 알 수 없어 Object로 받는다.
Session 객체에 포함된 메서드
메서드(Method) | 설명 |
getMaxInactiveInterval(); | Session의 유지시간을 '초'로 반환(기본 디폴트 유지시간은 30분) ex) 10분을 줄거면 -> setMaxInactiveInterval(10*60); |
invalidate() | Session 종료 |
(3) - response
- 사용자 응답과 관련된 기능을 제공하는 내장 객체
- 사용자 요청(request)을 처리하고 응답(response)을 다른 페이지로 전달하는 기능
- response 객체에 포함된 메서드 중에 setContentType , sendRedirect는 중요하다. 자주 씀!
response 객체에 포함된 메서드
메서드(Method) | 설명 |
setContentType(type) | MIME 타입을 지정하거나 캐릭터의 인코딩을 지정할 때 주로 사용한다. ex) response.setContentType("text/xml;charset=utf-8"); -> MIME 타입 지정, 캐릭터의 인코딩 지정 |
sendRedirect() | 클라이언트(사용자) 요청을 다른 페이지로 보낸다. |
페이지 이동 방법 - Redirect(리다이렉트) & Forward(포워드)
- Web은 기본적으로 request -> servlet -> response 식으로 진행
JSP환경에서 현재 작업 중인 페이지에서 다른 페이지로 이동하는 2가지 이동 방법(Redirect, Forward)
2가지 방법이 있다.
Redirect(리다이렉트) 개념
- 클라이언트가 새로 페이지를 요청한 것과 같은 방식으로 페이지를 이동
- 브라우저의 url을 변경해서 페이지를 이동하는 방식
- request, response가 유지되지 않는다.(새로 객체가 생성된다)
- Forward 방식과 다르게 클라이언트의 정보를 가지지 않고 페이지를 이동
고객센터에 전화를 거는 과정을 비유 (Redirect)
(1) - 고객이 고객센터로 상담원에게 1번으로 전화를 건다.
(2) - 상담원은 자기 부서가 아니라며 2번으로 전화하라고 알려준다.
(3) - 고객은 다시 2번으로 전화를 해서 불만사항을 해결한다.
Forward 개념
- request, response가 유지된다.
- 현재 실행 중인 페이지와 forward로 호출될 페이지는 request, response 객체를 공유
- 이동된 url이 화면에 안 보여서 사용자는 이동했는지 알 수 없다 (그래서 보안이 유지된다.)
Forward 방식은 이동할 url로 요청정보를 그대로 전달하는데 '건네준다'라고 생각하면 된다.
고객센터에 전화를 거는 과정을 비유 (Redirect)
(1) - 고객이 고객센터로 상담원에게 1번으로 전화를 건다.
(2) - 상담원은 고객의 문의사항에 대해 알지 못해 옆에 있는 상담원한테 물어봐서 답을 얻는다.
(3) - 옆사람한테 답을 얻은 상담원은 고객한테 문의사항을 알려주며 해결해준다.
setAttribute
- setAttribute()는 선택한 요소(element)의 속성(attribute) 값을 정합니다.
. setAttribute('속성 이름', '
req.setAttribute("message", "아이디 또는 패스워드를 정확히 입력하세요!");
-> req의 요소의 message속성에 [아이디 또는 패스워드를 정확히 입력하세요 ]를 대입한다.
getAttribute
- . getAttribute()는 선택한 요소(element)의 특정 속성(attribute) 값을 가져옵니다.
. getAttribute('속성 이름');
'Back-End > JSP & Struts & JDBC' 카테고리의 다른 글
[Servlet] - 이미지 게시판 만들기 (0) | 2022.03.03 |
---|---|
[Servlet] 쿠키(cookie), 파일 업로드(1) - 파일 등록 및 조회, 파일 업로드(2) - 파일 업로드, 다운로드, 삭제 (0) | 2022.02.24 |
[Servlet] 회원 가입, 로그인 페이지 (0) | 2022.02.22 |
[Servlet] 성적 처리 리스트 (0) | 2022.02.22 |
[Servlet] 게시판 (0) | 2022.02.21 |
블로그의 정보
무작정 개발
무작정 개발