서블릿 객체에서 최종적으로 용을 처리하는 doGet/doPost 등은
HttpServlet, HttpsServletResponse를 파라미터로 전달받습니다
제공되는 주요기능은 다음과 같습니다
기능 | 메서드 | 설명 |
HTTP 헤더 관련 | getHeaderNames() getHaeder(이름) |
HTTP헤더 내용들을 찾아내는 기능 |
사용자 관련 | getRemoteAddress() | 접속한 사용자의 IP주소 |
요청관련 | getMethod() getRequestURL() getRequestURI() getServletPath() |
get/post정보, 사용자가 호출에 사용한 URL정보 등 |
쿼리 스트링 관련 | getParameter() getParameterValues() getParameterNames() |
쿼리 스트링 등으로 전달되는 데이터를 추출하는 용도로 사용 |
전달 관련 | getRequestDispatcher() | |
데이터 저장 | setAttribute() | 전달하기 전에 필요한 데이터를 저장하는 경우에 사용 |
getParameter
HttpServletRequest에서 가장 빈번하게 사용되는 메서드로 ?name=00&age=00 과같은 쿼리 스트링에서 name이나 age라는 (key)값을 이용해서 값(value)을 얻는 역할을 위해서 사용
getPrameter()의 결과는 항상 String이다 만일 해당 파라미터가 존재하지 않는다면 null을 반환할수 있다
이떄문에 항상 null체크를 주의해줘야하고 문자열로 반환되기 때문에 숫자를 처리할때에는 예외가 발생할수 있으므로 주의해야한다.
getParametervalues()
getParameter와 유사하게 getParameterValues는 동일한 이름의 파라미터가 여러개 있는 경우에 사용한다
예를 들어 name이라는 이름의 파라미터가 여러 개 존재한다면 getParameterValues를 이용해서 String[]타입으로 반환된다.
setAttribute()
setAttribute()는 JSP로 전달할 데이터를 추가 할때 사용한다 setAttribute는 키(key)와 값(value) 의 형태로 데이터를 저장할 수 있고
이때 키(key)는 모든 객체 타입을 이용 할 수 있다 JSP에는 서블릿에서 setAttribute로 전달된 데이터를 화면에 출력하게 된다.
RequestDispatcher
웹 MVC구조에서는 HttpServlet의 getRequestDispatcher()를 이용해서
RequestDispatcher 타입의 객체를 구할 . 수있다
RequestDispatcher는 현재의 요청(Request)을 다른 서버의 자원(서블릿 혹은 JSP)에게 전달하는 용도로 사용한다
Request-Dispatcher 는 2개의 메서드가 있는데
- forward():현재까지의 모든 응답 내용은 무시하고 JSP가 작성하는 내용만을 브라우저로 전달
- include():지금까지 만들어진 응답(response)내용 + jsp가 만든 내용을 브라우저로 전달
실제 개발에서는 거의 forward만 사용한다.
HttpServletResponse의 주요 기능
HttpServletRequest가 주로 '읽기' 기능을 제공한다면 HttpServletResponse는 반대로 '쓰는' 기능을 담당한다
HttpServletResponse의 주요 기능은
기능 | 메서드 | 설명 |
MIME타입 | setContentType() | 응답 데이터의 종류를 지정(이미지/HTML/XML등) |
헤더 관련 | setHeader() | 특정 이름의 HTTP헤더 지정 |
상태 관련 | setStatus() | 404,200,500등 응답 상태 코드 지정 |
출력 관련 | getWriter() | PrintWriter를 이용해서 응답 메서지 작성 |
쿠키 관련 | addCookie() | 응답 시에 특정 쿠키 추가 |
전달 관련 | sendRedirect | 브라우저에 이동을 지시 |
웹 MVC구조에서 HttpServletResponse는 JSP에서 주로 처리되기 때문에 서블릿 내에서 직접 사용되는 일보다
주고 sendRedirect()를 이용하는 경우가 많다
'JAVA' 카테고리의 다른 글
웹 MVC (0) | 2024.05.04 |
---|---|
Spring 어노테이션 정리 (0) | 2024.05.03 |
JAVA 파일 스트림 (0) | 2024.05.02 |
비동기 처리와 Axios (1) | 2024.05.02 |
Ajex와 REST (0) | 2024.04.30 |
댓글