1. HttpServlet
HttpServlet은 Class긴 class인데 abstract class(추상클래스)입니다.
그림을 보면 ServletEx라는 이름으로 서블릿을 만들었는데 서블릿을 만들려면 반드시 HttpServlet을 상속받아서 만들어야 합니다.
HttpServlet은 GenericServlet이라는 추상클래스를 다시 상속하고 있고 GenericServlet은 Servlet과 ServletConfig, Serializable이라는 인터페이스를 상속받고있습니다.
이렇게 많은 인터페이스와 추상클래스를 상속받아서 서블릿을 만드는 이유는 로컬에서 작업하는 것이 아니라 웹서비스는 웹서버, 웹어플리케이션서버와 통신이라고 볼수 있기 때문에 그 과정에서 많은 데이터가 오고가기 때문에 그런 것을 다 구현을 하려면 손이 상당히 많이 가겠지만 그런것들을 표준화하여 미리 구현해 놓은 것입니다.
그래서 개발자는 서블릿을 만들떄 HttpServlet만 상속을 받아서 만들면 되는것이지요.
다시 프로젝트를 만들어서보면 서블릿을 생성하면 그 서블릿은 HttpServlet을 상속받고 있는것을 확인할수 있습니다.
자바에서는 ctrl키를 누르고 마우스로 클릭하면 만들어진 class나 interface를 볼수 있는데요.
HttpServlet의 내용을 보겠습니다.
실제로 HttpServlet 클래스는 추상클래스 이며 GenericServlet을 다시 상속받고 있다는 것을 확인 할수있죠.
2. HttpServletRequest
서블릿을 만들게 되면 doGet메서드와 doPost메서드가 만들어져 있는데요.
통신을 할때 Get방식인지 Post방식인지에 따라서 메서드를 사용할수 있습니다.
또 메소드의 파라미터로 HttpServletRequest와 HttpServletResponse가 있는데 이 또한 Servlet을 만들때 기본적으로 생성해줍니다.
HttpServletReqest는 요청에 대한 정보를 가지고 있는 객체인데 대표적인 메소드로는 getCookies(), getSession(), getAttribute(null), setAttribute(null, null), getParameter(null), getParameterNames(), getParameterValues(null) 등이 있습니다.
getCookies() : 쿠기정보를 가지고 있습니다.
getSession() : 세션정보를 얻어올 수 있습니다.
getAttribute(null) : 속성값을 가져올 수 있습니다.
setAttribute(null, null) : 속성을 추가할 수 있습니다.
getParameter(null)
getParameterNames()
getParameterValues(null)
getParameter와 관련된 것은 예를 들어 로그인과 같은 기능을 구현할때 id나 이름 pw등의 데이터를 받게 되는데요 그 form에 각각 이름이 있습니다.
그 이름에 대한 값을 얻어올때 사용합니다.
3. HttpServletResponse
response는 그 반대입니다.
서버가 데이터에 요청을 줄때 사용되는 객체입니다.
response가 가지고 있는 대표적인 메서드는 addCookie(null), getStatus(), sendRedirect(null), getWriter(), getOutputStream()이 있습니다.
이 글은 실전 JSP (renew ver.) - 신입 프로그래머를 위한 강좌를 수강하며 공부한 내용을 정리한 글입니다.
https://www.inflearn.com/course/실전-jsp_renew/dashboard
'Java 관련 > JSP & Servlet' 카테고리의 다른 글
[JSP & Servlet] form 데이터 처리 (0) | 2022.08.13 |
---|---|
[JSP & Servlet] Servlet Life-Cycle과 메서드 (0) | 2022.08.12 |
[JSP & Servlet] Servlet 맵핑 (0) | 2022.08.10 |
[JSP & Servlet] Servlet 시작하기! (0) | 2022.08.09 |
[JSP & Servlet] 웹 컨테이너 구조와 JSP 시작하기 (0) | 2022.08.08 |