티스토리 뷰

Spring&Spring Boot/JSP

HttpServlet

on1ystar 2019. 1. 17. 02:10
728x90
반응형
본 글의 목적은 제가 공부한 내용을 바탕으로 정리하면서 저와 같이 공부하시는 분 들을 위함입니다. 때문에 부족한 부분이 있을 수 있고, 잘못된 부분이 있을 수 있습니다. 만약 있을 경우, 생각을 고칠 수 있도록 저에게 알려주시면 정말 감사하겠습니다 !!


클라이언트와 서버는 서로 통신을 합니다.

클라이언트가 서버에게 데이터를 입력하고, 어떠한 행위를 통해 서버에게 요청하는 것을 request라 하고,

서버가 이를 클라이언트에게 응답하는 것을 response라고 한다고 했습니다. ( 자세한 내용은 웹이란 ? 웹 프로그래밍의 개요 )

이를 우리가 servlet에서 핸들링 하기 위해서는 그에 맞는 class(객체)가 필요합니다. JAVA를 이용하니까.

따라서 이 class를 정의해야 하는데, 그럴 필요없이 다른 사람들이 Http프로토콜에 맞게 표준화하여 정의하고 구현해 놓은 훌륭한 클래스와 패키지를 이용할 수 있습니다.

그것이 바로 HttpServlet 클래스 입니다.


HttpServlet (추상)클래스 구조




우리가 사용할 HttpServlet 클래스는 추상클래스 입니다. 이 추상클래스는 옆에서 보이는 구조처럼 Generic servlet 추상클래스를 다시 상속합니다. 

그리고 이 추상클래스는 Servlet과 ServletConfig 인터페이스를 구현하고 있습니다. 

때문에 우리는 클래스를 선언하여 HttpServlet를 상속받아 구현해주면 많은 기능들을 다 사용할 수 있습니다. 

이 안의 자세한 구조와 메소드들은 천천히 살펴보겠습니다.






이렇게 제가 만든 ServletT 클래스에 HttpServlet을 상속하는 코드를 자동으로 넣어줍니다

밑에 보이는 doGet, doPost 메소드는 클라이언트의 입력을 서버에 요청하는 방식이 Get방식과 Post방식이 있기 때문에 구현되어 있습니다. 이에 대해서는 다음 번에 더 자세히 공부해 보겠습니다.

지금 중요한건 이 메소드들의 파라미터 값으로 HttpServletRequest 객체와 HttpServletResponse 객체를 받아 온다는 점입니다.


HttpServletRequest



이 객체는 클라이언트가 서버에 어떠한 요청을 하는 것을 다루는 객체입니다.


                     이렇게 request 객체를 이용해 호출할 수 있는 메소드들이 많이 구현되어 있습니다.

대표적인 메소드 몇 개만 알아보면,


 request.getCookies(); 

 쿠키 정보를 가져옵니다.

 request.getSession();

 세션 정보를 가져옵니다.

 request.getAttribute(null);

 해당 속성에 대한 속성 값을 가져옵니다.

 request.serAttribute(null, null)

 속성을 추가하고 그 속성에 값을 줄 수 있습니다.

 request.getParameter(null);

 로그인이나 회원가입 등의 정보 같이 클라이언트가 입력한 정보의 input name을 이용   해 데이터를 가져옵니다.

 request.getParameterNames();

 request.getParameterValues(null);

차츰 실습을 통해 메소드들을 사용해 보면서 더 자세히 공부해 보도록 하겠습니다.

HttpServletResponse



Request 객체와 반대로 서버가 클라이언트에게 응답할 때 필요한 객체입니다. 주로 사용자에게 보여지는 view나 사용자의 브라우저에 어떤 값들을 저장할 때 사용됩니다.

     request도 마찬가지로 다양한 메소드들이 구현되어 있습니다. 이 객체도 몇 가지 메소드들만 일단 알아보면

 response.addCookie(null);

 response.getStatus();

 response.sendRedirect(null); 

 response.getWrite(); 

 response.getOutputStream(); 

이러한 메소드들이 있습니다. 각각의 기능들은 다음에 실습을 통해 공부해 보겠습니다.

728x90
반응형

'Spring&Spring Boot > JSP' 카테고리의 다른 글

doGet, doPost  (3) 2019.01.18
Servlet Lifecycle  (0) 2019.01.18
Servlet Mapping  (0) 2019.01.11
JSP와 Servlet 비교  (1) 2019.01.11
Servlet 개요  (0) 2019.01.11
댓글