무작정 개발.Vlog

[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)

 

DTO와 VO 이야기(feat. Entity)

이번 주제는 DTO와 VO에 관한 이야기이다. 흔히 다들 DTO와 VO를 같은 의미로 사용하고있고 같은 역할로 사용하고 있다고 판단한다. 사실 그럴것이 지금 개발상태에서는 두가지 사용법이 혼용되고

sas-study.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('속성 이름');

 

 

반응형

블로그의 정보

무작정 개발

무작정 개발

활동하기