클라이언트 요청
서블릿 컨테이너
HttpServletRequest
, HttpServletResponse
객체를 생성합니다.서블릿 로딩 및 초기화
init()
메소드를 호출하여 서블릿을 초기화합니다. 이 메소드는 서블릿이 최초로 생성될 때 한 번만 호출됩니다.서비스 요청 처리
web.xml
을 기반으로 사용자가 요청한 URL이 어느 서블릿에 대한 요청인지 찾습니다.service()
메소드를 호출하여 클라이언트의 GET, POST 여부에 따라 doGet()
또는 doPost()
메소드를 호출합니다.doGet()
또는 doPost()
메소드에서 클라이언트 요청을 처리하고 응답을 생성합니다.응답 반환
HttpServletResponse
객체를 사용하여 클라이언트에게 응답을 보냅니다.객체 소멸
HttpServletRequest
, HttpServletResponse
두 객체를 소멸시킵니다.서블릿 종료 및 자원 해제
destroy()
메소드를 호출하여 서블릿을 종료하고 자원을 해제합니다.method 명 | 내용 |
---|---|
getParameter(String) | client가 전송한 값의 명칭이 매개변수와 같은 값 가져옴 |
getParameterNames() | client가 전송한 값의 명칭 가져옴 |
getParameterValues(String) | client가 전송한 값이 여러 개이면 배열로 가져옴 |
getParameterMap() | client가 전송한 값 전체를 Map방식으로 가져옴 |
setAttribute(String, object) | request 객체로 전달할 값을 String 이름-Object 값으로 설정 |
getAttribute(String) | 매개변수와 동일한 객체 속성 값 가져옴 |
removeAttribute(String) | request객체에 저장된 매개변수와 동일한 속성 값 삭제 |
setCharacterEncoding(String) | 전송 받은 request객체 값들의 CharaterSet 설정 |
getRequestDispatcher(String) | 컨테이너 내에서 request, response객체를 전송하여 처리한 컴포넌트(jsp파일 등)를 가져옴 (forward() method와 같이 사용) |
method 명 | 내용 |
---|---|
setContentType(String) | 응답으로 작성하는 페이지의 MIME type을 설정 |
setCharacterEncoding(String) | 응답하는 데이터의 CharacterSet을 지정 |
getWriter() | 페이지에 문자 전송을 위한 Stream을 가져옴 |
getOutputStream() | 페이지에 byte단위의 전송을 위한 Stream을 가져옴 |
sendRedirect(String) | client가 매개변수의 페이지를 다시 서버에 요청함 |
forward()
vs redirect()
구분 | forward() | redirect() |
---|---|---|
정의 | 요청을 다른 서블릿이나 JSP로 전달 | 클라이언트에게 새로운 URL로 전송 |
작동 방식 | 서버 내에서 요청을 처리하며, URL은 변경되지 않음 | 클라이언트에게 새로운 요청을 하도록 지시, URL이 변경됨 |
사용 예 | 내부 로직 처리 후 다음 페이지로 이동 시 | 로그인 후 메인 페이지로 이동 시 |
성능 | 서버 내에서 처리되므로 성능이 좋음 | 추가 요청이 발생하므로 성능이 다소 떨어질 수 있음 |
데이터 전송 | request 객체를 통해 데이터 공유 가능 | URL 파라미터로만 데이터 전달 가능 |
메소드 | 설명 |
---|---|
doFilter(ServletRequest request, ServletResponse response, FilterChain chain) | 요청과 응답을 가로채고 다음 필터 또는 서블릿으로 전달. |
init(FilterConfig filterConfig) | 필터 초기화 시 호출됨. |
destroy() | 필터가 제거될 때 호출됨. |